USSDTest, working with SARA-G350 on C027

Dependencies:   C027 UbloxUSBModem mbed

Fork of C027_HTTPClientTest by u-blox

Committer:
mazgch
Date:
Mon Mar 03 08:02:32 2014 +0000
Revision:
14:b2b75c8a01fa
Parent:
13:9350ec2ec1cd
Parent:
11:393f2a870b42
Child:
15:6fdc76603237
update examples to use the unified modem classes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:f3f18ac13e0c 1 #include "mbed.h"
mazgch 6:77c131006c67 2 #include "C027.h"
mazgch 12:88552ae75244 3 #include "UbloxModem.h"
mazgch 6:77c131006c67 4
donatien 0:f3f18ac13e0c 5 #include "HTTPClient.h"
donatien 0:f3f18ac13e0c 6
mazgch 10:e2315bcdd7be 7 C027 c027;
mazgch 10:e2315bcdd7be 8
mazgch 12:88552ae75244 9 #ifndef MODEM_APN
mazgch 12:88552ae75244 10 #warning APN not specified, using "internet"
mazgch 12:88552ae75244 11 #define MODEM_APN "internet"
mazgch 12:88552ae75244 12 #endif
mazgch 12:88552ae75244 13
mazgch 12:88552ae75244 14 #ifndef MODEM_USERNAME
mazgch 12:88552ae75244 15 #warning username not specified
mazgch 12:88552ae75244 16 #define MODEM_USERNAME NULL
mazgch 12:88552ae75244 17 #endif
mazgch 12:88552ae75244 18
mazgch 12:88552ae75244 19 #ifndef MODEM_PASSWORD
mazgch 12:88552ae75244 20 #warning password not specified
mazgch 12:88552ae75244 21 #define MODEM_PASSWORD NULL
mazgch 12:88552ae75244 22 #endif
mazgch 12:88552ae75244 23
mazgch 7:c558c74ceb0f 24 void test(void const*)
donatien 0:f3f18ac13e0c 25 {
mazgch 13:9350ec2ec1cd 26 #if 1 // Switch this to select between the Serial and USB interface
mazgch 12:88552ae75244 27 // Serial is supported by LISA-C, LISA-U and SARA-G
mazgch 10:e2315bcdd7be 28 c027.mdmPower(true);
mazgch 12:88552ae75244 29 wait_ms(5000);
mazgch 12:88552ae75244 30 UbloxSerModem modem;
mazgch 12:88552ae75244 31 #else
mazgch 12:88552ae75244 32 // USB is supported by LISA-C or LISA-U
mazgch 12:88552ae75244 33 c027.mdmUsbEnable(true);
mazgch 12:88552ae75244 34 c027.mdmPower(true);
mazgch 12:88552ae75244 35 wait_ms(5000);
mazgch 12:88552ae75244 36 UbloxUSBModem modem;
mazgch 12:88552ae75244 37 #endif
mazgch 12:88552ae75244 38
donatien 1:6ea9ac27702c 39 HTTPClient http;
donatien 1:6ea9ac27702c 40 char str[512];
mazgch 7:c558c74ceb0f 41
mazgch 12:88552ae75244 42 int ret;
mazgch 12:88552ae75244 43 for (;;)
mazgch 8:95a97898084a 44 {
mazgch 12:88552ae75244 45 ret = modem.connect(MODEM_APN, MODEM_USERNAME, MODEM_PASSWORD); // eventaully set another apn here
mazgch 12:88552ae75244 46 if (!ret)
mazgch 12:88552ae75244 47 break;
mazgch 12:88552ae75244 48 wait_ms(1000);
donatien 1:6ea9ac27702c 49 }
mazgch 8:95a97898084a 50
donatien 1:6ea9ac27702c 51 //GET data
donatien 1:6ea9ac27702c 52 printf("Trying to fetch page...\n");
donatien 0:f3f18ac13e0c 53 ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128);
mazgch 7:c558c74ceb0f 54 if (!ret) {
mazgch 7:c558c74ceb0f 55 printf("Page fetched successfully - read %d characters\n", strlen(str));
mazgch 7:c558c74ceb0f 56 printf("Result: %s\n", str);
mazgch 7:c558c74ceb0f 57 } else {
mazgch 7:c558c74ceb0f 58 printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
donatien 0:f3f18ac13e0c 59 }
mazgch 7:c558c74ceb0f 60
donatien 1:6ea9ac27702c 61 //POST data
donatien 0:f3f18ac13e0c 62 HTTPMap map;
donatien 0:f3f18ac13e0c 63 HTTPText text(str, 512);
donatien 0:f3f18ac13e0c 64 map.put("Hello", "World");
donatien 0:f3f18ac13e0c 65 map.put("test", "1234");
donatien 1:6ea9ac27702c 66 printf("Trying to post data...\n");
donatien 0:f3f18ac13e0c 67 ret = http.post("http://httpbin.org/post", map, &text);
mazgch 7:c558c74ceb0f 68 if (!ret) {
mazgch 7:c558c74ceb0f 69 printf("Executed POST successfully - read %d characters\n", strlen(str));
mazgch 7:c558c74ceb0f 70 printf("Result: %s\n", str);
mazgch 7:c558c74ceb0f 71 } else {
mazgch 7:c558c74ceb0f 72 printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
donatien 0:f3f18ac13e0c 73 }
mazgch 7:c558c74ceb0f 74
mazgch 7:c558c74ceb0f 75 modem.disconnect();
mazgch 10:e2315bcdd7be 76 c027.mdmPower(false);
mazgch 10:e2315bcdd7be 77
donatien 1:6ea9ac27702c 78 while(1) {
donatien 1:6ea9ac27702c 79 }
donatien 0:f3f18ac13e0c 80 }
donatien 0:f3f18ac13e0c 81
donatien 0:f3f18ac13e0c 82
donatien 0:f3f18ac13e0c 83 int main()
donatien 0:f3f18ac13e0c 84 {
mazgch 7:c558c74ceb0f 85 Thread testTask(test, NULL, osPriorityNormal, 1024 * 4);
mazgch 10:e2315bcdd7be 86 DigitalOut led(LED); // on rev A you should reasign the signal to A0
mazgch 7:c558c74ceb0f 87 while(1) {
mazgch 7:c558c74ceb0f 88 led=!led;
mazgch 7:c558c74ceb0f 89 Thread::wait(1000);
mazgch 7:c558c74ceb0f 90 }
donatien 0:f3f18ac13e0c 91
mazgch 7:c558c74ceb0f 92 return 0;
donatien 0:f3f18ac13e0c 93 }