Integrating the ublox LISA C200 modem
Fork of SprintUSBModemHTTPClientTest by
main.cpp@21:3f45e53afe4f, 2013-10-08 (annotated)
- Committer:
- sam_grove
- Date:
- Tue Oct 08 00:08:22 2013 +0000
- Revision:
- 21:3f45e53afe4f
- Parent:
- 20:39772b740985
Added http client test. Return from post seems to be a bit wonky but haven't looked closely at this
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sam_grove | 20:39772b740985 | 1 | |
donatien | 0:43ee25ebfe6b | 2 | #include "mbed.h" |
donatien | 0:43ee25ebfe6b | 3 | #include "SprintUSBModem.h" |
donatien | 0:43ee25ebfe6b | 4 | #include "HTTPClient.h" |
sam_grove | 14:cd53f77f8afe | 5 | #include "Websocket.h" |
donatien | 0:43ee25ebfe6b | 6 | |
sam_grove | 20:39772b740985 | 7 | void websocketTest(void const*) |
donatien | 0:43ee25ebfe6b | 8 | { |
mike.pulice@proxy-usa.com | 7:655438fd019f | 9 | SprintUSBModem modem(p18, true, 1); |
sam_grove | 21:3f45e53afe4f | 10 | char msg[2048] = {0}; |
donatien | 0:43ee25ebfe6b | 11 | |
sam_grove | 20:39772b740985 | 12 | // Using C16-C20 make sure to connect mbed p18 to J2 pin 16 |
donatien | 0:43ee25ebfe6b | 13 | modem.power(true); |
donatien | 0:43ee25ebfe6b | 14 | int ret = modem.connect(); |
donatien | 0:43ee25ebfe6b | 15 | if(ret) |
donatien | 0:43ee25ebfe6b | 16 | { |
sam_grove | 21:3f45e53afe4f | 17 | error("Modem connect failed: %s line %d", __PRETTY_FUNCTION__ , __LINE__); |
donatien | 0:43ee25ebfe6b | 18 | } |
sam_grove | 20:39772b740985 | 19 | |
sam_grove | 14:cd53f77f8afe | 20 | // See the output on http://sockets.mbed.org/sg_test/viewer |
sam_grove | 14:cd53f77f8afe | 21 | Websocket ws("ws://sockets.mbed.org:443/ws/sg_test/rw"); |
sam_grove | 14:cd53f77f8afe | 22 | ws.connect(); |
sam_grove | 20:39772b740985 | 23 | for(int i=0; i<0x7fffffff; ++i) |
sam_grove | 14:cd53f77f8afe | 24 | { |
sam_grove | 14:cd53f77f8afe | 25 | // create json string with acc/tmp data |
sam_grove | 20:39772b740985 | 26 | sprintf(msg, "Testing mbed Websockets Loop: %d", i); |
sam_grove | 20:39772b740985 | 27 | ws.send(msg); |
sam_grove | 19:f1d893c651e5 | 28 | wait(0.5f); |
sam_grove | 20:39772b740985 | 29 | memset(msg, 0, 2048); |
sam_grove | 20:39772b740985 | 30 | |
sam_grove | 20:39772b740985 | 31 | if (ws.read(msg)) |
sam_grove | 14:cd53f77f8afe | 32 | { |
sam_grove | 20:39772b740985 | 33 | printf("rcv: %s\r\n", msg); |
sam_grove | 14:cd53f77f8afe | 34 | } |
sam_grove | 20:39772b740985 | 35 | else |
sam_grove | 20:39772b740985 | 36 | { |
sam_grove | 20:39772b740985 | 37 | printf("Loop %d ws.read() returns 0\n", i); |
sam_grove | 20:39772b740985 | 38 | } |
donatien | 0:43ee25ebfe6b | 39 | } |
donatien | 0:43ee25ebfe6b | 40 | |
sam_grove | 20:39772b740985 | 41 | ws.close(); |
donatien | 0:43ee25ebfe6b | 42 | |
sam_grove | 20:39772b740985 | 43 | modem.disconnect(); |
donatien | 0:43ee25ebfe6b | 44 | modem.power(false); |
donatien | 0:43ee25ebfe6b | 45 | |
sam_grove | 20:39772b740985 | 46 | puts("Powered off Test Complete"); |
sam_grove | 20:39772b740985 | 47 | while(1); |
donatien | 0:43ee25ebfe6b | 48 | } |
donatien | 0:43ee25ebfe6b | 49 | |
sam_grove | 21:3f45e53afe4f | 50 | void httpTest(void const*) |
sam_grove | 21:3f45e53afe4f | 51 | { |
sam_grove | 21:3f45e53afe4f | 52 | SprintUSBModem modem(p18, true, 1); |
sam_grove | 21:3f45e53afe4f | 53 | char const *URL_GET = "http://mbed.org/media/uploads/donatien/hello.txt"; |
sam_grove | 21:3f45e53afe4f | 54 | char const *URL_POST = "http://httpbin.org/post"; |
sam_grove | 21:3f45e53afe4f | 55 | char msg[2048] = {0}; |
sam_grove | 21:3f45e53afe4f | 56 | char buf[32] = {0}; |
sam_grove | 21:3f45e53afe4f | 57 | |
sam_grove | 21:3f45e53afe4f | 58 | // Using C16-C20 make sure to connect mbed p18 to J2 pin 16 |
sam_grove | 21:3f45e53afe4f | 59 | modem.power(true); |
sam_grove | 21:3f45e53afe4f | 60 | int ret = modem.connect(); |
sam_grove | 21:3f45e53afe4f | 61 | if(ret) |
sam_grove | 21:3f45e53afe4f | 62 | { |
sam_grove | 21:3f45e53afe4f | 63 | error("Modem connect failed: %s %d", __PRETTY_FUNCTION__ , __LINE__); |
sam_grove | 21:3f45e53afe4f | 64 | } |
sam_grove | 21:3f45e53afe4f | 65 | |
sam_grove | 21:3f45e53afe4f | 66 | HTTPClient http; |
sam_grove | 21:3f45e53afe4f | 67 | HTTPMap map; |
sam_grove | 21:3f45e53afe4f | 68 | HTTPText text(msg, 512); |
sam_grove | 21:3f45e53afe4f | 69 | |
sam_grove | 21:3f45e53afe4f | 70 | for(int i=0; i<0x7fffffff; ++i) |
sam_grove | 21:3f45e53afe4f | 71 | { |
sam_grove | 21:3f45e53afe4f | 72 | //GET data |
sam_grove | 21:3f45e53afe4f | 73 | ret = http.get(URL_GET, msg, 2048); |
sam_grove | 21:3f45e53afe4f | 74 | if (!ret) |
sam_grove | 21:3f45e53afe4f | 75 | { |
sam_grove | 21:3f45e53afe4f | 76 | printf("%s\n", msg); |
sam_grove | 21:3f45e53afe4f | 77 | } |
sam_grove | 21:3f45e53afe4f | 78 | else |
sam_grove | 21:3f45e53afe4f | 79 | { |
sam_grove | 21:3f45e53afe4f | 80 | printf("%s\n", msg); |
sam_grove | 21:3f45e53afe4f | 81 | error("http.get() = %d \t HTTP return code = %d \t %s, line %d\n", ret, http.getHTTPResponseCode(), __PRETTY_FUNCTION__, __LINE__); |
sam_grove | 21:3f45e53afe4f | 82 | } |
sam_grove | 21:3f45e53afe4f | 83 | |
sam_grove | 21:3f45e53afe4f | 84 | sprintf(buf, "%d", i); |
sam_grove | 21:3f45e53afe4f | 85 | map.put("Loop count", buf); |
sam_grove | 21:3f45e53afe4f | 86 | map.put("mbed", "connect"); |
sam_grove | 21:3f45e53afe4f | 87 | |
sam_grove | 21:3f45e53afe4f | 88 | //POST data |
sam_grove | 21:3f45e53afe4f | 89 | ret = http.post(URL_POST, map, &text); |
sam_grove | 21:3f45e53afe4f | 90 | if (0 == ret) |
sam_grove | 21:3f45e53afe4f | 91 | { |
sam_grove | 21:3f45e53afe4f | 92 | printf("%s\n", msg); |
sam_grove | 21:3f45e53afe4f | 93 | } |
sam_grove | 21:3f45e53afe4f | 94 | else |
sam_grove | 21:3f45e53afe4f | 95 | { |
sam_grove | 21:3f45e53afe4f | 96 | error("http.post() = %d \t HTTP return code = %d \t %s, line %d\n", ret, http.getHTTPResponseCode(), __PRETTY_FUNCTION__, __LINE__); |
sam_grove | 21:3f45e53afe4f | 97 | } |
sam_grove | 21:3f45e53afe4f | 98 | map.clear(); |
sam_grove | 21:3f45e53afe4f | 99 | memset(msg, 0, 2048); |
sam_grove | 21:3f45e53afe4f | 100 | } |
sam_grove | 21:3f45e53afe4f | 101 | |
sam_grove | 21:3f45e53afe4f | 102 | modem.disconnect(); |
sam_grove | 21:3f45e53afe4f | 103 | modem.power(false); |
sam_grove | 21:3f45e53afe4f | 104 | |
sam_grove | 21:3f45e53afe4f | 105 | puts("Powered off Test Complete"); |
sam_grove | 21:3f45e53afe4f | 106 | while(1); |
sam_grove | 21:3f45e53afe4f | 107 | } |
sam_grove | 21:3f45e53afe4f | 108 | |
donatien | 0:43ee25ebfe6b | 109 | int main() |
donatien | 0:43ee25ebfe6b | 110 | { |
donatien | 0:43ee25ebfe6b | 111 | |
sam_grove | 21:3f45e53afe4f | 112 | // Thread task(websocketTest, NULL, osPriorityNormal, 1024 * 5); |
sam_grove | 21:3f45e53afe4f | 113 | Thread task(httpTest, NULL, osPriorityNormal, 1024 * 5); |
sam_grove | 20:39772b740985 | 114 | |
sam_grove | 20:39772b740985 | 115 | DigitalOut led(LED1); |
sam_grove | 20:39772b740985 | 116 | |
sam_grove | 20:39772b740985 | 117 | while(1) |
sam_grove | 20:39772b740985 | 118 | { |
sam_grove | 20:39772b740985 | 119 | led = !led; |
sam_grove | 20:39772b740985 | 120 | Thread::wait(1000); |
sam_grove | 20:39772b740985 | 121 | } |
sam_grove | 20:39772b740985 | 122 | |
sam_grove | 20:39772b740985 | 123 | return 0; |
donatien | 0:43ee25ebfe6b | 124 | } |