Example program streaming accelerometer data to a websocket server over a Sprint Mobile Broadband connection
Dependencies: MMA7660 SprintUSBModem WebSocketClient mbed-rtos mbed
main.cpp@4:c1ce97cb8d74, 2012-10-10 (annotated)
- Committer:
- donatien
- Date:
- Wed Oct 10 14:56:48 2012 +0000
- Revision:
- 4:c1ce97cb8d74
- Parent:
- 2:9304861e65d6
- Child:
- 5:5aed2f21d249
Websocket demo
Who changed what in which revision?
User | Revision | Line number | New 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 | 2:9304861e65d6 | 52 | printf("Powered off\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 | } |