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

Revision:
96:5dfdc8568e9f
Parent:
95:010b0f7a0a1a
Child:
97:ea056f6be2e8
--- a/MbedAgent.cpp	Wed Apr 22 11:22:25 2015 +0000
+++ b/MbedAgent.cpp	Mon Apr 27 10:50:21 2015 +0000
@@ -1,25 +1,22 @@
 #include "MbedAgent.h"
 #include "rtos.h"
+#include "LCDDisplay.h"
 #include "logging.h"
 #include "watchdog.h"
 
-MbedAgent::MbedAgent(GPSI2C& gps, MDMSerial& mdm, LCDDisplay& lcdDisplay,
+MbedAgent::MbedAgent(GPSI2C& gps, MDMSerial& mdm,
     DeviceInfo& deviceInfo, DeviceMemory& deviceMemory) :
     _deviceId(0),
     _mdm(mdm),
-    _deviceInfo(deviceInfo),
-    _deviceMemory(deviceMemory),
-    _lcdDisplay(lcdDisplay),
-    _configurationProperties(_deviceConfiguration),
     _client(mdm),
-    _bootstrap(_client, lcdDisplay, _deviceInfo, _deviceMemory),
-    _integration(_client, _tpl, _deviceId, _deviceInfo),
-    _configurationSynchronization(_client, _tpl, _deviceId, _deviceMemory, _deviceConfiguration, _configurationProperties),
-    _signalQualityMeasurement(_client, _tpl, _deviceId, _deviceInfo, _lcdDisplay),
-    _temperatureMeasurement(_client, _tpl, _deviceId, deviceInfo, _lcdDisplay),
-    _accelerationMeasurement(_client, _tpl, _deviceId, deviceInfo, _lcdDisplay),
-    _analogMeasurement(_client, _tpl, _deviceId, deviceInfo, _lcdDisplay),
-    _locationUpdate(_client, _tpl, _deviceId, gps, deviceInfo, _lcdDisplay),
+    _bootstrap(_client, deviceInfo, deviceMemory),
+    _integration(_client, _tpl, _deviceId, deviceInfo),
+    _configurationSynchronization(_client, _tpl, _deviceId, deviceMemory),
+    _signalQualityMeasurement(_client, _tpl, _deviceId, deviceInfo),
+    _temperatureMeasurement(_client, _tpl, _deviceId, deviceInfo),
+    _accelerationMeasurement(_client, _tpl, _deviceId, deviceInfo),
+    _analogMeasurement(_client, _tpl, _deviceId, deviceInfo),
+    _locationUpdate(_client, _tpl, _deviceId, gps, deviceInfo),
     pool(),
     _operationSupport(_client, _tpl, _deviceId, pool)
 {
@@ -29,35 +26,35 @@
 {
     bool flag = true;
     if (!_integration.init()) {
-        _lcdDisplay.setLines("Integration init failure");
+        LCDDisplay::inst().setLines("Integrate init fail");
         flag = false;
     }
     if (!_configurationSynchronization.init()) {
-        _lcdDisplay.setLines("Config Sync init failure");
+        LCDDisplay::inst().setLines("ConfigSync init fail");
         flag = false;
     }
     if (!_signalQualityMeasurement.init()) {
-        _lcdDisplay.setLines("Signal init failure");
+        LCDDisplay::inst().setLines("Signal init fail");
         flag = false;
     }
     if (!_temperatureMeasurement.init()) {
-        _lcdDisplay.setLines("Temperature init failure");
+        LCDDisplay::inst().setLines("Temp init fail");
         flag = false;
     }
     if (!_accelerationMeasurement.init()) {
-        _lcdDisplay.setLines("Acceleration init failure");
+        LCDDisplay::inst().setLines("Acc init fail");
         flag = false;
     }
     if (!_analogMeasurement.init()) {
-        _lcdDisplay.setLines("Analog init failure");
+        LCDDisplay::inst().setLines("Analog init fail");
         flag = false;
     }
     if (!_locationUpdate.init()) {
-        _lcdDisplay.setLines("Location init failure");
+        LCDDisplay::inst().setLines("Location init fail");
         flag = false;
     }
     if (!_operationSupport.init()) {
-        _lcdDisplay.setLines("Operation init failure");
+        LCDDisplay::inst().setLines("Operation init fail");
         flag = false;
     }
     return flag;
@@ -73,7 +70,7 @@
 
     Thread::wait(5000);
 
-    _lcdDisplay.setLines("Connect to Cloud", getHost());
+    LCDDisplay::inst().setLines("Connect to Cloud", getHost());
     if (!_integration.integrate()) {
         return -2;
     }
@@ -83,16 +80,6 @@
     if (!_configurationSynchronization.integrate()) {
         return -3;
     }
-    
-    char status[27];
-    snprintf(status, sizeof(status), "ID: %ld", _deviceId);
-    _lcdDisplay.setLines("Connected", status);
-
-    const char* user= getUsername();
-    int len = strchr(user, '/')-user+sizeof("Tenant: ");
-    len = len <= 27 ? len : 27;
-    snprintf(status, len, "Tenant: %s", user);
-    _lcdDisplay.setFirstLine(status);
     return 0;
 }
 
@@ -100,8 +87,8 @@
 {
     ReportThread reportThread(pool, _mdm);
     _operationSupport.run();
-    PollingThread pollingThread(pool, _mdm, _lcdDisplay, _configurationSynchronization);
-    pollingThread.setChannel(_deviceId);
+    PollThread pollThread(pool, _mdm, _configurationSynchronization);
+    pollThread.setChannel(_deviceId);
 
     Watchdog wdt;
     wdt.kick(60.0);    // set a 60.0 seconds timeout on watchdog hardware timer
@@ -113,11 +100,6 @@
         _accelerationMeasurement.run();
         _locationUpdate.run();
 //        Thread::wait(30000);
-//        if ((interval = _configurationProperties.readInterval()) < 0)
-//            break;
-//        while (timer.read() < interval) {
-//            Thread::yield();
-//        }
         wdt.kick();    // reset watchdog timer
     }
 }
\ No newline at end of file