Starboard Orangeで使用することを想定したHTTPから時刻を取得して表示するプログラムです。

Dependencies:   TextLCD mbed lwip

Committer:
Nardi
Date:
Thu Dec 30 11:58:35 2010 +0000
Revision:
0:4c1d230c9eac
1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nardi 0:4c1d230c9eac 1 #include "mbed.h"
Nardi 0:4c1d230c9eac 2 #include "HTTPClient.h"
Nardi 0:4c1d230c9eac 3 #include "TextLCD.h"
Nardi 0:4c1d230c9eac 4
Nardi 0:4c1d230c9eac 5 TextLCD lcd(p24,p26,p27,p28,p29,p30); // rs, e, d4-d7
Nardi 0:4c1d230c9eac 6
Nardi 0:4c1d230c9eac 7 #define PAGE_SIZE 77
Nardi 0:4c1d230c9eac 8
Nardi 0:4c1d230c9eac 9 HTTPClient http;
Nardi 0:4c1d230c9eac 10
Nardi 0:4c1d230c9eac 11 int main(void) {
Nardi 0:4c1d230c9eac 12 char result[PAGE_SIZE+1];
Nardi 0:4c1d230c9eac 13 char buf[40];
Nardi 0:4c1d230c9eac 14 char *e;
Nardi 0:4c1d230c9eac 15
Nardi 0:4c1d230c9eac 16 time_t seconds;
Nardi 0:4c1d230c9eac 17
Nardi 0:4c1d230c9eac 18 http.get("http://ntp-a1.nict.go.jp/cgi-bin/ntp", result,PAGE_SIZE);
Nardi 0:4c1d230c9eac 19 result[PAGE_SIZE]='\0';
Nardi 0:4c1d230c9eac 20
Nardi 0:4c1d230c9eac 21
Nardi 0:4c1d230c9eac 22 int start_body=strstr(result,"<BODY>")-result+7;
Nardi 0:4c1d230c9eac 23 int end_body = strstr(result,"</BODY>")-result-1;
Nardi 0:4c1d230c9eac 24 strncpy(buf, result+start_body, end_body-start_body);
Nardi 0:4c1d230c9eac 25 buf[end_body-start_body]='\0';
Nardi 0:4c1d230c9eac 26
Nardi 0:4c1d230c9eac 27 seconds = strtoul(buf,&e,10)-2208988800UL;
Nardi 0:4c1d230c9eac 28 seconds += 32400;//JST TIME
Nardi 0:4c1d230c9eac 29 set_time(seconds);
Nardi 0:4c1d230c9eac 30
Nardi 0:4c1d230c9eac 31 // Work is done!
Nardi 0:4c1d230c9eac 32 while (1) {
Nardi 0:4c1d230c9eac 33 seconds = time(NULL);
Nardi 0:4c1d230c9eac 34 strftime(buf,sizeof(buf),"%Y/%m/%d %a\n%H:%M:%S", localtime(&seconds));
Nardi 0:4c1d230c9eac 35 lcd.printf("%s\n", buf);
Nardi 0:4c1d230c9eac 36 wait(1);
Nardi 0:4c1d230c9eac 37 }
Nardi 0:4c1d230c9eac 38 }
Nardi 0:4c1d230c9eac 39