WebAPIサンプルプログラム mbedセミナー演習5

Dependencies:   EthernetNetIf TextLCD mbed

Committer:
jksoft
Date:
Fri Aug 26 16:12:29 2011 +0000
Revision:
0:51f3e67abb19

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:51f3e67abb19 1 #include "mbed.h"
jksoft 0:51f3e67abb19 2 #include "EthernetNetIf.h"
jksoft 0:51f3e67abb19 3 #include "TextLCD.h"
jksoft 0:51f3e67abb19 4 #include "HTTPClient.h"
jksoft 0:51f3e67abb19 5
jksoft 0:51f3e67abb19 6 TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7
jksoft 0:51f3e67abb19 7
jksoft 0:51f3e67abb19 8 EthernetNetIf eth;
jksoft 0:51f3e67abb19 9 HTTPClient http;
jksoft 0:51f3e67abb19 10
jksoft 0:51f3e67abb19 11 int j_paser( const char *buf , char *word , char *out )
jksoft 0:51f3e67abb19 12 {
jksoft 0:51f3e67abb19 13 int i = 0;
jksoft 0:51f3e67abb19 14 char *p;
jksoft 0:51f3e67abb19 15 char _word[64] = "\"\0";
jksoft 0:51f3e67abb19 16
jksoft 0:51f3e67abb19 17 strcat(_word , word );
jksoft 0:51f3e67abb19 18 strcat(_word , "\"" );
jksoft 0:51f3e67abb19 19
jksoft 0:51f3e67abb19 20 p = strstr( (char*)buf , _word ) + 2 + strlen(_word);
jksoft 0:51f3e67abb19 21
jksoft 0:51f3e67abb19 22 while( (p[i] != ',')&&(p[i] != '\n') )
jksoft 0:51f3e67abb19 23 {
jksoft 0:51f3e67abb19 24 out[i] = p[i];
jksoft 0:51f3e67abb19 25 i++;
jksoft 0:51f3e67abb19 26 }
jksoft 0:51f3e67abb19 27 out[i] = '\0';
jksoft 0:51f3e67abb19 28
jksoft 0:51f3e67abb19 29 return(i);
jksoft 0:51f3e67abb19 30 }
jksoft 0:51f3e67abb19 31
jksoft 0:51f3e67abb19 32 int main(void) {
jksoft 0:51f3e67abb19 33
jksoft 0:51f3e67abb19 34 char year[32];
jksoft 0:51f3e67abb19 35 char month[32];
jksoft 0:51f3e67abb19 36 char day[32];
jksoft 0:51f3e67abb19 37 char hour[32];
jksoft 0:51f3e67abb19 38 char usage[32];
jksoft 0:51f3e67abb19 39 char capacity[32];
jksoft 0:51f3e67abb19 40
jksoft 0:51f3e67abb19 41 EthernetErr ethErr = eth.setup();
jksoft 0:51f3e67abb19 42 if(ethErr)
jksoft 0:51f3e67abb19 43 {
jksoft 0:51f3e67abb19 44 lcd.locate(0,0);
jksoft 0:51f3e67abb19 45 lcd.printf("Ethernet err.");
jksoft 0:51f3e67abb19 46 return(-1);
jksoft 0:51f3e67abb19 47 }
jksoft 0:51f3e67abb19 48
jksoft 0:51f3e67abb19 49 lcd.locate(0,0);
jksoft 0:51f3e67abb19 50 lcd.printf("Getting info.");
jksoft 0:51f3e67abb19 51
jksoft 0:51f3e67abb19 52 HTTPText txt;
jksoft 0:51f3e67abb19 53
jksoft 0:51f3e67abb19 54 HTTPResult r = http.get("http://tepco-usage-api.appspot.com/latest.json", &txt);
jksoft 0:51f3e67abb19 55
jksoft 0:51f3e67abb19 56 if(r==HTTP_OK)
jksoft 0:51f3e67abb19 57 {
jksoft 0:51f3e67abb19 58 j_paser(txt.gets() , "year" , year);
jksoft 0:51f3e67abb19 59 j_paser(txt.gets() , "month" , month);
jksoft 0:51f3e67abb19 60 j_paser(txt.gets() , "day" , day);
jksoft 0:51f3e67abb19 61 j_paser(txt.gets() , "hour" , hour);
jksoft 0:51f3e67abb19 62 j_paser(txt.gets() , "usage" , usage);
jksoft 0:51f3e67abb19 63 j_paser(txt.gets() , "capacity" , capacity);
jksoft 0:51f3e67abb19 64
jksoft 0:51f3e67abb19 65 lcd.locate(0,0);
jksoft 0:51f3e67abb19 66 lcd.printf("%s/%s/%s %sh",year,month,day,hour);
jksoft 0:51f3e67abb19 67 lcd.locate(0,1);
jksoft 0:51f3e67abb19 68 lcd.printf("%s/%s %3.1f%%",usage,capacity,(((float)atoi(usage)/(float)atoi(capacity))*100.0));
jksoft 0:51f3e67abb19 69 }
jksoft 0:51f3e67abb19 70 else
jksoft 0:51f3e67abb19 71 {
jksoft 0:51f3e67abb19 72 lcd.locate(0,0);
jksoft 0:51f3e67abb19 73 lcd.printf("Http get err.");
jksoft 0:51f3e67abb19 74 return(-1);
jksoft 0:51f3e67abb19 75 }
jksoft 0:51f3e67abb19 76
jksoft 0:51f3e67abb19 77 while(1)
jksoft 0:51f3e67abb19 78 {
jksoft 0:51f3e67abb19 79
jksoft 0:51f3e67abb19 80 }
jksoft 0:51f3e67abb19 81
jksoft 0:51f3e67abb19 82 return(0);
jksoft 0:51f3e67abb19 83 }