Starboard Orangeで使用することを想定したHTTPから時刻を取得して表示するプログラムです。
Dependencies: TextLCD mbed lwip
RTCsetwithHttpClient.cpp@0:4c1d230c9eac, 2010-12-30 (annotated)
- Committer:
- Nardi
- Date:
- Thu Dec 30 11:58:35 2010 +0000
- Revision:
- 0:4c1d230c9eac
1.0
Who changed what in which revision?
User | Revision | Line number | New 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 |