Example program streaming accelerometer data to a websocket server over a Sprint Mobile Broadband connection

Dependencies:   MMA7660 SprintUSBModem WebSocketClient mbed-rtos mbed

Committer:
donatien
Date:
Wed Oct 10 15:03:06 2012 +0000
Revision:
5:5aed2f21d249
Parent:
4:c1ce97cb8d74
Child:
6:b3fc13de8f5e
Missing carriage return

Who changed what in which revision?

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