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: measurement/AccelerationMeasurement.cpp
- 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; }