Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C027_Support_AerCloud HTTPClient_AerCloud mbed
Fork of HTTPClient_Cellular_HelloWorld by
Diff: main.cpp
- Revision:
- 14:fcdfdd37affe
- Parent:
- 12:955439e7166f
diff -r f30d8541fee0 -r fcdfdd37affe main.cpp
--- a/main.cpp Mon Nov 10 23:03:32 2014 +0000
+++ b/main.cpp Fri Nov 14 01:29:08 2014 +0000
@@ -50,7 +50,7 @@
//! The APN of your Aeris SIM
// You can find the APN for your SIM at https://aerport.aeris.com
-#define APN NULL
+#define APN "_INSERT_YOUR_APN_HERE_"
//! User name and password are not required to use Aeris APN
#define USERNAME NULL
@@ -67,8 +67,8 @@
#define AC_BASE "http://api.aercloud.aeris.com/v1"
//! AerCloud API Key
-// You can find your api key at https://aerport.aeris.com
-#define AC_APIKEY NULL
+// You can find your api key at https://aerport.aeris.com"
+#define AC_APIKEY "_INSERT_YOUR_AERCLOUD_API_KEY_HERE_"
//! Aercloud Account Id
// You can find your account id at https://aerport.aeris.com
@@ -76,7 +76,7 @@
// AerCloud Container
// The name of the AerCloud Container to write data into
-#define AC_CONTAINER "VStatus" // Example Container
+#define AC_CONTAINER "C027_Sample" // Example Container
//------------------------------------------------------------------------------------
// AerCloud SCL (Device) Data Model
@@ -98,6 +98,34 @@
char str[512];
char simImei[16];
+const char* HttpResultToString(HTTPResult r) {
+ switch(r) {
+ case HTTP_PROCESSING:
+ return "HTTP_PROCESSING";
+ case HTTP_PARSE:
+ return "HTTP_PARSE";
+ case HTTP_DNS:
+ return "HTTP_DNS";
+ case HTTP_PRTCL:
+ return "HTTP_PRTCL";
+ case HTTP_NOTFOUND:
+ return "HTTP_NOTFOUND - 404";
+ case HTTP_REFUSED:
+ return "HTTP_REFUSED - 403";
+ case HTTP_ERROR:
+ return "HTTP_ERROR";
+ case HTTP_TIMEOUT:
+ return "HTTP_TIMEOUT";
+ case HTTP_CONN:
+ return "HTTP_CONN";
+ case HTTP_CLOSED:
+ return "HTTP_CLOSED";
+// case HTTP_OK:
+// return "HTTP_OK";
+ }
+
+ return "UNKNOWN ERROR CODE";
+}
int main()
{
@@ -111,36 +139,38 @@
GPSI2C gps;
- printf("GPS object created\n");
+ printf("GPS object created\r\n");
// turn on the supplies of the Modem
MDMSerial mdm;
- printf("Modem object created\n");
+ printf("Modem object created\r\n");
//mdm.setDebug(4); // enable this for debugging issues
if (!mdm.connect(SIMPIN, APN,USERNAME,PASSWORD)) {
- printf("Unabled to connect to the network.\n");
+ printf("Unabled to connect to the network.\r\n");
return -1;
}
HTTPClient http;
//get SIM IMEI
mdm.getIMEI(simImei);
- printf("Requesting provision info for IMEI %s\n",simImei);
+ printf("Requesting provision info for IMEI %s\r\n",simImei);
// Check if SIM is provisioned in AerCloud
- printf("\nIs the SIM provisioned?\n");
+ printf("\r\nIs the SIM provisioned? ");
char url[512];
snprintf(url, sizeof(url), "%s/%d/scls/%s?apiKey=%s", AC_BASE, acId, simImei, AC_APIKEY);
ret = http.get(url, str, 128);
- if (!ret)
+ if (ret == HTTP_OK)
{
// We're already provisioned
- printf("Page fetched successfully - read %d characters\n", strlen(str));
- printf("Result: %s\n", str);
+ printf("Yes\r\n");
+ printf("Page fetched successfully - read %d characters\r\n", strlen(str));
+ printf("Result: %s\r\n", str);
simProvisioned = true;
}
else
{
- printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+ printf("No\r\n");
+ printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
//SIM is not provisioned. trying to provision it...
char url[512];
snprintf(url, sizeof(url), "%s/%d/scls?apiKey=%s", AC_BASE, acId, AC_APIKEY);
@@ -151,15 +181,15 @@
ret = http.post(url, outText, &inText);
if (!ret)
{
- printf("Executed POST successfully - read %d characters\n", strlen(str));
- printf("Result: %s\n", str);
+ printf("Executed POST successfully - read %d characters\r\n", strlen(str));
+ printf("Result: %s\r\n", str);
simProvisioned = true;
}
else
{
if(http.getHTTPResponseCode() == 200)
simProvisioned = true;
- printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+ printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
}
}
@@ -235,23 +265,23 @@
sprintf(str,"{\"VSLat\": %.5f, \"VSLong\": %.5f, \"Altitude\": %.5f, \"Speed\":%.5f, \"GPSTime\":%.5f, \"GPSDate\":%.5f, \"SCLID\":\"%s\"}", lastLat, lastLong, lastAlt, lastSpeed, lastTime, lastDate, simImei);
HTTPText outText(str);
HTTPText inText(str, 512);
- printf("\nPost acquired data...\n");
+ printf("\r\nPost acquired data...\r\n");
ret = http.post(url, outText, &inText);
- if (!ret)
+ if (ret == HTTP_OK)
{
- printf("Executed POST successfully - read %d characters\n", strlen(str));
- printf("Result: %s\n", str);
+ printf("Executed POST successfully - read %d characters\r\n", strlen(str));
+ printf("Result: %s\r\n", str);
}
else
{
- printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+ printf("Error - ret = %d (%s), - HTTP return code = %d\r\n", ret, HttpResultToString((HTTPResult)ret), http.getHTTPResponseCode());
}
itn = 0;
}
}
gps.powerOff();
} else {
- printf("SIM is not provisioned.\n");
+ printf("SIM is not provisioned.\r\n");
}
