portable version of the cumulocity demo

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Cumulocity Official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TemperatureMeasurement.cpp Source File

TemperatureMeasurement.cpp

00001 #include "TemperatureMeasurement.h"
00002 #include "ComposedRecord.h"
00003 #include "CharValue.h"
00004 #include "IntegerValue.h"
00005 #include "FloatValue.h"
00006 
00007 TemperatureMeasurement::TemperatureMeasurement(SmartRest& client, SmartRestTemplate& tpl, long& deviceId, LM75B& sensor) :
00008     _client(client),
00009     _tpl(tpl),
00010     _deviceId(deviceId),
00011     _sensor(sensor)
00012 {
00013     _init = false;
00014 }
00015 
00016 bool TemperatureMeasurement::init()
00017 {
00018     if (_init)
00019         return false;
00020     
00021     // Insert measurement
00022     // USAGE: 105,<DEVICE/ID>,<TEMPERATURE>
00023     if (!_tpl.add("10,105,POST,/measurement/measurements,application/vnd.com.nsn.cumulocity.measurement+json,application/vnd.com.nsn.cumulocity.measurement+json,%%,NOW UNSIGNED NUMBER,\"{\"\"time\"\":\"\"%%\"\",\"\"source\"\":{\"\"id\"\":\"\"%%\"\"},\"\"type\"\":\"\"c8y_TemperatureMeasurement\"\",\"\"c8y_TemperatureMeasurement\"\":{\"\"T\"\":{\"\"value\"\":%%,\"\"unit\"\":\"\"C\"\"}}}\"\r\n"))
00024         return false;
00025 
00026     _open = _sensor.open();
00027     _init = true;
00028     return true;
00029 }
00030 
00031 bool TemperatureMeasurement::run()
00032 {
00033     if (!_open)
00034         return false;
00035 
00036     ComposedRecord record;
00037     IntegerValue msgId(105);
00038     IntegerValue devId(_deviceId);
00039     FloatValue temperature(_sensor.temp(), 1);
00040     if ((!record.add(msgId)) || (!record.add(devId)) || (!record.add(temperature)))
00041         return false;
00042 
00043     if (_client.send(record) != SMARTREST_SUCCESS) {
00044         puts("Signal measurement failed.");
00045         _client.stop();
00046         return false;
00047     }
00048     _client.stop();
00049     return true;
00050 }