gs fan
/
GSwifi_https_get
HTTPS(SSL) client and NTP client for GSwifi see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/
main.cpp@0:4916aa89d55c, 2012-08-21 (annotated)
- Committer:
- gsfan
- Date:
- Tue Aug 21 07:55:16 2012 +0000
- Revision:
- 0:4916aa89d55c
- Child:
- 1:b06de786490e
1st build
;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gsfan | 0:4916aa89d55c | 1 | #include "mbed.h" |
gsfan | 0:4916aa89d55c | 2 | #include "GSwifi.h" |
gsfan | 0:4916aa89d55c | 3 | |
gsfan | 0:4916aa89d55c | 4 | #define SECURE GSSEC_WPA_PSK |
gsfan | 0:4916aa89d55c | 5 | |
gsfan | 0:4916aa89d55c | 6 | #define SSID "SSID" |
gsfan | 0:4916aa89d55c | 7 | #define PASS "password" |
gsfan | 0:4916aa89d55c | 8 | |
gsfan | 0:4916aa89d55c | 9 | #define HTTP_HOST "secure.domain.name" |
gsfan | 0:4916aa89d55c | 10 | #define HTTP_URI "/index.html" |
gsfan | 0:4916aa89d55c | 11 | |
gsfan | 0:4916aa89d55c | 12 | GSwifi gs(p13, p14, p12, P0_22); // TX, RX, CTS, RTS |
gsfan | 0:4916aa89d55c | 13 | Serial pc(USBTX, USBRX); |
gsfan | 0:4916aa89d55c | 14 | DigitalOut led1(LED1), led2(LED2); |
gsfan | 0:4916aa89d55c | 15 | |
gsfan | 0:4916aa89d55c | 16 | void onGsReceive (int cid, int len) { |
gsfan | 0:4916aa89d55c | 17 | int i; |
gsfan | 0:4916aa89d55c | 18 | char buf[GS_DATA_SIZE + 1]; |
gsfan | 0:4916aa89d55c | 19 | |
gsfan | 0:4916aa89d55c | 20 | led2 = 1; |
gsfan | 0:4916aa89d55c | 21 | i = gs.recv(cid, buf, len); |
gsfan | 0:4916aa89d55c | 22 | buf[i] = 0; |
gsfan | 0:4916aa89d55c | 23 | pc.printf(buf); |
gsfan | 0:4916aa89d55c | 24 | } |
gsfan | 0:4916aa89d55c | 25 | |
gsfan | 0:4916aa89d55c | 26 | int main () { |
gsfan | 0:4916aa89d55c | 27 | int r; |
gsfan | 0:4916aa89d55c | 28 | IpAddr ipaddr, netmask, gateway, nameserver; |
gsfan | 0:4916aa89d55c | 29 | Host host; |
gsfan | 0:4916aa89d55c | 30 | time_t time; |
gsfan | 0:4916aa89d55c | 31 | struct tm *t; |
gsfan | 0:4916aa89d55c | 32 | |
gsfan | 0:4916aa89d55c | 33 | led1 = 1; |
gsfan | 0:4916aa89d55c | 34 | pc.baud(115200); |
gsfan | 0:4916aa89d55c | 35 | |
gsfan | 0:4916aa89d55c | 36 | pc.printf("connect\r\n"); |
gsfan | 0:4916aa89d55c | 37 | if (gs.connect(SECURE, SSID, PASS)) { |
gsfan | 0:4916aa89d55c | 38 | return -1; |
gsfan | 0:4916aa89d55c | 39 | } |
gsfan | 0:4916aa89d55c | 40 | gs.getAddress(ipaddr, netmask, gateway, nameserver); |
gsfan | 0:4916aa89d55c | 41 | pc.printf("ip %d.%d.%d.%d\r\n", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]); |
gsfan | 0:4916aa89d55c | 42 | |
gsfan | 0:4916aa89d55c | 43 | pc.printf("ntpdate\r\n"); |
gsfan | 0:4916aa89d55c | 44 | host.setName("ntp.jst.mfeed.ad.jp"); |
gsfan | 0:4916aa89d55c | 45 | gs.ntpdate(host); |
gsfan | 0:4916aa89d55c | 46 | time = gs.getTime() + (9 * 60 * 60); |
gsfan | 0:4916aa89d55c | 47 | t = localtime(&time); |
gsfan | 0:4916aa89d55c | 48 | pc.printf("%04d-%02d-%02d, %02d:%02d:%02d\r\n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); |
gsfan | 0:4916aa89d55c | 49 | |
gsfan | 0:4916aa89d55c | 50 | pc.printf("httpGet\r\n"); |
gsfan | 0:4916aa89d55c | 51 | host.setName(HTTP_HOST); |
gsfan | 0:4916aa89d55c | 52 | r = gs.httpGet(host, HTTP_URI, 1, &onGsReceive); |
gsfan | 0:4916aa89d55c | 53 | if (r >= 0) { |
gsfan | 0:4916aa89d55c | 54 | for (;;) { |
gsfan | 0:4916aa89d55c | 55 | gs.poll(); |
gsfan | 0:4916aa89d55c | 56 | if (! gs.isConnected(r)) break; |
gsfan | 0:4916aa89d55c | 57 | |
gsfan | 0:4916aa89d55c | 58 | wait_ms(50); |
gsfan | 0:4916aa89d55c | 59 | led1 = !led1; |
gsfan | 0:4916aa89d55c | 60 | led2 = 0; |
gsfan | 0:4916aa89d55c | 61 | } |
gsfan | 0:4916aa89d55c | 62 | } |
gsfan | 0:4916aa89d55c | 63 | } |