HTTPS(SSL) client and NTP client for GSwifi see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Dependencies:   GSwifi mbed

Committer:
gsfan
Date:
Wed Aug 22 00:52:43 2012 +0000
Revision:
1:b06de786490e
Parent:
0:4916aa89d55c
Child:
2:608c25ba84ca
fix

Who changed what in which revision?

UserRevisionLine numberNew 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 #define SSID "SSID"
gsfan 1:b06de786490e 6 #define PASS "passkey"
gsfan 0:4916aa89d55c 7
gsfan 0:4916aa89d55c 8 #define HTTP_HOST "secure.domain.name"
gsfan 0:4916aa89d55c 9 #define HTTP_URI "/index.html"
gsfan 0:4916aa89d55c 10
gsfan 1:b06de786490e 11 GSwifi gs(p13, p14); // TX, RX (no flow control)
gsfan 1:b06de786490e 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 1:b06de786490e 63
gsfan 1:b06de786490e 64 pc.printf("exit\r\n");
gsfan 0:4916aa89d55c 65 }