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 main.c
mark2r2 0:08a4d61cd84c 4
mark2r2 0:08a4d61cd84c 5 *************************************************************/
mark2r2 0:08a4d61cd84c 6 #include "geiger.h"
mark2r2 0:08a4d61cd84c 7
mark2r2 0:08a4d61cd84c 8 void calculate_sv(){
mark2r2 0:08a4d61cd84c 9 cpm = 0;
mark2r2 0:08a4d61cd84c 10 for(int i=0; i<=first_touch_index; i++){
mark2r2 0:08a4d61cd84c 11 cpm += cpm_array[i];
mark2r2 0:08a4d61cd84c 12 }
mark2r2 0:08a4d61cd84c 13 cpm /= ((first_touch_index+1)*((float)CHUNK/60));
mark2r2 0:08a4d61cd84c 14
mark2r2 0:08a4d61cd84c 15 uSv = cpm/carib + offset_usv;
mark2r2 0:08a4d61cd84c 16 if (uSv <0) uSv = 0;
mark2r2 0:08a4d61cd84c 17
mark2r2 0:08a4d61cd84c 18 //peak usv set
mark2r2 0:08a4d61cd84c 19 if(peak_uSv<uSv){
mark2r2 0:08a4d61cd84c 20 peak_uSv=uSv;
mark2r2 0:08a4d61cd84c 21 }
mark2r2 0:08a4d61cd84c 22
mark2r2 0:08a4d61cd84c 23 // for long term average
mark2r2 0:08a4d61cd84c 24 long_cpm=0;
mark2r2 0:08a4d61cd84c 25 unsigned long cpm_sum=0;
mark2r2 0:08a4d61cd84c 26 for (int i=0; i<= long_first_touch_index; i++) {
mark2r2 0:08a4d61cd84c 27 cpm_sum += long_cpm_array[i];
mark2r2 0:08a4d61cd84c 28 }
mark2r2 0:08a4d61cd84c 29 cpm_sum *= 60;
mark2r2 0:08a4d61cd84c 30 long_cpm = (float)cpm_sum / ((long_first_touch_index)*60+count_second);
mark2r2 0:08a4d61cd84c 31 long_uSv = long_cpm/carib + offset_usv;
mark2r2 0:08a4d61cd84c 32
mark2r2 0:08a4d61cd84c 33 #ifdef DEBUG
mark2r2 0:08a4d61cd84c 34 pc.printf("cpm=%3d,usv=%.3f,longcpm=%ld,long_usv=%.3f\r\n",(int)cpm,uSv,(long)long_cpm,long_uSv);
mark2r2 0:08a4d61cd84c 35 #endif
mark2r2 0:08a4d61cd84c 36
mark2r2 0:08a4d61cd84c 37 }
mark2r2 0:08a4d61cd84c 38
mark2r2 0:08a4d61cd84c 39 void next_geiger_countup(){
mark2r2 0:08a4d61cd84c 40
mark2r2 0:08a4d61cd84c 41 cnt = 0;
mark2r2 0:08a4d61cd84c 42 if(++cpm_index>=cpm_array_max){
mark2r2 0:08a4d61cd84c 43 cpm_index=0;
mark2r2 0:08a4d61cd84c 44 }
mark2r2 0:08a4d61cd84c 45 //first touch index count up
mark2r2 0:08a4d61cd84c 46 if(cpm_index>first_touch_index){
mark2r2 0:08a4d61cd84c 47 first_touch_index=cpm_index;
mark2r2 0:08a4d61cd84c 48 }
mark2r2 0:08a4d61cd84c 49 cpm_array[cpm_index]=cnt;
mark2r2 0:08a4d61cd84c 50
mark2r2 0:08a4d61cd84c 51 // for long term average
mark2r2 0:08a4d61cd84c 52 if (++count_second >= 60) {
mark2r2 0:08a4d61cd84c 53 if (++long_cpm_index >= long_cpm_array_max+1) {
mark2r2 0:08a4d61cd84c 54 long_cpm_index = 0;
mark2r2 0:08a4d61cd84c 55 }
mark2r2 0:08a4d61cd84c 56 long_cpm_array[long_cpm_index] = 0;
mark2r2 0:08a4d61cd84c 57 count_second = 0;
mark2r2 0:08a4d61cd84c 58
mark2r2 0:08a4d61cd84c 59 if(long_cpm_index > long_first_touch_index){
mark2r2 0:08a4d61cd84c 60 long_first_touch_index = long_cpm_index;
mark2r2 0:08a4d61cd84c 61 }
mark2r2 0:08a4d61cd84c 62 }
mark2r2 0:08a4d61cd84c 63
mark2r2 0:08a4d61cd84c 64 }
mark2r2 0:08a4d61cd84c 65
mark2r2 0:08a4d61cd84c 66
mark2r2 0:08a4d61cd84c 67 // Timer -- called every 1 min.
mark2r2 0:08a4d61cd84c 68 Ticker timer;
mark2r2 0:08a4d61cd84c 69
mark2r2 0:08a4d61cd84c 70 void attime(){
mark2r2 0:08a4d61cd84c 71
mark2r2 0:08a4d61cd84c 72 next_geiger_countup();
mark2r2 0:08a4d61cd84c 73 if(++updateintervalcount > updateinterval){
mark2r2 0:08a4d61cd84c 74 updateflag=1;
mark2r2 0:08a4d61cd84c 75 updateintervalcount=0;
mark2r2 0:08a4d61cd84c 76 }
mark2r2 0:08a4d61cd84c 77 }
mark2r2 0:08a4d61cd84c 78
mark2r2 0:08a4d61cd84c 79
mark2r2 0:08a4d61cd84c 80 void geiger()
mark2r2 0:08a4d61cd84c 81 {
mark2r2 0:08a4d61cd84c 82 if(mode==1){
mark2r2 0:08a4d61cd84c 83 read_dma_data();
mark2r2 0:08a4d61cd84c 84 }
mark2r2 0:08a4d61cd84c 85
mark2r2 0:08a4d61cd84c 86 cnt++;
mark2r2 0:08a4d61cd84c 87 cpm_array[cpm_index]=cnt;
mark2r2 0:08a4d61cd84c 88 long_cpm_array[long_cpm_index]++;
mark2r2 0:08a4d61cd84c 89
mark2r2 0:08a4d61cd84c 90 *outLED=1;
mark2r2 0:08a4d61cd84c 91 if(sound==1) *buzzer=1;
mark2r2 0:08a4d61cd84c 92 click.attach(&buzzer_off,0.03);
mark2r2 0:08a4d61cd84c 93 }
mark2r2 0:08a4d61cd84c 94
mark2r2 0:08a4d61cd84c 95 void whereami() {
mark2r2 0:08a4d61cd84c 96 if(gps->sample()&& gps->longitude!=0 && gps->latitude!=0) {
mark2r2 0:08a4d61cd84c 97 printf("GPS:%f/%f,", gps->longitude, gps->latitude);
mark2r2 0:08a4d61cd84c 98 }
mark2r2 0:08a4d61cd84c 99 }
mark2r2 0:08a4d61cd84c 100
mark2r2 0:08a4d61cd84c 101
mark2r2 0:08a4d61cd84c 102 void console_output(){
mark2r2 0:08a4d61cd84c 103 char msg[256];
mark2r2 0:08a4d61cd84c 104 msg[0]='\0';
mark2r2 0:08a4d61cd84c 105 if(++console_output_flag>2){
mark2r2 0:08a4d61cd84c 106 printable_msg(msg);
mark2r2 0:08a4d61cd84c 107 printf("%s",msg);
mark2r2 0:08a4d61cd84c 108 console_output_flag=0;
mark2r2 0:08a4d61cd84c 109 }
mark2r2 0:08a4d61cd84c 110 }
mark2r2 0:08a4d61cd84c 111
mark2r2 0:08a4d61cd84c 112 //NTP setup
mark2r2 0:08a4d61cd84c 113 void ntpget() {
mark2r2 0:08a4d61cd84c 114
mark2r2 0:08a4d61cd84c 115 Host server(IpAddr(), 123, "jp.pool.ntp.org");
mark2r2 0:08a4d61cd84c 116 lcd.cls();
mark2r2 0:08a4d61cd84c 117 lcd.locate(0,0);
mark2r2 0:08a4d61cd84c 118 lcd.printf("Get NTP.");
mark2r2 0:08a4d61cd84c 119 ntpRet = ntp.setTime(server);
mark2r2 0:08a4d61cd84c 120
mark2r2 0:08a4d61cd84c 121 }
mark2r2 0:08a4d61cd84c 122
mark2r2 0:08a4d61cd84c 123 void pulldown() {
mark2r2 0:08a4d61cd84c 124 DigitalIn dp05(p5); dp05.mode(PullDown);
mark2r2 0:08a4d61cd84c 125 DigitalIn dp06(p6); dp06.mode(PullDown);
mark2r2 0:08a4d61cd84c 126 DigitalIn dp07(p7); dp07.mode(PullDown);
mark2r2 0:08a4d61cd84c 127 DigitalIn dp08(p8); dp08.mode(PullDown);
mark2r2 0:08a4d61cd84c 128 DigitalIn dp09(p9); dp09.mode(PullDown);
mark2r2 0:08a4d61cd84c 129 DigitalIn dp10(p10); dp10.mode(PullDown);
mark2r2 0:08a4d61cd84c 130 DigitalIn dp11(p11); dp11.mode(PullDown);
mark2r2 0:08a4d61cd84c 131 DigitalIn dp12(p12); dp12.mode(PullDown);
mark2r2 0:08a4d61cd84c 132 DigitalIn dp13(p13); dp13.mode(PullDown);
mark2r2 0:08a4d61cd84c 133 DigitalIn dp14(p14); dp14.mode(PullDown);
mark2r2 0:08a4d61cd84c 134 DigitalIn dp15(p15); dp15.mode(PullDown);
mark2r2 0:08a4d61cd84c 135 DigitalIn dp16(p16); dp16.mode(PullDown);
mark2r2 0:08a4d61cd84c 136 DigitalIn dp17(p17); dp17.mode(PullDown);
mark2r2 0:08a4d61cd84c 137 //DigitalIn dp18(p18); dp18.mode(PullDown);
mark2r2 0:08a4d61cd84c 138 DigitalIn dp19(p19); dp19.mode(PullDown);
mark2r2 0:08a4d61cd84c 139 DigitalIn dp20(p20); dp20.mode(PullDown);
mark2r2 0:08a4d61cd84c 140 DigitalIn dp21(p21); dp21.mode(PullDown);
mark2r2 0:08a4d61cd84c 141 //DigitalIn dp22(p22); dp22.mode(PullDown);
mark2r2 0:08a4d61cd84c 142 //DigitalIn dp23(p23); dp23.mode(PullDown);
mark2r2 0:08a4d61cd84c 143 //DigitalIn dp24(p24); dp24.mode(PullDown);
mark2r2 0:08a4d61cd84c 144 DigitalIn dp25(p25); dp25.mode(PullDown);
mark2r2 0:08a4d61cd84c 145 //DigitalIn dp26(p26); dp26.mode(PullDown);
mark2r2 0:08a4d61cd84c 146 //DigitalIn dp27(p27); dp27.mode(PullDown);
mark2r2 0:08a4d61cd84c 147 //DigitalIn dp28(p28); dp28.mode(PullDown);
mark2r2 0:08a4d61cd84c 148 //DigitalIn dp29(p29); dp29.mode(PullDown);
mark2r2 0:08a4d61cd84c 149 //DigitalIn dp30(p30); dp30.mode(PullDown);
mark2r2 0:08a4d61cd84c 150 }
mark2r2 0:08a4d61cd84c 151
mark2r2 0:08a4d61cd84c 152 /**************** main ***************************/
mark2r2 0:08a4d61cd84c 153
mark2r2 0:08a4d61cd84c 154 int main() {
mark2r2 0:08a4d61cd84c 155 pulldown();
mark2r2 0:08a4d61cd84c 156
mark2r2 0:08a4d61cd84c 157 AnalogOut tri(p18);
mark2r2 0:08a4d61cd84c 158 tri = 0.0;
mark2r2 0:08a4d61cd84c 159
mark2r2 0:08a4d61cd84c 160 //cpu_setting();
mark2r2 0:08a4d61cd84c 161
mark2r2 0:08a4d61cd84c 162 // See http://mbed.org/users/no2chem/notebook/mbed-clock-control--benchmarks/
mark2r2 0:08a4d61cd84c 163 setSystemFrequency(0x3, 0x1, cpu_speed, 1); // Set clock freq 96MHz (full speed)
mark2r2 0:08a4d61cd84c 164 SystemCoreClockUpdate();
mark2r2 0:08a4d61cd84c 165 pc.baud(460800);
mark2r2 0:08a4d61cd84c 166
mark2r2 0:08a4d61cd84c 167 EthernetErr ethErr;
mark2r2 0:08a4d61cd84c 168
mark2r2 0:08a4d61cd84c 169 environment_setting(fwserver);
mark2r2 0:08a4d61cd84c 170
mark2r2 0:08a4d61cd84c 171 // malloc for long average
mark2r2 0:08a4d61cd84c 172 long_cpm_array = (unsigned int *)malloc((long_cpm_array_max+1) * sizeof(unsigned int) );
mark2r2 0:08a4d61cd84c 173 if (long_cpm_array == NULL) {
mark2r2 0:08a4d61cd84c 174 lcd.cls();
mark2r2 0:08a4d61cd84c 175 lcd.printf("Can't malloc for long_cpm_array");
mark2r2 0:08a4d61cd84c 176 pc.printf("Can't malloc for long_cpm_array");
mark2r2 0:08a4d61cd84c 177 abort();
mark2r2 0:08a4d61cd84c 178 }
mark2r2 0:08a4d61cd84c 179
mark2r2 0:08a4d61cd84c 180 if (mode != -1) {
mark2r2 0:08a4d61cd84c 181 switch(updatetype){
mark2r2 0:08a4d61cd84c 182 case 0:
mark2r2 0:08a4d61cd84c 183 break;
mark2r2 0:08a4d61cd84c 184 case 1:
mark2r2 0:08a4d61cd84c 185 twitter_setup();
mark2r2 0:08a4d61cd84c 186 break;
mark2r2 0:08a4d61cd84c 187 case 2:
mark2r2 0:08a4d61cd84c 188 pachube_setup(&appconf);
mark2r2 0:08a4d61cd84c 189 break;
mark2r2 0:08a4d61cd84c 190 default:
mark2r2 0:08a4d61cd84c 191 lcd.cls();lcd.locate(0,0);
mark2r2 0:08a4d61cd84c 192 lcd.printf("No update to the internet\n");
mark2r2 0:08a4d61cd84c 193 break;
mark2r2 0:08a4d61cd84c 194 }
mark2r2 0:08a4d61cd84c 195 wait(0.5);
mark2r2 0:08a4d61cd84c 196 }
mark2r2 0:08a4d61cd84c 197
mark2r2 0:08a4d61cd84c 198 // ****** Initializing objects ********
mark2r2 0:08a4d61cd84c 199 PachubeV2CSV web(appconf.apikey);
mark2r2 0:08a4d61cd84c 200
mark2r2 0:08a4d61cd84c 201 if (mode==1) {
mark2r2 0:08a4d61cd84c 202 AnalogIn Sense15_(pin_assign(AnalogInput_pin_number));
mark2r2 0:08a4d61cd84c 203 Sense15=&Sense15_;
mark2r2 0:08a4d61cd84c 204 }
mark2r2 0:08a4d61cd84c 205
mark2r2 0:08a4d61cd84c 206 InterruptIn Geiger_signal(pin_assign(GMInterrupt_pin_number)); // Geiger signal
mark2r2 0:08a4d61cd84c 207
mark2r2 0:08a4d61cd84c 208 DigitalOut buzzer_(pin_assign(Buzzer_pin_number));
mark2r2 0:08a4d61cd84c 209 buzzer=&buzzer_;
mark2r2 0:08a4d61cd84c 210
mark2r2 0:08a4d61cd84c 211 DigitalOut outLED_(pin_assign(LED_pin_number));
mark2r2 0:08a4d61cd84c 212 outLED=&outLED_;
mark2r2 0:08a4d61cd84c 213
mark2r2 0:08a4d61cd84c 214 GPS gps_(pin_assign(GPStx_pin_number), pin_assign(GPSrx_pin_number));
mark2r2 0:08a4d61cd84c 215 gps=&gps_;
mark2r2 0:08a4d61cd84c 216
mark2r2 0:08a4d61cd84c 217 if (mode != -1) {
mark2r2 0:08a4d61cd84c 218 printf("Version: %s\n",VERSION);
mark2r2 0:08a4d61cd84c 219 lcd.cls();
mark2r2 0:08a4d61cd84c 220 lcd.printf("Ver %s\n",VERSION);
mark2r2 0:08a4d61cd84c 221 wait(2);
mark2r2 0:08a4d61cd84c 222
mark2r2 0:08a4d61cd84c 223 char msg[256] = "";
mark2r2 0:08a4d61cd84c 224 fullcalendarHyoji(msg);
mark2r2 0:08a4d61cd84c 225 printf("Self Clock: %s\n",msg);
mark2r2 0:08a4d61cd84c 226
mark2r2 0:08a4d61cd84c 227 // Ethernet setup
mark2r2 0:08a4d61cd84c 228 fwup = new FirmwareUpdater(fwserver, BINNAME, &commonClient,true);
mark2r2 0:08a4d61cd84c 229
mark2r2 0:08a4d61cd84c 230 if (eth0.link()) {
mark2r2 0:08a4d61cd84c 231 lcd.locate(0,0);lcd.cls();lcd.printf("Setting up the Internet(DHCP)\n");
mark2r2 0:08a4d61cd84c 232 ethErr = eth.setup();
mark2r2 0:08a4d61cd84c 233 lcd.cls(); lcd.locate(0,0);
mark2r2 0:08a4d61cd84c 234 if(ethErr){
mark2r2 0:08a4d61cd84c 235 lcd.printf("Please plug into the Internet.");
mark2r2 0:08a4d61cd84c 236 printf("Error %d in setup.\n", ethErr);
mark2r2 0:08a4d61cd84c 237 }else{
mark2r2 0:08a4d61cd84c 238 noInternet=0;
mark2r2 0:08a4d61cd84c 239 IpAddr ipadr = eth.getIp();
mark2r2 0:08a4d61cd84c 240 lcd.printf("IP=%d.%d.%d.%d\n",
mark2r2 0:08a4d61cd84c 241 ipadr[0],ipadr[1],ipadr[2],ipadr[3]);
mark2r2 0:08a4d61cd84c 242 wait(2);
mark2r2 0:08a4d61cd84c 243 if(firmware_update_interval > 0) {
mark2r2 0:08a4d61cd84c 244 check_newfirm();
mark2r2 0:08a4d61cd84c 245 }
mark2r2 0:08a4d61cd84c 246 ntpget();
mark2r2 0:08a4d61cd84c 247
mark2r2 0:08a4d61cd84c 248 memset((char *)msg, '\0', 256);
mark2r2 0:08a4d61cd84c 249 fullcalendarHyoji(msg);
mark2r2 0:08a4d61cd84c 250 printf("NTP Clock: %s\n",msg);
mark2r2 0:08a4d61cd84c 251 }
mark2r2 0:08a4d61cd84c 252 }
mark2r2 0:08a4d61cd84c 253 } // end if (mode != -1)
mark2r2 0:08a4d61cd84c 254
mark2r2 0:08a4d61cd84c 255 if (mode == 1) {
mark2r2 0:08a4d61cd84c 256 setup_adcdma();
mark2r2 0:08a4d61cd84c 257 }
mark2r2 0:08a4d61cd84c 258
mark2r2 0:08a4d61cd84c 259 // Geiger setup
mark2r2 0:08a4d61cd84c 260 float stepvolt;
mark2r2 0:08a4d61cd84c 261 const int step=40;
mark2r2 0:08a4d61cd84c 262 for (stepvolt=0; stepvolt<volt; ) {
mark2r2 0:08a4d61cd84c 263 lcd.cls();
mark2r2 0:08a4d61cd84c 264 lcd.printf("volt=%.0f\n", stepvolt);
mark2r2 0:08a4d61cd84c 265 tri = stepvolt/voltagedivider/3.3;
mark2r2 0:08a4d61cd84c 266 wait(0.5);
mark2r2 0:08a4d61cd84c 267 stepvolt+=step;
mark2r2 0:08a4d61cd84c 268 }
mark2r2 0:08a4d61cd84c 269 lcd.cls();
mark2r2 0:08a4d61cd84c 270 lcd.printf("volt=%.0f\n", volt);
mark2r2 0:08a4d61cd84c 271 tri = volt/voltagedivider/3.3;
mark2r2 0:08a4d61cd84c 272 wait(0.5);
mark2r2 0:08a4d61cd84c 273
mark2r2 0:08a4d61cd84c 274 for(int i=10; i>0; i--) {
mark2r2 0:08a4d61cd84c 275 lcd.cls();
mark2r2 0:08a4d61cd84c 276 lcd.printf("Wait %2dsec for stabilize voltage",i);
mark2r2 0:08a4d61cd84c 277 wait(1);
mark2r2 0:08a4d61cd84c 278 }
mark2r2 0:08a4d61cd84c 279
mark2r2 0:08a4d61cd84c 280 Geiger_signal.rise(&geiger);
mark2r2 0:08a4d61cd84c 281 Geiger_signal.mode(PullDown);
mark2r2 0:08a4d61cd84c 282
mark2r2 0:08a4d61cd84c 283 // timer interrupt
mark2r2 0:08a4d61cd84c 284 timer.attach(&attime, CHUNK);
mark2r2 0:08a4d61cd84c 285
mark2r2 0:08a4d61cd84c 286 int firmware_update_term = firmware_update_interval * 60 / (updateinterval/60);
mark2r2 0:08a4d61cd84c 287 int firmware_update_counter=0;
mark2r2 0:08a4d61cd84c 288
mark2r2 0:08a4d61cd84c 289 if (mode != -1) {
mark2r2 0:08a4d61cd84c 290 for(int i=init_stabilize_time; i>0; i--) {
mark2r2 0:08a4d61cd84c 291 lcd.cls();
mark2r2 0:08a4d61cd84c 292 lcd.printf("Wait %2dsec for stabilize cpm",i);
mark2r2 0:08a4d61cd84c 293 wait(1);
mark2r2 0:08a4d61cd84c 294 }
mark2r2 0:08a4d61cd84c 295 }
mark2r2 0:08a4d61cd84c 296
mark2r2 0:08a4d61cd84c 297 //************* Main Loop ******************//
mark2r2 0:08a4d61cd84c 298 while(1){
mark2r2 0:08a4d61cd84c 299
mark2r2 0:08a4d61cd84c 300 if (mode == -1) {
mark2r2 0:08a4d61cd84c 301 LCD_cpm_output();
mark2r2 0:08a4d61cd84c 302 } else if (mode != 3) {
mark2r2 0:08a4d61cd84c 303 LCD_time_and_output();
mark2r2 0:08a4d61cd84c 304 }
mark2r2 0:08a4d61cd84c 305 // console_output();
mark2r2 0:08a4d61cd84c 306
mark2r2 0:08a4d61cd84c 307 wait(1.0);
mark2r2 0:08a4d61cd84c 308 if(mode==2){
mark2r2 0:08a4d61cd84c 309 whereami();
mark2r2 0:08a4d61cd84c 310 }
mark2r2 0:08a4d61cd84c 311 if(mode != -1 && updateflag){
mark2r2 0:08a4d61cd84c 312 updateflag=0;
mark2r2 0:08a4d61cd84c 313 if (noInternet==1 && eth0.link()==1){
mark2r2 0:08a4d61cd84c 314 ethErr = eth.setup();
mark2r2 0:08a4d61cd84c 315 if(ethErr) {
mark2r2 0:08a4d61cd84c 316 } else {
mark2r2 0:08a4d61cd84c 317 noInternet=0;
mark2r2 0:08a4d61cd84c 318 ntpget();
mark2r2 0:08a4d61cd84c 319 }
mark2r2 0:08a4d61cd84c 320 }
mark2r2 0:08a4d61cd84c 321
mark2r2 0:08a4d61cd84c 322 if (!noInternet) {
mark2r2 0:08a4d61cd84c 323 switch(updatetype){
mark2r2 0:08a4d61cd84c 324 case 0:
mark2r2 0:08a4d61cd84c 325 break;
mark2r2 0:08a4d61cd84c 326 case 1:
mark2r2 0:08a4d61cd84c 327 twitter_output();
mark2r2 0:08a4d61cd84c 328 break;
mark2r2 0:08a4d61cd84c 329 case 2:
mark2r2 0:08a4d61cd84c 330 printf("pachube\r\n");
mark2r2 0:08a4d61cd84c 331 pachube_output(&web, &commonClient);
mark2r2 0:08a4d61cd84c 332 printf("data uploaded to pachube\n");
mark2r2 0:08a4d61cd84c 333 break;
mark2r2 0:08a4d61cd84c 334 default:
mark2r2 0:08a4d61cd84c 335 break;
mark2r2 0:08a4d61cd84c 336 }
mark2r2 0:08a4d61cd84c 337
mark2r2 0:08a4d61cd84c 338 if(firmware_update_interval > 0 &&
mark2r2 0:08a4d61cd84c 339 firmware_update_counter++ >= firmware_update_term){
mark2r2 0:08a4d61cd84c 340 if(fwup->exist()==0) {
mark2r2 0:08a4d61cd84c 341 mbed_reset();
mark2r2 0:08a4d61cd84c 342 } else {
mark2r2 0:08a4d61cd84c 343 firmware_update_counter = 0;
mark2r2 0:08a4d61cd84c 344 }
mark2r2 0:08a4d61cd84c 345 ntpget();
mark2r2 0:08a4d61cd84c 346 }
mark2r2 0:08a4d61cd84c 347 }// !noInternet
mark2r2 0:08a4d61cd84c 348 }//if update flag
mark2r2 0:08a4d61cd84c 349 }//while
mark2r2 0:08a4d61cd84c 350 }//main
mark2r2 0:08a4d61cd84c 351
mark2r2 0:08a4d61cd84c 352