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 Vincent Wochnik

Files at this revision

API Documentation at this revision

Comitter:
vwochnik
Date:
Thu May 22 18:07:13 2014 +0000
Parent:
26:26e9899e2cbe
Child:
28:2004400abeec
Commit message:
change u-blox modem driver

Changed in this revision

ATResultBuffer.cpp Show diff for this revision Revisions of this file
ATResultBuffer.h Show diff for this revision Revisions of this file
C027.lib Show annotated file Show diff for this revision Revisions of this file
C027_Support.lib Show annotated file Show diff for this revision Revisions of this file
UbloxUSBModem.lib Show diff for this revision Revisions of this file
common.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/ATResultBuffer.cpp	Wed Apr 16 08:31:21 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#include "ATResultBuffer.h"
-#include <stdlib.h>
-#include <string.h>
-
-ATResultBuffer::ATResultBuffer() : _buffer(NULL)
-{
-}
-
-ATResultBuffer::~ATResultBuffer()
-{
-    if (_buffer != NULL)
-        free((char*)_buffer);
-}
-
-const char * ATResultBuffer::getLastLine()
-{
-    return _buffer;
-}
-
-int ATResultBuffer::onNewATResponseLine(ATCommandsInterface* pInst, const char* line)
-{
-    size_t len;
-    
-    if (_buffer != NULL)
-        free((char*)_buffer);
-    _buffer = NULL;
-    
-    len = strlen(line);
-    
-    if (len) {
-        _buffer = (const char*)malloc(len+1);
-        strcpy((char*)_buffer, line);
-    }
-}
-
-int ATResultBuffer::onNewEntryPrompt(ATCommandsInterface* pInst)
-{
-}
-
--- a/ATResultBuffer.h	Wed Apr 16 08:31:21 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#ifndef ATRESULTBUFFER_H
-#define ATRESULTBUFFER_H
-
-#include "ATCommandsInterface.h"
-
-class ATResultBuffer : public IATCommandsProcessor
-{
-public:
-    ATResultBuffer();
-    ~ATResultBuffer();
-
-    const char * getLastLine();
-
-protected:
-    virtual int onNewATResponseLine(ATCommandsInterface* pInst, const char* line);
-    virtual int onNewEntryPrompt(ATCommandsInterface* pInst);
-    
-private:
-    const char *_buffer;
-};
-
-#endif
\ No newline at end of file
--- a/C027.lib	Wed Apr 16 08:31:21 2014 +0000
+++ b/C027.lib	Thu May 22 18:07:13 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/teams/ublox/code/C027/#bc9e2eb5daa8
+http://mbed.org/teams/ublox/code/C027/#89c45165ee87
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/C027_Support.lib	Thu May 22 18:07:13 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/ublox/code/C027_Support/#0a87d256cd24
--- a/UbloxUSBModem.lib	Wed Apr 16 08:31:21 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/vwochnik/code/UbloxUSBModem/#07887ecfc6f2
--- a/common.h	Wed Apr 16 08:31:21 2014 +0000
+++ b/common.h	Thu May 22 18:07:13 2014 +0000
@@ -5,9 +5,8 @@
 #include <stddef.h>
 #include "mbed.h"
 #include "C027.h"
-#include "UbloxUSBGSMModem.h"
-#include "UbloxUSBCDMAModem.h"
 #include "MbedSmartRest.h"
+#include "rtos.h"
 
 #define A0  P0_23
 #define A1  P0_24
--- a/main.cpp	Wed Apr 16 08:31:21 2014 +0000
+++ b/main.cpp	Thu May 22 18:07:13 2014 +0000
@@ -1,14 +1,33 @@
 #include "common.h"
 #include "apndb.h"
 #include "io.h"
-#include "ATResultBuffer.h"
 
+//----------------------------------------------------------------------
+// You may need to configure these parameters
+ 
+/** Set your secret SIM pin here "1234"
+*/
+#define SIMPIN      NULL
+ 
+/** The APN of your network operator, sometimes it is "internet" 
+    check your contract with the network operator
+*/
+#define APN         "public4.m2minternet.com"
+ 
+/** Set the user name for your APN, or NULL if not needed
+*/
+#define USERNAME    NULL
+ 
+/** Set the password for your APN, or NULL if not needed
+*/
+#define PASSWORD    NULL 
+ 
 C027 c027;
-ATCommandsInterface *cmdIface = NULL;
-char cIMEI[21] = "";
+MDMSerial mdm;
+char cIMEI[21] = "ADASDF1312";
 char cIMSI[16] = "";
 char cCellId[9] = "";
-char cICCID[24] = "";
+char cICCID[24] = "12345";
 sigq_t sigQ = {0, 0};
 
 int main()
@@ -22,8 +41,6 @@
     c027.mdmWakeup();
     c027.mdmReset();
     c027.mdmPower(true);
-    UbloxUSBGSMModem modem;
-    cmdIface = modem.getATCommandsInterface();
     
     /*puts("Searching for login...");
     // get imsi number
@@ -34,8 +51,8 @@
     else
         printf("APN: %s\n", apn->apn);
     */
-    
-    if (modem.connect("public4.m2minternet.com")) {
+
+    if (!mdm.connect(SIMPIN, APN,USERNAME,PASSWORD, true)) {    
         puts("GPRS connection failure.");
         return 2;
     }
@@ -66,7 +83,6 @@
             puts("Restarting program...");
     } while (ret);
 
-    modem.disconnect();
     c027.mdmPower(false);
     
     return 0;
@@ -74,125 +90,29 @@
 
 const char * imei()
 {
-    ATCommandsInterface::ATResult result;
-    ATResultBuffer buffer;
-    
-    if ((cmdIface == NULL) || (strlen(cIMEI)))
-        return cIMEI;
-
-    cmdIface->execute("AT+CGSN", &buffer, &result);
-    if (ATCommandsInterface::ATResult::AT_OK == result.result)
-        strcpy(cIMEI, buffer.getLastLine());
-    else
-        cIMEI[0] = '\0';
-
     return cIMEI;
 }
 
 const char * imsi()
 {
-    ATCommandsInterface::ATResult result;
-    ATResultBuffer buffer;
-    
-    if ((cmdIface == NULL) || (strlen(cIMSI)))
-        return cIMSI;
-
-    cmdIface->execute("AT+CIMI", &buffer, &result);
-    if (ATCommandsInterface::ATResult::AT_OK == result.result)
-        strcpy(cIMSI, buffer.getLastLine());
-    else
-        cIMSI[0] = '\0';
-
     return cIMSI;
 }
 
 const char * cellId()
 {
-    int len; uint32_t cellId;
-    
-    ATCommandsInterface::ATResult result;
-    ATResultBuffer buffer;
-    
-    cCellId[0] = '\0';
-
-    if (cmdIface == NULL)
-        return cCellId;
-
-    cmdIface->executeSimple("AT+CREG=2", &result);
-    if (ATCommandsInterface::ATResult::AT_OK != result.result)
-        return cCellId;
-
-    cmdIface->execute("AT+CREG?", &buffer, &result);
-    if (buffer.getLastLine() == NULL)
-        return cCellId;
-    sscanf(buffer.getLastLine(), "+CREG: 2,%*d,\"%*lx\",\"%lx\",%*d%n", &cellId, &len);
-    if (len != strlen(buffer.getLastLine()))
-        return cCellId;
-    snprintf(cCellId, sizeof(cCellId), "%lX", cellId);
-
     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;
-
-    ATCommandsInterface::ATResult result;
-    ATResultBuffer buffer;
-    
     sigQ.rssi = 0; sigQ.ber = 0;
     
     lcd_signal(0, 0);
 
-    if (cmdIface == NULL)
-        return &sigQ;
-
-    cmdIface->execute("AT+CSQ", &buffer, &result);
-    if (buffer.getLastLine() == NULL)
-        return &sigQ;
-        
-    sscanf(buffer.getLastLine(), "+CSQ: %d,%d%n", &rssi, &ber, &len);
-    if (len != strlen(buffer.getLastLine()))
-        return &sigQ;
-    
-    if (rssi <= 31)
-        sigQ.rssi = -113 + (2 * rssi);
-    else
-        sigQ.rssi = 0;
-
-    switch (ber) {
-        case 0: sigQ.ber = 49; break;
-        case 1: sigQ.ber = 43; break;
-        case 2: sigQ.ber = 37; break;
-        case 3: sigQ.ber = 31; break;
-        case 4: sigQ.ber = 25; break;
-        case 5: sigQ.ber = 19; break;
-        case 6: sigQ.ber = 13; break;
-        case 7: sigQ.ber = 7; break;
-        default: sigQ.ber = 0;
-    }
-    
-    lcd_signal(sigQ.rssi, sigQ.ber);
-
     return &sigQ;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Thu May 22 18:07:13 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#5dfe422a963d
--- a/mbed.bld	Wed Apr 16 08:31:21 2014 +0000
+++ b/mbed.bld	Thu May 22 18:07:13 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/8a40adfe8776
\ No newline at end of file