sensor: Refactor get sensor reading command
Use the functor in the generated yaml to get the sensor reading
for analog sensors.
Change-Id: I2535cd5015096c3e1e2baa5f9a865fc6b27e6875
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/sensordatahandler.hpp b/sensordatahandler.hpp
index 01b8e4f..a3253b9 100644
--- a/sensordatahandler.hpp
+++ b/sensordatahandler.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include <math.h>
#include "sensorhandler.h"
#include "types.hpp"
#include "utils.hpp"
@@ -197,11 +198,13 @@
sensorInfo.propertyInterfaces.begin()->first,
sensorInfo.propertyInterfaces.begin()->second.begin()->first);
- auto value = static_cast<uint8_t>(
- (propValue.get<T>() - sensorInfo.scaledOffset) /
- (sensorInfo.coefficientM ? sensorInfo.coefficientM : 1));
+ double value = propValue.get<T>() * pow(10,
+ sensorInfo.scale - sensorInfo.exponentR);
- setReading(value, responseData);
+ auto rawData = static_cast<uint8_t>(
+ (value - sensorInfo.scaledOffset) / sensorInfo.coefficientM);
+
+ setReading(rawData, responseData);
return response;
}