WebSocket Client for GSwifiInterface library Please see: http://mbed.org/users/gsfan/notebook/GSwifiInterface/

Dependencies:   GSwifiInterface mbed-rtos mbed

Committer:
gsfan
Date:
Fri Mar 07 15:22:03 2014 +0000
Revision:
1:bc2b47567c49
Parent:
0:82dc85bf7a0c
fix baud

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsfan 0:82dc85bf7a0c 1 #include "mbed.h"
gsfan 0:82dc85bf7a0c 2 #include "GSwifiInterface.h"
gsfan 0:82dc85bf7a0c 3
gsfan 0:82dc85bf7a0c 4 #define SEC GSwifi::SEC_WPA_PSK
gsfan 0:82dc85bf7a0c 5 #define SSID "SSID"
gsfan 0:82dc85bf7a0c 6 #define PASS "PASSPHRASE"
gsfan 0:82dc85bf7a0c 7
gsfan 0:82dc85bf7a0c 8 #define WS_SERVER "sockets.mbed.org"
gsfan 0:82dc85bf7a0c 9 #define WS_URI "/ws/username/rw"
gsfan 0:82dc85bf7a0c 10
gsfan 0:82dc85bf7a0c 11 #ifndef CFG_ENABLE_WEBSOCKET
gsfan 0:82dc85bf7a0c 12 #error Please enable "#define CFG_ENABLE_WEBSOCKET" in "GSwifi_conf.h"
gsfan 0:82dc85bf7a0c 13 #endif
gsfan 0:82dc85bf7a0c 14
gsfan 0:82dc85bf7a0c 15 Serial pc(USBTX, USBRX);
gsfan 0:82dc85bf7a0c 16
gsfan 0:82dc85bf7a0c 17 int main() {
gsfan 1:bc2b47567c49 18 GSwifiInterface gs(p13, p14, p12, P0_22, p20, NC);
gsfan 1:bc2b47567c49 19 // GSwifiInterface gs(p13, p14, NC, NC, p20, NC);
gsfan 0:82dc85bf7a0c 20 pc.baud(115200);
gsfan 0:82dc85bf7a0c 21 printf("WebSocket Client...\r\n");
gsfan 0:82dc85bf7a0c 22 gs.init(); //Use DHCP
gsfan 0:82dc85bf7a0c 23 if (gs.connect(SEC, SSID, PASS)) exit(-1); // join the network
gsfan 0:82dc85bf7a0c 24 printf("IP Address is %s\r\n", gs.getIPAddress());
gsfan 0:82dc85bf7a0c 25
gsfan 0:82dc85bf7a0c 26 int cid = gs.wsOpen (WS_SERVER, 80, WS_URI);
gsfan 0:82dc85bf7a0c 27 if (cid < 0) {
gsfan 0:82dc85bf7a0c 28 printf("error: wsOpen\r\n");
gsfan 0:82dc85bf7a0c 29 return -1;
gsfan 0:82dc85bf7a0c 30 }
gsfan 0:82dc85bf7a0c 31
gsfan 0:82dc85bf7a0c 32 printf("WebSocket ready\r\n");
gsfan 0:82dc85bf7a0c 33 for (;;) {
gsfan 0:82dc85bf7a0c 34 gs.poll();
gsfan 0:82dc85bf7a0c 35
gsfan 0:82dc85bf7a0c 36 if (pc.readable()) {
gsfan 0:82dc85bf7a0c 37 char c;
gsfan 0:82dc85bf7a0c 38 char buf[2];
gsfan 0:82dc85bf7a0c 39 c = pc.getc();
gsfan 0:82dc85bf7a0c 40 if (c == 0x1b) break; // ESC
gsfan 0:82dc85bf7a0c 41 pc.printf("send: %c\r\n", c);
gsfan 0:82dc85bf7a0c 42 buf[0] = c;
gsfan 0:82dc85bf7a0c 43 gs.wsSend(cid, buf, 1, "MASK");
gsfan 0:82dc85bf7a0c 44 }
gsfan 0:82dc85bf7a0c 45
gsfan 0:82dc85bf7a0c 46 if (gs.readable(cid)) {
gsfan 0:82dc85bf7a0c 47 int i, n;
gsfan 0:82dc85bf7a0c 48 char buf[40];
gsfan 0:82dc85bf7a0c 49 n = gs.recv(cid, buf, sizeof(buf));
gsfan 0:82dc85bf7a0c 50 printf("recv: ");
gsfan 0:82dc85bf7a0c 51 for (i = 0; i < n; i ++) {
gsfan 0:82dc85bf7a0c 52 printf(" %02x", buf[i]);
gsfan 0:82dc85bf7a0c 53 }
gsfan 0:82dc85bf7a0c 54 printf("\r\n");
gsfan 0:82dc85bf7a0c 55 }
gsfan 0:82dc85bf7a0c 56
gsfan 0:82dc85bf7a0c 57 if (!gs.isConnected(cid)) {
gsfan 0:82dc85bf7a0c 58 break;
gsfan 0:82dc85bf7a0c 59 }
gsfan 0:82dc85bf7a0c 60 }
gsfan 0:82dc85bf7a0c 61
gsfan 0:82dc85bf7a0c 62 gs.dissociate();
gsfan 0:82dc85bf7a0c 63 return 0;
gsfan 0:82dc85bf7a0c 64 }