Integrating the ublox LISA C200 modem

Fork of SprintUSBModemHTTPClientTest by Donatien Garnier

Committer:
sam_grove
Date:
Tue Oct 01 22:14:15 2013 +0000
Revision:
14:cd53f77f8afe
Parent:
13:c920eb6774de
Child:
19:f1d893c651e5
Added Websockets test to the code base

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:43ee25ebfe6b 1 #include "mbed.h"
donatien 0:43ee25ebfe6b 2 #include "SprintUSBModem.h"
donatien 0:43ee25ebfe6b 3 #include "HTTPClient.h"
sam_grove 14:cd53f77f8afe 4 #include "Websocket.h"
donatien 0:43ee25ebfe6b 5
sam_grove 11:3baeddcea132 6 char const *msg = "need another reason to merge\n";
sam_grove 13:c920eb6774de 7 //char const *URL = "http://mbed.org/";
sam_grove 13:c920eb6774de 8 //char const *URL = "https://www.google.com/";
sam_grove 13:c920eb6774de 9 char const *URL = "http://httpbin.org/ip";
sam_grove 10:bdacd7bddc52 10
donatien 0:43ee25ebfe6b 11 void test(void const*)
donatien 0:43ee25ebfe6b 12 {
mike.pulice@proxy-usa.com 7:655438fd019f 13 SprintUSBModem modem(p18, true, 1);
donatien 0:43ee25ebfe6b 14 HTTPClient http;
donatien 0:43ee25ebfe6b 15 char str[512];
donatien 0:43ee25ebfe6b 16
donatien 0:43ee25ebfe6b 17 Thread::wait(5000);
donatien 0:43ee25ebfe6b 18 printf("Switching power on\r\n");
donatien 0:43ee25ebfe6b 19
donatien 0:43ee25ebfe6b 20 modem.power(true);
donatien 0:43ee25ebfe6b 21
donatien 0:43ee25ebfe6b 22 int ret = modem.connect();
donatien 0:43ee25ebfe6b 23 if(ret)
donatien 0:43ee25ebfe6b 24 {
donatien 0:43ee25ebfe6b 25 printf("Could not connect\r\n");
donatien 0:43ee25ebfe6b 26 return;
donatien 0:43ee25ebfe6b 27 }
sam_grove 14:cd53f77f8afe 28 // See the output on http://sockets.mbed.org/sg_test/viewer
sam_grove 14:cd53f77f8afe 29 Websocket ws("ws://sockets.mbed.org:443/ws/sg_test/rw");
sam_grove 14:cd53f77f8afe 30 ws.connect();
sam_grove 14:cd53f77f8afe 31 char json_str[100];
sam_grove 14:cd53f77f8afe 32 for(int i=0; i<100; ++i)
sam_grove 14:cd53f77f8afe 33 {
sam_grove 14:cd53f77f8afe 34 // create json string with acc/tmp data
sam_grove 14:cd53f77f8afe 35 sprintf(json_str, "{\"id\":\"test\",\"ax\":%d,\"ay\":%d,\"az\":%d, \"tmp\":%d}", i, i, i, i);
sam_grove 14:cd53f77f8afe 36 // send str
sam_grove 14:cd53f77f8afe 37 ws.send(json_str);
sam_grove 14:cd53f77f8afe 38 wait(1.0f);
sam_grove 14:cd53f77f8afe 39 memset(json_str, 0, 100);
sam_grove 14:cd53f77f8afe 40 if (ws.read(json_str))
sam_grove 14:cd53f77f8afe 41 {
sam_grove 14:cd53f77f8afe 42 printf("rcv: %s\r\n", json_str);
sam_grove 14:cd53f77f8afe 43 }
sam_grove 14:cd53f77f8afe 44 }
sam_grove 14:cd53f77f8afe 45
donatien 0:43ee25ebfe6b 46
donatien 0:43ee25ebfe6b 47 //GET data
donatien 0:43ee25ebfe6b 48 printf("Trying to fetch page...\r\n");
sam_grove 13:c920eb6774de 49 ret = http.get(URL, str, 128);
donatien 0:43ee25ebfe6b 50 if (!ret)
donatien 0:43ee25ebfe6b 51 {
donatien 0:43ee25ebfe6b 52 printf("Page fetched successfully - read %d characters\r\n", strlen(str));
donatien 0:43ee25ebfe6b 53 printf("Result: %s\r\n", str);
donatien 0:43ee25ebfe6b 54 }
donatien 0:43ee25ebfe6b 55 else
donatien 0:43ee25ebfe6b 56 {
donatien 0:43ee25ebfe6b 57 printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
donatien 0:43ee25ebfe6b 58 }
donatien 0:43ee25ebfe6b 59
donatien 0:43ee25ebfe6b 60 //POST data
donatien 0:43ee25ebfe6b 61 HTTPMap map;
donatien 0:43ee25ebfe6b 62 HTTPText text(str, 512);
donatien 0:43ee25ebfe6b 63 map.put("Hello", "World");
donatien 0:43ee25ebfe6b 64 map.put("test", "1234");
donatien 0:43ee25ebfe6b 65 printf("Trying to post data...\r\n");
donatien 0:43ee25ebfe6b 66 ret = http.post("http://httpbin.org/post", map, &text);
donatien 0:43ee25ebfe6b 67 if (!ret)
donatien 0:43ee25ebfe6b 68 {
donatien 0:43ee25ebfe6b 69 printf("Executed POST successfully - read %d characters\r\n", strlen(str));
donatien 0:43ee25ebfe6b 70 printf("Result: %s\r\n", str);
donatien 0:43ee25ebfe6b 71 }
donatien 0:43ee25ebfe6b 72 else
donatien 0:43ee25ebfe6b 73 {
donatien 0:43ee25ebfe6b 74 printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
donatien 0:43ee25ebfe6b 75 }
donatien 0:43ee25ebfe6b 76
donatien 0:43ee25ebfe6b 77 printf("Disconnecting\r\n");
donatien 0:43ee25ebfe6b 78
donatien 0:43ee25ebfe6b 79 modem.disconnect();
donatien 0:43ee25ebfe6b 80
donatien 0:43ee25ebfe6b 81 printf("Disconnected\r\n");
donatien 0:43ee25ebfe6b 82
donatien 0:43ee25ebfe6b 83 modem.power(false);
donatien 0:43ee25ebfe6b 84
donatien 0:43ee25ebfe6b 85 printf("Powered off\r\n");
donatien 0:43ee25ebfe6b 86
donatien 0:43ee25ebfe6b 87 while(1) {
donatien 0:43ee25ebfe6b 88 }
donatien 0:43ee25ebfe6b 89 }
donatien 0:43ee25ebfe6b 90
donatien 0:43ee25ebfe6b 91
donatien 0:43ee25ebfe6b 92 int main()
donatien 0:43ee25ebfe6b 93 {
donatien 0:43ee25ebfe6b 94 DBG_INIT();
donatien 0:43ee25ebfe6b 95 DBG_SET_SPEED(115200);
donatien 0:43ee25ebfe6b 96 DBG_SET_NEWLINE("\r\n");
donatien 0:43ee25ebfe6b 97 Thread testTask(test, NULL, osPriorityNormal, 1024 * 5);
donatien 0:43ee25ebfe6b 98 DigitalOut led(LED1);
donatien 0:43ee25ebfe6b 99 while(1)
donatien 0:43ee25ebfe6b 100 {
donatien 0:43ee25ebfe6b 101 led=!led;
donatien 0:43ee25ebfe6b 102 Thread::wait(1000);
donatien 0:43ee25ebfe6b 103 }
donatien 0:43ee25ebfe6b 104
donatien 0:43ee25ebfe6b 105 return 0;
donatien 0:43ee25ebfe6b 106 }