portable version of the cumulocity demo
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
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 }
Generated on Tue Jul 12 2022 21:10:53 by 1.7.2