SmartREST client reference implementation for the u-blox C027 mbed compatible device.

Dependencies:   C027 C027_Support mbed mbed-rtos MbedSmartRest LM75B MMA7660 C12832

Fork of MbedSmartRestTest by Vincent Wochnik

Revision:
7:f77afd49c35d
Parent:
6:642e7c233e83
Child:
8:940c782eec5e
--- a/main.cpp	Mon Feb 10 15:46:26 2014 +0000
+++ b/main.cpp	Wed Feb 12 11:25:26 2014 +0000
@@ -5,18 +5,19 @@
 ATCommandsInterface *cmdIface = NULL;
 char cIMEI[21] = "";
 char cCellId[9] = "";
+char cICCID[24] = "";
 sigq_t sigQ = {0, 0};
 
 int main()
 {
-     int ret;
-     
-     puts("Started...");
-     c027.mdmWakeup();
-     c027.mdmReset();
-     c027.mdmPower(true);
-     UbloxUSBGSMModem modem;
-     cmdIface = modem.getATCommandsInterface();
+    int ret;
+    
+    puts("Started...");
+    c027.mdmWakeup();
+    c027.mdmReset();
+    c027.mdmPower(true);
+    UbloxUSBGSMModem modem;
+    cmdIface = modem.getATCommandsInterface();
     
     puts("Connecting...");
     if (modem.connect("public4.m2minternet.com")) {
@@ -24,13 +25,12 @@
         return 2;
     }
     
-    printf("IMEI: %s\r\n", imei());
-    printf("Cell-ID: %s\r\n", cellId());
-    sigq_t *sq = signalQuality();
-    printf("RSSI: %d dBm, BER: %d %%\r\n", sq->rssi, sq->ber);
+    // get before starting program
+    imei();
+    cellId();
 
-    //puts("Starting program...");    
-    //ret = program();
+    puts("Starting program...");    
+    ret = program();
 
     modem.disconnect();
     c027.mdmPower(false);
@@ -82,6 +82,26 @@
     return cCellId;
 }
 
+const char * iccid()
+{
+    int len;
+    
+    ATCommandsInterface::ATResult result;
+    ATResultBuffer buffer;
+    
+    if ((cmdIface == NULL) || (strlen(cICCID)))
+        return cICCID;
+
+    cmdIface->execute("AT+CCID?", &buffer, &result);
+    if (buffer.getLastLine() == NULL)
+        return cCellId;
+    sscanf(buffer.getLastLine(), "+CCID: %s%n", cICCID, &len);
+    if (len != strlen(buffer.getLastLine()))
+        cICCID[0] = '\0';
+
+    return cICCID;
+}
+
 sigq_t * signalQuality()
 {
     int rssi = 0, ber = 0, len = 0;