Websocket example
Dependencies: C027 UbloxUSBModem WebSocketClient mbed
Fork of VodafoneUSBModemWebsocketTest by
main.cpp@11:c329ae939cd5, 2014-02-03 (annotated)
- 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?
User | Revision | Line number | New 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 | } |