http://http://diytec.web.fc2.com/mark2r2/

Dependencies:   EthernetNetIf NTPClient_NetServices mbed ConfigFile

Committer:
mark2r2
Date:
Tue Sep 20 12:46:26 2011 +0000
Revision:
0:08a4d61cd84c
V1.0

Who changed what in which revision?

UserRevisionLine numberNew 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;