portable version of the cumulocity demo
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
AccelerationMeasurement.cpp
00001 #include "AccelerationMeasurement.h" 00002 #include "ComposedRecord.h" 00003 #include "CharValue.h" 00004 #include "IntegerValue.h" 00005 #include "FloatValue.h" 00006 00007 AccelerationMeasurement::AccelerationMeasurement(SmartRest& client, SmartRestTemplate& tpl, long& deviceId, MMA7660& sensor) : 00008 _client(client), 00009 _tpl(tpl), 00010 _deviceId(deviceId), 00011 _sensor(sensor) 00012 { 00013 _init = false; 00014 } 00015 00016 bool AccelerationMeasurement::init() 00017 { 00018 if (_init) 00019 return false; 00020 00021 // Insert measurement 00022 // USAGE: 106,<DEVICE/ID>,<X>,<Y>,<Z> 00023 if (!_tpl.add("10,106,POST,/measurement/measurements,application/vnd.com.nsn.cumulocity.measurement+json,application/vnd.com.nsn.cumulocity.measurement+json,%%,NOW UNSIGNED NUMBER NUMBER NUMBER,\"{\"\"time\"\":\"\"%%\"\",\"\"source\"\":{\"\"id\"\":\"\"%%\"\"},\"\"type\"\":\"\"c8y_MotionMeasurement\"\",\"\"c8y_MotionMeasurement\"\":{\"\"x\"\":{\"\"value\"\":%%,\"\"unit\"\":\"\"m^2/s\"\"},\"\"y\"\":{\"\"value\"\":%%,\"\"unit\"\":\"\"m^2/s\"\"},\"\"z\"\":{\"\"value\"\":%%,\"\"unit\"\":\"\"m^2/s\"\"}}}\"\r\n")) 00024 return false; 00025 00026 _test = _sensor.testConnection(); 00027 _init = true; 00028 return true; 00029 } 00030 00031 bool AccelerationMeasurement::run() 00032 { 00033 float data[3] = { 0.0, 0.0, 0.0 }; 00034 00035 if (!_test) 00036 return false; 00037 00038 _sensor.readData(data); 00039 00040 ComposedRecord record; 00041 IntegerValue msgId(106); 00042 IntegerValue devId(_deviceId); 00043 FloatValue xValue(data[0], 2); 00044 FloatValue yValue(data[1], 2); 00045 FloatValue zValue(data[2], 2); 00046 if ((!record.add(msgId)) || (!record.add(devId)) || (!record.add(xValue)) || (!record.add(yValue)) || (!record.add(zValue))) 00047 return false; 00048 00049 if (_client.send(record) != SMARTREST_SUCCESS) { 00050 puts("Signal measurement failed."); 00051 _client.stop(); 00052 return false; 00053 } 00054 _client.stop(); 00055 return true; 00056 }
Generated on Tue Jul 12 2022 21:10:53 by 1.7.2