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 Sep 26 07:08:46 2012 +0000
Revision:
0:0389bce1c74d
Child:
2:9304861e65d6
Initial commit

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 0:0389bce1c74d 3 #include "HTTPClient.h"
donatien 0:0389bce1c74d 4
donatien 0:0389bce1c74d 5 void test(void const*)
donatien 0:0389bce1c74d 6 {
donatien 0:0389bce1c74d 7 SprintUSBModem modem(p18);
donatien 0:0389bce1c74d 8 HTTPClient http;
donatien 0:0389bce1c74d 9 char str[512];
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 0:0389bce1c74d 19 printf("Could not connect\n");
donatien 0:0389bce1c74d 20 return;
donatien 0:0389bce1c74d 21 }
donatien 0:0389bce1c74d 22
donatien 0:0389bce1c74d 23 //GET data
donatien 0:0389bce1c74d 24 printf("Trying to fetch page...\n");
donatien 0:0389bce1c74d 25 ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128);
donatien 0:0389bce1c74d 26 if (!ret)
donatien 0:0389bce1c74d 27 {
donatien 0:0389bce1c74d 28 printf("Page fetched successfully - read %d characters\n", strlen(str));
donatien 0:0389bce1c74d 29 printf("Result: %s\n", str);
donatien 0:0389bce1c74d 30 }
donatien 0:0389bce1c74d 31 else
donatien 0:0389bce1c74d 32 {
donatien 0:0389bce1c74d 33 printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
donatien 0:0389bce1c74d 34 }
donatien 0:0389bce1c74d 35
donatien 0:0389bce1c74d 36 //POST data
donatien 0:0389bce1c74d 37 HTTPMap map;
donatien 0:0389bce1c74d 38 HTTPText text(str, 512);
donatien 0:0389bce1c74d 39 map.put("Hello", "World");
donatien 0:0389bce1c74d 40 map.put("test", "1234");
donatien 0:0389bce1c74d 41 printf("Trying to post data...\n");
donatien 0:0389bce1c74d 42 ret = http.post("http://httpbin.org/post", map, &text);
donatien 0:0389bce1c74d 43 if (!ret)
donatien 0:0389bce1c74d 44 {
donatien 0:0389bce1c74d 45 printf("Executed POST successfully - read %d characters\n", strlen(str));
donatien 0:0389bce1c74d 46 printf("Result: %s\n", str);
donatien 0:0389bce1c74d 47 }
donatien 0:0389bce1c74d 48 else
donatien 0:0389bce1c74d 49 {
donatien 0:0389bce1c74d 50 printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
donatien 0:0389bce1c74d 51 }
donatien 0:0389bce1c74d 52
donatien 0:0389bce1c74d 53 modem.disconnect();
donatien 0:0389bce1c74d 54
donatien 0:0389bce1c74d 55 modem.power(false);
donatien 0:0389bce1c74d 56
donatien 0:0389bce1c74d 57 while(1) {
donatien 0:0389bce1c74d 58 }
donatien 0:0389bce1c74d 59 }
donatien 0:0389bce1c74d 60
donatien 0:0389bce1c74d 61
donatien 0:0389bce1c74d 62 int main()
donatien 0:0389bce1c74d 63 {
donatien 0:0389bce1c74d 64 DBG_INIT();
donatien 0:0389bce1c74d 65 DBG_SET_SPEED(115200);
donatien 0:0389bce1c74d 66 DBG_SET_NEWLINE("\r\n");
donatien 0:0389bce1c74d 67 Thread testTask(test, NULL, osPriorityNormal, 1024 * 5);
donatien 0:0389bce1c74d 68 DigitalOut led(LED1);
donatien 0:0389bce1c74d 69 while(1)
donatien 0:0389bce1c74d 70 {
donatien 0:0389bce1c74d 71 led=!led;
donatien 0:0389bce1c74d 72 Thread::wait(1000);
donatien 0:0389bce1c74d 73 }
donatien 0:0389bce1c74d 74
donatien 0:0389bce1c74d 75 return 0;
donatien 0:0389bce1c74d 76 }