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:
93:0acd11870c6a
Parent:
92:48069375dffa
Child:
94:61d44636f020
--- a/measurement/AccelerationMeasurement.cpp	Fri Mar 20 14:27:10 2015 +0000
+++ b/measurement/AccelerationMeasurement.cpp	Mon Apr 13 14:24:58 2015 +0000
@@ -10,15 +10,14 @@
 // Time interval for forcing a sending even if acceleration sensor readings are constantly similar (in seconds).
 #define TIME_LIMIT_ACCE 900          
 
-AccelerationMeasurement::AccelerationMeasurement(AbstractSmartRest& client, SmartRestTemplate& tpl, long& deviceId, 
-    DeviceIO& io, DeviceInfo& deviceInfo, DisplayInfo& displayInfo) :
+AccelerationMeasurement::AccelerationMeasurement(AbstractSmartRest& client, SmartRestTemplate& tpl, 
+    long& deviceId, DeviceInfo& deviceInfo, LCDDisplay& lcdDisplay) :
     _deviceId(deviceId),
     _tpl(tpl),
     _client(client),
     _sensor(SDA,SCL),
-    _io(io),
     _deviceInfo(deviceInfo),
-    _displayInfo(displayInfo)
+    _lcdDisplay(lcdDisplay)
 {
     _init = false;
     oldValues[0] = 0;
@@ -44,7 +43,6 @@
 
 bool AccelerationMeasurement::run()
 {
-    extern bool lastSensorReadingSent;
     if (!_test)
         return false;
     
@@ -58,20 +56,18 @@
         ((0.1> abs(data[1])) || (abs(oldValues[1]-data[1]) <= abs(oldValues[1])*THRESHOLD_PERCENT_ACCE))) {
         if (sendingTimer.read() < TIME_LIMIT_ACCE) {
 //            printf("[N] Acc %f, %f, %f\r\n", data[0], data[1], data[2]);
-            if (lastSensorReadingSent) {
-                _io.lcdPrint(_displayInfo.getFirstLine(), _displayInfo.getSecondLine());
-                lastSensorReadingSent=false;
+            if (strcmp(_lcdDisplay.getThirdLine(), "")) {
+                _lcdDisplay.setThirdLine("");
             }
-            aDebug("Similar acceleration readings found, no sending!\r\n");
             return true;
         } else {
-            aDebug("Acceleration sensor timed out at %f s, a sending is forced.\r\n", sendingTimer.read());
+            aDebug("Acc: Timeout at %f s.\n", sendingTimer.read());
         }
     }
 //    printf("[Y] Acc %f, %f, %f\r\n", data[0], data[1], data[2]);
     char status[27] = {0};
-    snprintf(status, 27, "Sending Acc %.1f,%.1f,%.1f", data[0], data[1], data[2]);
-    _io.lcdPrint(_displayInfo.getFirstLine(), _displayInfo.getSecondLine(), status);
+    snprintf(status, 27, "Send Acc %.1f,%.1f,%.1f", data[0], data[1], data[2]);
+    _lcdDisplay.setThirdLine(status);
 
     ComposedRecord record;
     IntegerValue msgId(106);
@@ -84,17 +80,16 @@
 
     float t_start = sendingTimer.read();
     if (_client.send(record) != SMARTREST_SUCCESS) {
-        aWarning("Sending acceleration readings failed.");
+        aWarning("Acc: Send failed.\n");
         _client.stop();
         return false;
     }
     float t_end = sendingTimer.read();
     _client.stop();
-    aInfo("Acceleration readings sent in %.1f.\r\n", t_end-t_start);
+    aDebug("Acc: Sent in %.1f.\n", t_end-t_start);
     oldValues[0] = data[0];
     oldValues[1] = data[1];
     oldValues[2] = data[2];
     sendingTimer.reset();
-    lastSensorReadingSent=true;
     return true;
 }