Websocket demo using the Sprint/Sierra Wireless 598U dongle

Dependencies:   SprintUSBModem WebSocketClient mbed-rtos mbed

Committer:
donatien
Date:
Tue Oct 30 10:01:33 2012 +0000
Revision:
0:162f8f714dcc
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:162f8f714dcc 1 #include "mbed.h"
donatien 0:162f8f714dcc 2 #include "SprintUSBModem.h"
donatien 0:162f8f714dcc 3 #include "Websocket.h"
donatien 0:162f8f714dcc 4
donatien 0:162f8f714dcc 5 void test(void const*)
donatien 0:162f8f714dcc 6 {
donatien 0:162f8f714dcc 7 SprintUSBModem modem(p18);
donatien 0:162f8f714dcc 8 Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw");
donatien 0:162f8f714dcc 9 char recv[128];
donatien 0:162f8f714dcc 10
donatien 0:162f8f714dcc 11 Thread::wait(5000);
donatien 0:162f8f714dcc 12 printf("Switching power on\r\n");
donatien 0:162f8f714dcc 13
donatien 0:162f8f714dcc 14 modem.power(true);
donatien 0:162f8f714dcc 15
donatien 0:162f8f714dcc 16 int ret = modem.connect();
donatien 0:162f8f714dcc 17 if(ret)
donatien 0:162f8f714dcc 18 {
donatien 0:162f8f714dcc 19 printf("Could not connect\r\n");
donatien 0:162f8f714dcc 20 return;
donatien 0:162f8f714dcc 21 }
donatien 0:162f8f714dcc 22
donatien 0:162f8f714dcc 23 bool c = ws.connect();
donatien 0:162f8f714dcc 24 printf("Connect result: %s\r\n", c?"OK":"Failed");
donatien 0:162f8f714dcc 25
donatien 0:162f8f714dcc 26 for(int i = 0; i < 10000; i++)
donatien 0:162f8f714dcc 27 {
donatien 0:162f8f714dcc 28 if(!(i%100))
donatien 0:162f8f714dcc 29 {
donatien 0:162f8f714dcc 30 int ret = ws.send("WebSocket Hello World!");
donatien 0:162f8f714dcc 31 if(ret<0)
donatien 0:162f8f714dcc 32 {
donatien 0:162f8f714dcc 33 printf("Timeout\r\n");
donatien 0:162f8f714dcc 34 ws.close();
donatien 0:162f8f714dcc 35 c = ws.connect();
donatien 0:162f8f714dcc 36 printf("Connect result: %s\r\n", c?"OK":"Failed");
donatien 0:162f8f714dcc 37 }
donatien 0:162f8f714dcc 38 }
donatien 0:162f8f714dcc 39
donatien 0:162f8f714dcc 40 if (ws.read(recv)) {
donatien 0:162f8f714dcc 41 printf("rcv: %s\r\n", recv);
donatien 0:162f8f714dcc 42 }
donatien 0:162f8f714dcc 43
donatien 0:162f8f714dcc 44 }
donatien 0:162f8f714dcc 45
donatien 0:162f8f714dcc 46 modem.disconnect();
donatien 0:162f8f714dcc 47
donatien 0:162f8f714dcc 48 printf("Disconnected\r\n");
donatien 0:162f8f714dcc 49
donatien 0:162f8f714dcc 50 modem.power(false);
donatien 0:162f8f714dcc 51
donatien 0:162f8f714dcc 52 printf("Powered off\r\n");
donatien 0:162f8f714dcc 53
donatien 0:162f8f714dcc 54 while(1) {
donatien 0:162f8f714dcc 55 }
donatien 0:162f8f714dcc 56 }
donatien 0:162f8f714dcc 57
donatien 0:162f8f714dcc 58
donatien 0:162f8f714dcc 59 int main()
donatien 0:162f8f714dcc 60 {
donatien 0:162f8f714dcc 61 DBG_INIT();
donatien 0:162f8f714dcc 62 DBG_SET_SPEED(115200);
donatien 0:162f8f714dcc 63 DBG_SET_NEWLINE("\r\n");
donatien 0:162f8f714dcc 64 Thread testTask(test, NULL, osPriorityNormal, 1024 * 5);
donatien 0:162f8f714dcc 65 DigitalOut led(LED1);
donatien 0:162f8f714dcc 66 while(1)
donatien 0:162f8f714dcc 67 {
donatien 0:162f8f714dcc 68 led=!led;
donatien 0:162f8f714dcc 69 Thread::wait(1000);
donatien 0:162f8f714dcc 70 }
donatien 0:162f8f714dcc 71
donatien 0:162f8f714dcc 72 return 0;
donatien 0:162f8f714dcc 73 }