Websocket example

Dependencies:   C027 UbloxUSBModem WebSocketClient mbed

Fork of VodafoneUSBModemWebsocketTest by Donatien Garnier

Committer:
sam_grove
Date:
Mon Feb 03 16:03:32 2014 +0000
Revision:
11:c329ae939cd5
Parent:
10:495e03a3fc8f
Updated for CMDA modem, changed the demo and added the modem boot code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 2:cc30dc616fa2 1 #include "mbed.h"
mazgch 7:745fa95221ba 2 #include "C027.h"
mazgch 7:745fa95221ba 3 #include "UbloxUSBGSMModem.h"
mazgch 7:745fa95221ba 4 #include "UbloxUSBCDMAModem.h"
mazgch 7:745fa95221ba 5
donatien 2:cc30dc616fa2 6 #include "Websocket.h"
donatien 2:cc30dc616fa2 7
mazgch 10:495e03a3fc8f 8 C027 c027;
mazgch 10:495e03a3fc8f 9
mazgch 7:745fa95221ba 10 void test(void const*)
donatien 2:cc30dc616fa2 11 {
mazgch 10:495e03a3fc8f 12 c027.mdmPower(true);
sam_grove 11:c329ae939cd5 13 c027.mdmReset();
sam_grove 11:c329ae939cd5 14 c027.mdmWakeup();
sam_grove 11:c329ae939cd5 15 UbloxUSBCDMAModem modem(NC, true, 1); // for LISA-C use the UbloxUSBCDMAModem instead
sam_grove 11:c329ae939cd5 16 modem.power(true);
sam_grove 11:c329ae939cd5 17 Thread::wait(1000);
sam_grove 11:c329ae939cd5 18
sam_grove 11:c329ae939cd5 19 // See the output on http://sockets.mbed.org/demo/viewer
donatien 2:cc30dc616fa2 20 Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw");
sam_grove 11:c329ae939cd5 21 char msg[512] = {0};
sam_grove 11:c329ae939cd5 22 Timer t;
sam_grove 11:c329ae939cd5 23 t.start();
sam_grove 11:c329ae939cd5 24
mazgch 7:745fa95221ba 25 int ret = modem.connect("internet"); // eventaully set another apn here
mazgch 7:745fa95221ba 26 if(ret) {
mazgch 7:745fa95221ba 27 printf("Could not connect\n");
mazgch 7:745fa95221ba 28 return;
donatien 2:cc30dc616fa2 29 }
mazgch 7:745fa95221ba 30
donatien 4:0f0cd888156b 31 bool c = ws.connect();
donatien 4:0f0cd888156b 32 printf("Connect result: %s\n", c?"OK":"Failed");
mazgch 7:745fa95221ba 33
sam_grove 11:c329ae939cd5 34 for(int i = 0; i < 10000; i++)
sam_grove 11:c329ae939cd5 35 {
sam_grove 11:c329ae939cd5 36 ws.connect();
sam_grove 11:c329ae939cd5 37 // create json string with acc/tmp data
sam_grove 11:c329ae939cd5 38 sprintf(msg, "Testing mbed Websockets Loop: %d", i);
sam_grove 11:c329ae939cd5 39 ws.send(msg);
sam_grove 11:c329ae939cd5 40 wait(0.5f);
sam_grove 11:c329ae939cd5 41 memset(msg, 0, 512);
sam_grove 11:c329ae939cd5 42
sam_grove 11:c329ae939cd5 43 if (ws.read(msg))
sam_grove 11:c329ae939cd5 44 {
sam_grove 11:c329ae939cd5 45 printf("rcv: %s\r\n", msg);
donatien 4:0f0cd888156b 46 }
sam_grove 11:c329ae939cd5 47 else
sam_grove 11:c329ae939cd5 48 {
sam_grove 11:c329ae939cd5 49 printf("Loop %d ws.read() returns 0\n \t %s, line %d @ %6.2f seconds\n", i, __FILE__, __LINE__, t.read());
sam_grove 11:c329ae939cd5 50 wait(5.0f);
donatien 2:cc30dc616fa2 51 }
sam_grove 11:c329ae939cd5 52 ws.close();
donatien 4:0f0cd888156b 53
donatien 2:cc30dc616fa2 54 }
mazgch 7:745fa95221ba 55
mazgch 7:745fa95221ba 56 modem.disconnect();
mazgch 10:495e03a3fc8f 57 c027.mdmPower(false);
donatien 2:cc30dc616fa2 58
donatien 2:cc30dc616fa2 59 while(1) {
donatien 2:cc30dc616fa2 60 }
donatien 2:cc30dc616fa2 61 }
donatien 2:cc30dc616fa2 62
donatien 2:cc30dc616fa2 63
donatien 2:cc30dc616fa2 64 int main()
donatien 2:cc30dc616fa2 65 {
mazgch 7:745fa95221ba 66 Thread testTask(test, NULL, osPriorityNormal, 1024 * 4);
mazgch 10:495e03a3fc8f 67 DigitalOut led(LED); // on rev A you should reasign the signal to A0
mazgch 7:745fa95221ba 68 while(1) {
mazgch 7:745fa95221ba 69 led=!led;
mazgch 7:745fa95221ba 70 Thread::wait(1000);
mazgch 7:745fa95221ba 71 }
donatien 2:cc30dc616fa2 72
mazgch 7:745fa95221ba 73 return 0;
donatien 2:cc30dc616fa2 74 }