Official reference client implementation for Cumulocity SmartREST on u-blox C027.
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
Diff: main.cpp
- 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;