akizuki no geiger counter kit
Dependencies: EthernetNetIf NTPClient_NetServices TextLCD mbed
main.cpp@0:8a84478219ae, 2011-03-31 (annotated)
- Committer:
- suupen
- Date:
- Thu Mar 31 11:42:38 2011 +0000
- Revision:
- 0:8a84478219ae
Ver0.1 2001/03/31
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:8a84478219ae | 1 | /************************************** |
suupen | 0:8a84478219ae | 2 | * Akizuki Geiger Kit |
suupen | 0:8a84478219ae | 3 | * |
suupen | 0:8a84478219ae | 4 | * program ver 0.1 2001/03/31 |
suupen | 0:8a84478219ae | 5 | * |
suupen | 0:8a84478219ae | 6 | * Text Lcd |
suupen | 0:8a84478219ae | 7 | * RS : p8 |
suupen | 0:8a84478219ae | 8 | * E : p9 |
suupen | 0:8a84478219ae | 9 | * WR : P14 (output=Low(GND)) |
suupen | 0:8a84478219ae | 10 | * d4 : p13 |
suupen | 0:8a84478219ae | 11 | * d5 : p10 |
suupen | 0:8a84478219ae | 12 | * d6 : p12 |
suupen | 0:8a84478219ae | 13 | * d7 : p11 |
suupen | 0:8a84478219ae | 14 | * |
suupen | 0:8a84478219ae | 15 | * Akizuki Geiger |
suupen | 0:8a84478219ae | 16 | * signal : p24 (Akizuki Geiger Kit no "EX Out" kara 1:3 no teikou bunatu de 9[V] wo 3[V] ni site nyuuryoku) |
suupen | 0:8a84478219ae | 17 | * signalGnd : p21(output=Low(GND)) |
suupen | 0:8a84478219ae | 18 | * |
suupen | 0:8a84478219ae | 19 | * sanko bunken |
suupen | 0:8a84478219ae | 20 | * maikon to densi kosaku No.5 |
suupen | 0:8a84478219ae | 21 | * CQ shupansha |
suupen | 0:8a84478219ae | 22 | **************************************/ |
suupen | 0:8a84478219ae | 23 | |
suupen | 0:8a84478219ae | 24 | #include "mbed.h" |
suupen | 0:8a84478219ae | 25 | #include "TextLCD.h" |
suupen | 0:8a84478219ae | 26 | #include "EthernetNetIf.h" |
suupen | 0:8a84478219ae | 27 | #include "NTPClient.h" |
suupen | 0:8a84478219ae | 28 | #include "HTTPClient.h" |
suupen | 0:8a84478219ae | 29 | |
suupen | 0:8a84478219ae | 30 | #define TMP_TEXT_BUF_SIZE (256) // mojiretu yo buffer size |
suupen | 0:8a84478219ae | 31 | |
suupen | 0:8a84478219ae | 32 | enum hyojisaki_t{ |
suupen | 0:8a84478219ae | 33 | lcd_hyoji, |
suupen | 0:8a84478219ae | 34 | twitter_hyoji |
suupen | 0:8a84478219ae | 35 | }; |
suupen | 0:8a84478219ae | 36 | |
suupen | 0:8a84478219ae | 37 | // Ethernet |
suupen | 0:8a84478219ae | 38 | EthernetNetIf eth; |
suupen | 0:8a84478219ae | 39 | NTPClient ntp; |
suupen | 0:8a84478219ae | 40 | |
suupen | 0:8a84478219ae | 41 | // File access |
suupen | 0:8a84478219ae | 42 | LocalFileSystem local("local"); |
suupen | 0:8a84478219ae | 43 | |
suupen | 0:8a84478219ae | 44 | |
suupen | 0:8a84478219ae | 45 | // Text LCD |
suupen | 0:8a84478219ae | 46 | DigitalOut RW(p14); |
suupen | 0:8a84478219ae | 47 | TextLCD lcd(p8, p9, p13, p10, p12, p11, TextLCD::LCD20x4); // rs, e, d4-d7 |
suupen | 0:8a84478219ae | 48 | |
suupen | 0:8a84478219ae | 49 | DigitalOut BackLight(p22); |
suupen | 0:8a84478219ae | 50 | |
suupen | 0:8a84478219ae | 51 | // Geiger |
suupen | 0:8a84478219ae | 52 | DigitalOut Geiger_GND(p21); // Geiger signal Gnd |
suupen | 0:8a84478219ae | 53 | InterruptIn Geiger_signal(p24); // Geiger signal |
suupen | 0:8a84478219ae | 54 | |
suupen | 0:8a84478219ae | 55 | |
suupen | 0:8a84478219ae | 56 | // sokutei chi |
suupen | 0:8a84478219ae | 57 | unsigned int C_geiger = 0; |
suupen | 0:8a84478219ae | 58 | unsigned int C_geigerMin[6] = {0, 0, 0, 0, 0, 0}; |
suupen | 0:8a84478219ae | 59 | unsigned int C_geigerHour[6] = {0, 0, 0, 0, 0, 0}; |
suupen | 0:8a84478219ae | 60 | |
suupen | 0:8a84478219ae | 61 | // sokutei chi no kakunou pointer |
suupen | 0:8a84478219ae | 62 | unsigned char P_geigerMin = 5; // C_geigerMin no Pointer 0-5 |
suupen | 0:8a84478219ae | 63 | unsigned char P_geigerHour = 5; // C_geigerHour no Pointer 0-5 |
suupen | 0:8a84478219ae | 64 | |
suupen | 0:8a84478219ae | 65 | |
suupen | 0:8a84478219ae | 66 | char id[32] = "\0"; |
suupen | 0:8a84478219ae | 67 | char password[32] = "\0"; |
suupen | 0:8a84478219ae | 68 | |
suupen | 0:8a84478219ae | 69 | /*********************************** |
suupen | 0:8a84478219ae | 70 | * File access |
suupen | 0:8a84478219ae | 71 | * |
suupen | 0:8a84478219ae | 72 | * Text file kara 1gyo bun wo syutoku |
suupen | 0:8a84478219ae | 73 | ***********************************/ |
suupen | 0:8a84478219ae | 74 | unsigned char GetFileLine(FILE *stm, char *str){ |
suupen | 0:8a84478219ae | 75 | char count = 0; |
suupen | 0:8a84478219ae | 76 | |
suupen | 0:8a84478219ae | 77 | if(fread(&str[count], 1, 1, stm) > 0){ |
suupen | 0:8a84478219ae | 78 | count++; |
suupen | 0:8a84478219ae | 79 | while((fread(&str[count], 1, 1, stm) > 0) |
suupen | 0:8a84478219ae | 80 | &&(str[count] != '\n') |
suupen | 0:8a84478219ae | 81 | &&(count < TMP_TEXT_BUF_SIZE)){ |
suupen | 0:8a84478219ae | 82 | count++; |
suupen | 0:8a84478219ae | 83 | } |
suupen | 0:8a84478219ae | 84 | } |
suupen | 0:8a84478219ae | 85 | str[count] = '\n'; |
suupen | 0:8a84478219ae | 86 | return(count); |
suupen | 0:8a84478219ae | 87 | } |
suupen | 0:8a84478219ae | 88 | |
suupen | 0:8a84478219ae | 89 | /*********************************** |
suupen | 0:8a84478219ae | 90 | * tag kara mojiretu wo syutoku |
suupen | 0:8a84478219ae | 91 | ***********************************/ |
suupen | 0:8a84478219ae | 92 | int GetStatus(char *path, char *tag, char *text){ |
suupen | 0:8a84478219ae | 93 | char *TmpText = (char*)malloc(TMP_TEXT_BUF_SIZE); |
suupen | 0:8a84478219ae | 94 | |
suupen | 0:8a84478219ae | 95 | if(TmpText == NULL){ |
suupen | 0:8a84478219ae | 96 | return (-1); |
suupen | 0:8a84478219ae | 97 | } |
suupen | 0:8a84478219ae | 98 | |
suupen | 0:8a84478219ae | 99 | char *TmpTag = (char*)malloc(TMP_TEXT_BUF_SIZE); |
suupen | 0:8a84478219ae | 100 | |
suupen | 0:8a84478219ae | 101 | if(TmpTag == NULL){ |
suupen | 0:8a84478219ae | 102 | free(TmpTag); |
suupen | 0:8a84478219ae | 103 | return(-1); |
suupen | 0:8a84478219ae | 104 | } |
suupen | 0:8a84478219ae | 105 | |
suupen | 0:8a84478219ae | 106 | FILE *stm = fopen(path, "r"); |
suupen | 0:8a84478219ae | 107 | |
suupen | 0:8a84478219ae | 108 | if(stm != NULL){ |
suupen | 0:8a84478219ae | 109 | text[0] = '\0'; |
suupen | 0:8a84478219ae | 110 | sprintf(TmpTag, "%s:%%s",tag); |
suupen | 0:8a84478219ae | 111 | |
suupen | 0:8a84478219ae | 112 | while(GetFileLine(stm, TmpText) > 0){ |
suupen | 0:8a84478219ae | 113 | sscanf(TmpText, TmpTag, text); |
suupen | 0:8a84478219ae | 114 | } |
suupen | 0:8a84478219ae | 115 | fclose(stm); |
suupen | 0:8a84478219ae | 116 | } |
suupen | 0:8a84478219ae | 117 | |
suupen | 0:8a84478219ae | 118 | free(TmpText); |
suupen | 0:8a84478219ae | 119 | free(TmpTag); |
suupen | 0:8a84478219ae | 120 | |
suupen | 0:8a84478219ae | 121 | return(0); |
suupen | 0:8a84478219ae | 122 | } |
suupen | 0:8a84478219ae | 123 | |
suupen | 0:8a84478219ae | 124 | |
suupen | 0:8a84478219ae | 125 | /*********************************** |
suupen | 0:8a84478219ae | 126 | |
suupen | 0:8a84478219ae | 127 | ***********************************/ |
suupen | 0:8a84478219ae | 128 | void TwitMsg(char *msg){ |
suupen | 0:8a84478219ae | 129 | HTTPClient twitter; |
suupen | 0:8a84478219ae | 130 | HTTPMap h_msg; |
suupen | 0:8a84478219ae | 131 | h_msg["status"] = msg; //A good example of Key/Value pair use with Web APIs |
suupen | 0:8a84478219ae | 132 | |
suupen | 0:8a84478219ae | 133 | twitter.basicAuth(id, password); //We use basic authentication, replace with you account's parameters |
suupen | 0:8a84478219ae | 134 | |
suupen | 0:8a84478219ae | 135 | //No need to retieve data sent back by the server |
suupen | 0:8a84478219ae | 136 | HTTPResult r = twitter.post("http://api.supertweet.net/1/statuses/update.xml", h_msg, NULL); |
suupen | 0:8a84478219ae | 137 | if( r == HTTP_OK ) |
suupen | 0:8a84478219ae | 138 | { |
suupen | 0:8a84478219ae | 139 | printf("Tweet sent with success!\n"); |
suupen | 0:8a84478219ae | 140 | } |
suupen | 0:8a84478219ae | 141 | else |
suupen | 0:8a84478219ae | 142 | { |
suupen | 0:8a84478219ae | 143 | printf("Problem during tweeting, return code %d\n", r); |
suupen | 0:8a84478219ae | 144 | } |
suupen | 0:8a84478219ae | 145 | } |
suupen | 0:8a84478219ae | 146 | |
suupen | 0:8a84478219ae | 147 | /************************************** |
suupen | 0:8a84478219ae | 148 | * 10Fun Count data no hyoji sakusei |
suupen | 0:8a84478219ae | 149 | ***************************************/ |
suupen | 0:8a84478219ae | 150 | void geiger_10FunHyoji(char *msg, hyojisaki_t hyoji){ |
suupen | 0:8a84478219ae | 151 | char tmp[5] = "\0"; |
suupen | 0:8a84478219ae | 152 | signed char i; |
suupen | 0:8a84478219ae | 153 | signed char p; |
suupen | 0:8a84478219ae | 154 | |
suupen | 0:8a84478219ae | 155 | //strcat(msg, "M:"); |
suupen | 0:8a84478219ae | 156 | |
suupen | 0:8a84478219ae | 157 | for(i = 0; i <= 5; i++){ |
suupen | 0:8a84478219ae | 158 | p = P_geigerMin - i; |
suupen | 0:8a84478219ae | 159 | if(p < 0){ |
suupen | 0:8a84478219ae | 160 | p += 6; |
suupen | 0:8a84478219ae | 161 | } |
suupen | 0:8a84478219ae | 162 | switch(hyoji){ |
suupen | 0:8a84478219ae | 163 | case lcd_hyoji: |
suupen | 0:8a84478219ae | 164 | sprintf(tmp, "%3d",C_geigerMin[p]); |
suupen | 0:8a84478219ae | 165 | break; |
suupen | 0:8a84478219ae | 166 | case twitter_hyoji: |
suupen | 0:8a84478219ae | 167 | default: |
suupen | 0:8a84478219ae | 168 | sprintf(tmp, "%3d ",C_geigerMin[p]); |
suupen | 0:8a84478219ae | 169 | break; |
suupen | 0:8a84478219ae | 170 | } |
suupen | 0:8a84478219ae | 171 | |
suupen | 0:8a84478219ae | 172 | strcat(msg, tmp); |
suupen | 0:8a84478219ae | 173 | } |
suupen | 0:8a84478219ae | 174 | } |
suupen | 0:8a84478219ae | 175 | |
suupen | 0:8a84478219ae | 176 | /************************************** |
suupen | 0:8a84478219ae | 177 | * 1Jikan Count data no hyoji sakusei |
suupen | 0:8a84478219ae | 178 | ***************************************/ |
suupen | 0:8a84478219ae | 179 | void geiger_1JikanHyoji(char *msg, hyojisaki_t hyoji){ |
suupen | 0:8a84478219ae | 180 | char tmp[4] = "\0"; |
suupen | 0:8a84478219ae | 181 | signed char i; |
suupen | 0:8a84478219ae | 182 | signed char p; |
suupen | 0:8a84478219ae | 183 | |
suupen | 0:8a84478219ae | 184 | //strcat(msg, "H:"); |
suupen | 0:8a84478219ae | 185 | |
suupen | 0:8a84478219ae | 186 | for(i = 0; i <= 5; i++){ |
suupen | 0:8a84478219ae | 187 | p = P_geigerHour - i; |
suupen | 0:8a84478219ae | 188 | if(p < 0){ |
suupen | 0:8a84478219ae | 189 | p += 6; |
suupen | 0:8a84478219ae | 190 | } |
suupen | 0:8a84478219ae | 191 | switch(hyoji){ |
suupen | 0:8a84478219ae | 192 | case lcd_hyoji: |
suupen | 0:8a84478219ae | 193 | sprintf(tmp, "%3d",C_geigerHour[p]); |
suupen | 0:8a84478219ae | 194 | break; |
suupen | 0:8a84478219ae | 195 | case twitter_hyoji: |
suupen | 0:8a84478219ae | 196 | default: |
suupen | 0:8a84478219ae | 197 | sprintf(tmp, "%3d ",C_geigerHour[p]); |
suupen | 0:8a84478219ae | 198 | break; |
suupen | 0:8a84478219ae | 199 | } |
suupen | 0:8a84478219ae | 200 | |
suupen | 0:8a84478219ae | 201 | strcat(msg, tmp); |
suupen | 0:8a84478219ae | 202 | } |
suupen | 0:8a84478219ae | 203 | } |
suupen | 0:8a84478219ae | 204 | |
suupen | 0:8a84478219ae | 205 | /************************************** |
suupen | 0:8a84478219ae | 206 | * calendar hyoji |
suupen | 0:8a84478219ae | 207 | ***************************************/ |
suupen | 0:8a84478219ae | 208 | void calendarHyoji(char *msg){ |
suupen | 0:8a84478219ae | 209 | time_t ctTime; |
suupen | 0:8a84478219ae | 210 | struct tm *jst_time; |
suupen | 0:8a84478219ae | 211 | char tmp[21] = "\0"; |
suupen | 0:8a84478219ae | 212 | |
suupen | 0:8a84478219ae | 213 | ctTime = time(NULL); |
suupen | 0:8a84478219ae | 214 | ctTime += 32400; |
suupen | 0:8a84478219ae | 215 | jst_time = localtime(&ctTime); |
suupen | 0:8a84478219ae | 216 | |
suupen | 0:8a84478219ae | 217 | sprintf(tmp,"%4d/%02d/%02d %02d:%02d:%02d",(jst_time->tm_year + 1900),(jst_time->tm_mon + 1),jst_time->tm_mday, jst_time->tm_hour, jst_time->tm_min, jst_time->tm_sec); |
suupen | 0:8a84478219ae | 218 | strcat(msg, tmp); |
suupen | 0:8a84478219ae | 219 | } |
suupen | 0:8a84478219ae | 220 | |
suupen | 0:8a84478219ae | 221 | |
suupen | 0:8a84478219ae | 222 | /************************************** |
suupen | 0:8a84478219ae | 223 | * LCD output |
suupen | 0:8a84478219ae | 224 | * |
suupen | 0:8a84478219ae | 225 | * kiokuchi wo LCD ni hyoji |
suupen | 0:8a84478219ae | 226 | ***************************************/ |
suupen | 0:8a84478219ae | 227 | void LCD_output(){ |
suupen | 0:8a84478219ae | 228 | char msg[21] = "\0"; |
suupen | 0:8a84478219ae | 229 | |
suupen | 0:8a84478219ae | 230 | // calendar |
suupen | 0:8a84478219ae | 231 | calendarHyoji(msg); |
suupen | 0:8a84478219ae | 232 | lcd.locate(0,0); |
suupen | 0:8a84478219ae | 233 | lcd.printf("%s",msg); |
suupen | 0:8a84478219ae | 234 | |
suupen | 0:8a84478219ae | 235 | // 10 fun no genzai iti |
suupen | 0:8a84478219ae | 236 | lcd.locate(0,1); |
suupen | 0:8a84478219ae | 237 | lcd.printf("M:"); |
suupen | 0:8a84478219ae | 238 | msg[0] = '\0'; |
suupen | 0:8a84478219ae | 239 | geiger_10FunHyoji(msg, lcd_hyoji); |
suupen | 0:8a84478219ae | 240 | lcd.locate(2,1); |
suupen | 0:8a84478219ae | 241 | lcd.printf("%s",msg); |
suupen | 0:8a84478219ae | 242 | |
suupen | 0:8a84478219ae | 243 | // 1 jikan no genzai iti |
suupen | 0:8a84478219ae | 244 | lcd.locate(0,2); |
suupen | 0:8a84478219ae | 245 | lcd.printf("H:"); |
suupen | 0:8a84478219ae | 246 | msg[0] = '\0'; |
suupen | 0:8a84478219ae | 247 | geiger_1JikanHyoji(msg, lcd_hyoji); |
suupen | 0:8a84478219ae | 248 | lcd.locate(2,2); |
suupen | 0:8a84478219ae | 249 | lcd.printf("%s",msg); |
suupen | 0:8a84478219ae | 250 | |
suupen | 0:8a84478219ae | 251 | // genzai count |
suupen | 0:8a84478219ae | 252 | lcd.locate(0,3); |
suupen | 0:8a84478219ae | 253 | lcd.printf("genzai = "); |
suupen | 0:8a84478219ae | 254 | |
suupen | 0:8a84478219ae | 255 | lcd.locate(9,3); |
suupen | 0:8a84478219ae | 256 | lcd.printf("%3d",C_geiger); |
suupen | 0:8a84478219ae | 257 | |
suupen | 0:8a84478219ae | 258 | |
suupen | 0:8a84478219ae | 259 | } |
suupen | 0:8a84478219ae | 260 | |
suupen | 0:8a84478219ae | 261 | /************************************** |
suupen | 0:8a84478219ae | 262 | * Twitter he syuturyoku |
suupen | 0:8a84478219ae | 263 | * |
suupen | 0:8a84478219ae | 264 | * kiokuchi wo LCD ni hyoji |
suupen | 0:8a84478219ae | 265 | ***************************************/ |
suupen | 0:8a84478219ae | 266 | void twitter_output(void){ |
suupen | 0:8a84478219ae | 267 | char msg[256] = "\0"; |
suupen | 0:8a84478219ae | 268 | |
suupen | 0:8a84478219ae | 269 | // calendar |
suupen | 0:8a84478219ae | 270 | calendarHyoji(msg); |
suupen | 0:8a84478219ae | 271 | strcat(msg,"\n"); |
suupen | 0:8a84478219ae | 272 | |
suupen | 0:8a84478219ae | 273 | |
suupen | 0:8a84478219ae | 274 | // 10 fun no genzai iti |
suupen | 0:8a84478219ae | 275 | strcat(msg,"\n"); |
suupen | 0:8a84478219ae | 276 | strcat(msg,"10Min/count:"); |
suupen | 0:8a84478219ae | 277 | geiger_10FunHyoji(msg, twitter_hyoji); |
suupen | 0:8a84478219ae | 278 | |
suupen | 0:8a84478219ae | 279 | |
suupen | 0:8a84478219ae | 280 | // 1 jikan no genzai iti |
suupen | 0:8a84478219ae | 281 | strcat(msg,"\n"); |
suupen | 0:8a84478219ae | 282 | strcat(msg,"1Hour/count:"); |
suupen | 0:8a84478219ae | 283 | geiger_1JikanHyoji(msg, twitter_hyoji); |
suupen | 0:8a84478219ae | 284 | |
suupen | 0:8a84478219ae | 285 | TwitMsg(msg); |
suupen | 0:8a84478219ae | 286 | |
suupen | 0:8a84478219ae | 287 | |
suupen | 0:8a84478219ae | 288 | } |
suupen | 0:8a84478219ae | 289 | /************************************* |
suupen | 0:8a84478219ae | 290 | * geiger signal input interrupt |
suupen | 0:8a84478219ae | 291 | * |
suupen | 0:8a84478219ae | 292 | * geiger counter karano singo wo count |
suupen | 0:8a84478219ae | 293 | **************************************/ |
suupen | 0:8a84478219ae | 294 | void geiger(){ |
suupen | 0:8a84478219ae | 295 | C_geiger++; |
suupen | 0:8a84478219ae | 296 | |
suupen | 0:8a84478219ae | 297 | |
suupen | 0:8a84478219ae | 298 | } |
suupen | 0:8a84478219ae | 299 | |
suupen | 0:8a84478219ae | 300 | /**************************************** |
suupen | 0:8a84478219ae | 301 | * Timer |
suupen | 0:8a84478219ae | 302 | * |
suupen | 0:8a84478219ae | 303 | * 10Fun goto no sekisan to 1jikan goto no sekisan |
suupen | 0:8a84478219ae | 304 | *****************************************/ |
suupen | 0:8a84478219ae | 305 | Ticker timer; |
suupen | 0:8a84478219ae | 306 | |
suupen | 0:8a84478219ae | 307 | void attime(){ |
suupen | 0:8a84478219ae | 308 | unsigned char i; |
suupen | 0:8a84478219ae | 309 | unsigned int wk = 0; |
suupen | 0:8a84478219ae | 310 | |
suupen | 0:8a84478219ae | 311 | |
suupen | 0:8a84478219ae | 312 | |
suupen | 0:8a84478219ae | 313 | // 1jikan keika nara 1jikan no sekisan keisan |
suupen | 0:8a84478219ae | 314 | P_geigerMin++; |
suupen | 0:8a84478219ae | 315 | if(P_geigerMin > 5){ |
suupen | 0:8a84478219ae | 316 | P_geigerMin = 0; |
suupen | 0:8a84478219ae | 317 | } |
suupen | 0:8a84478219ae | 318 | |
suupen | 0:8a84478219ae | 319 | C_geigerMin[P_geigerMin] = C_geiger; |
suupen | 0:8a84478219ae | 320 | C_geiger = 0; |
suupen | 0:8a84478219ae | 321 | |
suupen | 0:8a84478219ae | 322 | if(P_geigerMin == 5){ |
suupen | 0:8a84478219ae | 323 | for(i = 0; i < 6; i++){ |
suupen | 0:8a84478219ae | 324 | wk += C_geigerMin[i]; |
suupen | 0:8a84478219ae | 325 | } |
suupen | 0:8a84478219ae | 326 | P_geigerHour++; |
suupen | 0:8a84478219ae | 327 | if(P_geigerHour > 5){ |
suupen | 0:8a84478219ae | 328 | P_geigerHour = 0; |
suupen | 0:8a84478219ae | 329 | } |
suupen | 0:8a84478219ae | 330 | C_geigerHour[P_geigerHour] = wk; |
suupen | 0:8a84478219ae | 331 | |
suupen | 0:8a84478219ae | 332 | } |
suupen | 0:8a84478219ae | 333 | |
suupen | 0:8a84478219ae | 334 | twitter_output(); |
suupen | 0:8a84478219ae | 335 | } |
suupen | 0:8a84478219ae | 336 | |
suupen | 0:8a84478219ae | 337 | |
suupen | 0:8a84478219ae | 338 | |
suupen | 0:8a84478219ae | 339 | /************************************ |
suupen | 0:8a84478219ae | 340 | * main |
suupen | 0:8a84478219ae | 341 | * |
suupen | 0:8a84478219ae | 342 | ************************************/ |
suupen | 0:8a84478219ae | 343 | int main() { |
suupen | 0:8a84478219ae | 344 | /****************************** |
suupen | 0:8a84478219ae | 345 | * Twitter id password syutoku |
suupen | 0:8a84478219ae | 346 | ******************************/ |
suupen | 0:8a84478219ae | 347 | GetStatus("/local/env.ini","ID",id); |
suupen | 0:8a84478219ae | 348 | GetStatus("/local/env.ini","PASS",password); |
suupen | 0:8a84478219ae | 349 | |
suupen | 0:8a84478219ae | 350 | printf("%s\n",id); |
suupen | 0:8a84478219ae | 351 | printf("%s\n",password); |
suupen | 0:8a84478219ae | 352 | |
suupen | 0:8a84478219ae | 353 | /****************************** |
suupen | 0:8a84478219ae | 354 | * geiger setup |
suupen | 0:8a84478219ae | 355 | *******************************/ |
suupen | 0:8a84478219ae | 356 | // 10Fun syuuki timer interrupt |
suupen | 0:8a84478219ae | 357 | timer.attach(&attime, 600); |
suupen | 0:8a84478219ae | 358 | |
suupen | 0:8a84478219ae | 359 | Geiger_signal.rise(&geiger); |
suupen | 0:8a84478219ae | 360 | Geiger_signal.mode(PullNone); |
suupen | 0:8a84478219ae | 361 | |
suupen | 0:8a84478219ae | 362 | /***************************** |
suupen | 0:8a84478219ae | 363 | * LCD setup |
suupen | 0:8a84478219ae | 364 | *****************************/ |
suupen | 0:8a84478219ae | 365 | RW = 0; |
suupen | 0:8a84478219ae | 366 | BackLight = 0; |
suupen | 0:8a84478219ae | 367 | // lcd.printf("Hello World!\n"); |
suupen | 0:8a84478219ae | 368 | |
suupen | 0:8a84478219ae | 369 | /********************************** |
suupen | 0:8a84478219ae | 370 | * Ethernet setup |
suupen | 0:8a84478219ae | 371 | **********************************/ |
suupen | 0:8a84478219ae | 372 | printf("Start\n"); |
suupen | 0:8a84478219ae | 373 | |
suupen | 0:8a84478219ae | 374 | printf("Setting up...\n"); |
suupen | 0:8a84478219ae | 375 | EthernetErr ethErr = eth.setup(); |
suupen | 0:8a84478219ae | 376 | if(ethErr) |
suupen | 0:8a84478219ae | 377 | { |
suupen | 0:8a84478219ae | 378 | printf("Error %d in setup.\n", ethErr); |
suupen | 0:8a84478219ae | 379 | return -1; |
suupen | 0:8a84478219ae | 380 | } |
suupen | 0:8a84478219ae | 381 | printf("Setup OK\r\n"); |
suupen | 0:8a84478219ae | 382 | |
suupen | 0:8a84478219ae | 383 | /********************************* |
suupen | 0:8a84478219ae | 384 | * NTP setup |
suupen | 0:8a84478219ae | 385 | *********************************/ |
suupen | 0:8a84478219ae | 386 | time_t ctTime; |
suupen | 0:8a84478219ae | 387 | ctTime = time(NULL); |
suupen | 0:8a84478219ae | 388 | printf("Current time is (UTC): %s\n", ctime(&ctTime)); |
suupen | 0:8a84478219ae | 389 | |
suupen | 0:8a84478219ae | 390 | Host server(IpAddr(), 123, "0.uk.pool.ntp.org"); |
suupen | 0:8a84478219ae | 391 | ntp.setTime(server); |
suupen | 0:8a84478219ae | 392 | |
suupen | 0:8a84478219ae | 393 | ctTime = time(NULL); |
suupen | 0:8a84478219ae | 394 | printf("\nTime is now (UTC): %s\n", ctime(&ctTime)); |
suupen | 0:8a84478219ae | 395 | |
suupen | 0:8a84478219ae | 396 | |
suupen | 0:8a84478219ae | 397 | |
suupen | 0:8a84478219ae | 398 | |
suupen | 0:8a84478219ae | 399 | |
suupen | 0:8a84478219ae | 400 | |
suupen | 0:8a84478219ae | 401 | while(1){ |
suupen | 0:8a84478219ae | 402 | |
suupen | 0:8a84478219ae | 403 | LCD_output(); |
suupen | 0:8a84478219ae | 404 | |
suupen | 0:8a84478219ae | 405 | // wait(1.0); |
suupen | 0:8a84478219ae | 406 | } |
suupen | 0:8a84478219ae | 407 | } |