An example program that establishes a read-only web socket connection, and echos everything it sees to the LCD

Dependencies:   C12832_lcd SprintUSBModem WebSocketClient mbed-rtos mbed

Fork of SprintUSBModemWebsocketTest-Temp by Chris Styles

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