http://http://diytec.web.fc2.com/mark2r2/
Dependencies: EthernetNetIf NTPClient_NetServices mbed ConfigFile
geiger.h@0:08a4d61cd84c, 2011-09-20 (annotated)
- Committer:
- mark2r2
- Date:
- Tue Sep 20 12:46:26 2011 +0000
- Revision:
- 0:08a4d61cd84c
V1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mark2r2 | 0:08a4d61cd84c | 1 | /************************************************************* |
mark2r2 | 0:08a4d61cd84c | 2 | |
mark2r2 | 0:08a4d61cd84c | 3 | geiger.h |
mark2r2 | 0:08a4d61cd84c | 4 | |
mark2r2 | 0:08a4d61cd84c | 5 | *************************************************************/ |
mark2r2 | 0:08a4d61cd84c | 6 | |
mark2r2 | 0:08a4d61cd84c | 7 | #define VERSION "1.0" |
mark2r2 | 0:08a4d61cd84c | 8 | #include "mbed.h" |
mark2r2 | 0:08a4d61cd84c | 9 | #include "TextLCD.h" |
mark2r2 | 0:08a4d61cd84c | 10 | #include "EthernetNetIf.h" |
mark2r2 | 0:08a4d61cd84c | 11 | #include "NTPClient.h" |
mark2r2 | 0:08a4d61cd84c | 12 | #include "HTTPClient.h" |
mark2r2 | 0:08a4d61cd84c | 13 | #include "ClockControl/ClockControl.h" |
mark2r2 | 0:08a4d61cd84c | 14 | #include "PachubeV2CSV.h" |
mark2r2 | 0:08a4d61cd84c | 15 | #include "appconf.h" |
mark2r2 | 0:08a4d61cd84c | 16 | #include "FirmwareUpdater.h" |
mark2r2 | 0:08a4d61cd84c | 17 | #define CONFIG_FILENAME "/local/PACHUBE.CFG" |
mark2r2 | 0:08a4d61cd84c | 18 | #include "GPS.h" |
mark2r2 | 0:08a4d61cd84c | 19 | |
mark2r2 | 0:08a4d61cd84c | 20 | |
mark2r2 | 0:08a4d61cd84c | 21 | #define TMP_TEXT_BUF_SIZE (256) |
mark2r2 | 0:08a4d61cd84c | 22 | #define CHUNK 1 |
mark2r2 | 0:08a4d61cd84c | 23 | #define AVERAGE_MIN 10*60/CHUNK |
mark2r2 | 0:08a4d61cd84c | 24 | |
mark2r2 | 0:08a4d61cd84c | 25 | char BINNAME[] = "geiger"; |
mark2r2 | 0:08a4d61cd84c | 26 | |
mark2r2 | 0:08a4d61cd84c | 27 | extern void buzzer_off(DigitalOut*); |
mark2r2 | 0:08a4d61cd84c | 28 | extern PinName pin_assign(int); |
mark2r2 | 0:08a4d61cd84c | 29 | extern void convertDoubleToChar(double , char *, size_t ); |
mark2r2 | 0:08a4d61cd84c | 30 | extern void pachube_output(PachubeV2CSV*, HTTPClient *); |
mark2r2 | 0:08a4d61cd84c | 31 | extern int web_post(PachubeV2CSV *, int , int , double ); |
mark2r2 | 0:08a4d61cd84c | 32 | extern void pachube_setup(appconf_t *); |
mark2r2 | 0:08a4d61cd84c | 33 | extern int GetStatus(char *, char *, char *); |
mark2r2 | 0:08a4d61cd84c | 34 | extern unsigned char GetFileLine(FILE *, char *); |
mark2r2 | 0:08a4d61cd84c | 35 | extern void environment_setting(char *); |
mark2r2 | 0:08a4d61cd84c | 36 | extern void buzzer_off(); |
mark2r2 | 0:08a4d61cd84c | 37 | extern void check_newfirm(); |
mark2r2 | 0:08a4d61cd84c | 38 | extern void TwitMsg(char *); |
mark2r2 | 0:08a4d61cd84c | 39 | extern void twitter_output(void); |
mark2r2 | 0:08a4d61cd84c | 40 | extern void twitter_setup(); |
mark2r2 | 0:08a4d61cd84c | 41 | extern void calendarHyoji(char *); |
mark2r2 | 0:08a4d61cd84c | 42 | extern void fullcalendarHyoji(char *); |
mark2r2 | 0:08a4d61cd84c | 43 | extern void printable_msg(char* ); |
mark2r2 | 0:08a4d61cd84c | 44 | extern void LCD_time_and_output(); |
mark2r2 | 0:08a4d61cd84c | 45 | extern void LCD_cpm_output(); |
mark2r2 | 0:08a4d61cd84c | 46 | extern void read_dma_data(); |
mark2r2 | 0:08a4d61cd84c | 47 | extern void setup_adcdma(); |
mark2r2 | 0:08a4d61cd84c | 48 | |
mark2r2 | 0:08a4d61cd84c | 49 | // for pin assignment and mode setting |
mark2r2 | 0:08a4d61cd84c | 50 | |
mark2r2 | 0:08a4d61cd84c | 51 | int mode=0,gps_mode=0; |
mark2r2 | 0:08a4d61cd84c | 52 | int shape_mode=0; |
mark2r2 | 0:08a4d61cd84c | 53 | int AnalogInput_pin_number=15; |
mark2r2 | 0:08a4d61cd84c | 54 | int GMInterrupt_pin_number=17; |
mark2r2 | 0:08a4d61cd84c | 55 | int GMbetaInterrupt_pin_number=16; |
mark2r2 | 0:08a4d61cd84c | 56 | int LED_pin_number=23; |
mark2r2 | 0:08a4d61cd84c | 57 | int Buzzer_pin_number=22; |
mark2r2 | 0:08a4d61cd84c | 58 | int GPStx_pin_number=13; |
mark2r2 | 0:08a4d61cd84c | 59 | int GPSrx_pin_number=14; |
mark2r2 | 0:08a4d61cd84c | 60 | |
mark2r2 | 0:08a4d61cd84c | 61 | extern "C" void mbed_reset(); |
mark2r2 | 0:08a4d61cd84c | 62 | appconf_t appconf; |
mark2r2 | 0:08a4d61cd84c | 63 | int noInternet=1; |
mark2r2 | 0:08a4d61cd84c | 64 | NTPResult ntpRet=NTP_TIMEOUT; |
mark2r2 | 0:08a4d61cd84c | 65 | |
mark2r2 | 0:08a4d61cd84c | 66 | // display device |
mark2r2 | 0:08a4d61cd84c | 67 | Serial pc(USBTX, USBRX); |
mark2r2 | 0:08a4d61cd84c | 68 | TextLCD lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3 |
mark2r2 | 0:08a4d61cd84c | 69 | |
mark2r2 | 0:08a4d61cd84c | 70 | // local<-> global conversion |
mark2r2 | 0:08a4d61cd84c | 71 | AnalogIn *Sense15; |
mark2r2 | 0:08a4d61cd84c | 72 | GPS *gps; |
mark2r2 | 0:08a4d61cd84c | 73 | DigitalOut *buzzer; |
mark2r2 | 0:08a4d61cd84c | 74 | DigitalOut *outLED; |
mark2r2 | 0:08a4d61cd84c | 75 | FirmwareUpdater *fwup; |
mark2r2 | 0:08a4d61cd84c | 76 | |
mark2r2 | 0:08a4d61cd84c | 77 | //for average calculate arrays |
mark2r2 | 0:08a4d61cd84c | 78 | unsigned int cpm_array_max = 10; |
mark2r2 | 0:08a4d61cd84c | 79 | unsigned char cpm_array[AVERAGE_MIN]; |
mark2r2 | 0:08a4d61cd84c | 80 | //current index for array |
mark2r2 | 0:08a4d61cd84c | 81 | int cpm_index=0; |
mark2r2 | 0:08a4d61cd84c | 82 | int first_touch_index=0; |
mark2r2 | 0:08a4d61cd84c | 83 | |
mark2r2 | 0:08a4d61cd84c | 84 | //for calc |
mark2r2 | 0:08a4d61cd84c | 85 | float cpm=0; |
mark2r2 | 0:08a4d61cd84c | 86 | float uSv=0; |
mark2r2 | 0:08a4d61cd84c | 87 | float peak_uSv=0; |
mark2r2 | 0:08a4d61cd84c | 88 | int cnt=0; |
mark2r2 | 0:08a4d61cd84c | 89 | float offset_usv=0; |
mark2r2 | 0:08a4d61cd84c | 90 | float carib_cpm0=-1; |
mark2r2 | 0:08a4d61cd84c | 91 | float carib_usv0=-1; |
mark2r2 | 0:08a4d61cd84c | 92 | float carib_cpm1=-1; |
mark2r2 | 0:08a4d61cd84c | 93 | float carib_usv1=-1; |
mark2r2 | 0:08a4d61cd84c | 94 | |
mark2r2 | 0:08a4d61cd84c | 95 | //for long term average |
mark2r2 | 0:08a4d61cd84c | 96 | unsigned int long_cpm_array_max = 60; |
mark2r2 | 0:08a4d61cd84c | 97 | unsigned int *long_cpm_array; |
mark2r2 | 0:08a4d61cd84c | 98 | int long_cpm_index=0; |
mark2r2 | 0:08a4d61cd84c | 99 | int long_first_touch_index=0; |
mark2r2 | 0:08a4d61cd84c | 100 | unsigned char count_second=0; |
mark2r2 | 0:08a4d61cd84c | 101 | float long_cpm=0; |
mark2r2 | 0:08a4d61cd84c | 102 | float long_uSv=0; |
mark2r2 | 0:08a4d61cd84c | 103 | |
mark2r2 | 0:08a4d61cd84c | 104 | |
mark2r2 | 0:08a4d61cd84c | 105 | //for setting (config_env.c) |
mark2r2 | 0:08a4d61cd84c | 106 | float carib=660; |
mark2r2 | 0:08a4d61cd84c | 107 | int console_output_flag=0; |
mark2r2 | 0:08a4d61cd84c | 108 | int updateinterval=10; |
mark2r2 | 0:08a4d61cd84c | 109 | int updateintervalcount=0; |
mark2r2 | 0:08a4d61cd84c | 110 | int updateflag=0; /* 0: Standalone 1: Twitter 2:Pachube */ |
mark2r2 | 0:08a4d61cd84c | 111 | int updatetype=0; /* 0: no 1: twitter 2: pachube */ |
mark2r2 | 0:08a4d61cd84c | 112 | int sound=0; /* 0: off 1: on */ |
mark2r2 | 0:08a4d61cd84c | 113 | float voltagedivider=500; /* voltage_divider of the voltage by the board */ |
mark2r2 | 0:08a4d61cd84c | 114 | float volt=400; /* voltage executed to GM tube */ |
mark2r2 | 0:08a4d61cd84c | 115 | int firmware_update_interval=24; |
mark2r2 | 0:08a4d61cd84c | 116 | time_t tz_offset=9; |
mark2r2 | 0:08a4d61cd84c | 117 | char fwserver[256]; |
mark2r2 | 0:08a4d61cd84c | 118 | int init_stabilize_time=30; |
mark2r2 | 0:08a4d61cd84c | 119 | int cpu_speed=12; // 12=96MHz |
mark2r2 | 0:08a4d61cd84c | 120 | |
mark2r2 | 0:08a4d61cd84c | 121 | // Ethernet |
mark2r2 | 0:08a4d61cd84c | 122 | EthernetNetIf eth; |
mark2r2 | 0:08a4d61cd84c | 123 | Ethernet eth0; |
mark2r2 | 0:08a4d61cd84c | 124 | NTPClient ntp; |
mark2r2 | 0:08a4d61cd84c | 125 | |
mark2r2 | 0:08a4d61cd84c | 126 | |
mark2r2 | 0:08a4d61cd84c | 127 | // File access |
mark2r2 | 0:08a4d61cd84c | 128 | LocalFileSystem local("local"); |
mark2r2 | 0:08a4d61cd84c | 129 | |
mark2r2 | 0:08a4d61cd84c | 130 | // Output display selection |
mark2r2 | 0:08a4d61cd84c | 131 | int LCD_writing=0; |
mark2r2 | 0:08a4d61cd84c | 132 | |
mark2r2 | 0:08a4d61cd84c | 133 | //buzzer |
mark2r2 | 0:08a4d61cd84c | 134 | Timeout click; |
mark2r2 | 0:08a4d61cd84c | 135 | |
mark2r2 | 0:08a4d61cd84c | 136 | HTTPClient commonClient; |