Websocket example

Dependencies:   C027 UbloxUSBModem WebSocketClient mbed

Fork of VodafoneUSBModemWebsocketTest by Donatien Garnier

Committer:
mazgch
Date:
Wed Nov 06 10:48:00 2013 +0000
Revision:
10:495e03a3fc8f
Parent:
8:05a5c32037c2
Child:
11:c329ae939cd5
use latest C027 library

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);
mazgch 7:745fa95221ba 13 UbloxUSBGSMModem modem; // for LISA-C use the UbloxUSBCDMAModem instead
donatien 2:cc30dc616fa2 14 Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw");
donatien 2:cc30dc616fa2 15 char recv[128];
mazgch 7:745fa95221ba 16
mazgch 7:745fa95221ba 17 int ret = modem.connect("internet"); // eventaully set another apn here
mazgch 7:745fa95221ba 18 if(ret) {
mazgch 7:745fa95221ba 19 printf("Could not connect\n");
mazgch 7:745fa95221ba 20 return;
donatien 2:cc30dc616fa2 21 }
mazgch 7:745fa95221ba 22
donatien 4:0f0cd888156b 23 bool c = ws.connect();
donatien 4:0f0cd888156b 24 printf("Connect result: %s\n", c?"OK":"Failed");
mazgch 7:745fa95221ba 25
mazgch 7:745fa95221ba 26 for(int i = 0; i < 10000; i++) {
mazgch 7:745fa95221ba 27 if(!(i%100)) {
mazgch 7:745fa95221ba 28 int ret = ws.send("WebSocket Hello World over the Vodafone Network!");
mazgch 7:745fa95221ba 29 if(ret<0) {
mazgch 7:745fa95221ba 30 printf("Timeout\n");
mazgch 7:745fa95221ba 31 ws.close();
mazgch 7:745fa95221ba 32 c = ws.connect();
mazgch 7:745fa95221ba 33 printf("Connect result: %s\n", c?"OK":"Failed");
mazgch 7:745fa95221ba 34 }
donatien 4:0f0cd888156b 35 }
mazgch 7:745fa95221ba 36
donatien 2:cc30dc616fa2 37 if (ws.read(recv)) {
donatien 2:cc30dc616fa2 38 printf("rcv: %s\r\n", recv);
donatien 2:cc30dc616fa2 39 }
donatien 4:0f0cd888156b 40
donatien 2:cc30dc616fa2 41 }
mazgch 7:745fa95221ba 42
mazgch 7:745fa95221ba 43 modem.disconnect();
mazgch 10:495e03a3fc8f 44 c027.mdmPower(false);
donatien 2:cc30dc616fa2 45
donatien 2:cc30dc616fa2 46 while(1) {
donatien 2:cc30dc616fa2 47 }
donatien 2:cc30dc616fa2 48 }
donatien 2:cc30dc616fa2 49
donatien 2:cc30dc616fa2 50
donatien 2:cc30dc616fa2 51 int main()
donatien 2:cc30dc616fa2 52 {
mazgch 7:745fa95221ba 53 Thread testTask(test, NULL, osPriorityNormal, 1024 * 4);
mazgch 10:495e03a3fc8f 54 DigitalOut led(LED); // on rev A you should reasign the signal to A0
mazgch 7:745fa95221ba 55 while(1) {
mazgch 7:745fa95221ba 56 led=!led;
mazgch 7:745fa95221ba 57 Thread::wait(1000);
mazgch 7:745fa95221ba 58 }
donatien 2:cc30dc616fa2 59
mazgch 7:745fa95221ba 60 return 0;
donatien 2:cc30dc616fa2 61 }