sensor: Add result exponent to the sensor yaml
Result exponent sets the decimal point location for the result before
the linearization function is applied. This is different from the scale
implemented by the sensors dbus objects. The scale is the scaling factor
to get the value for the units specified for the sensor. Linearization
is done after applying the scale on the raw sensor value.
Change-Id: I76624c593bf6cdf40ec884c0ff0aceb58746732c
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/scripts/sensor-example.yaml b/scripts/sensor-example.yaml
index db0e694..06c8836 100755
--- a/scripts/sensor-example.yaml
+++ b/scripts/sensor-example.yaml
@@ -100,6 +100,11 @@
multiplierM: 511
offsetB: 0
bExp: 0
+ # Result exponent field in Type 1 SDR(2's complement, signed)
+ rExp: 0
+ # Applies for analog sensors, the actual reading value for the sensor is
+ # Value * 10^N
+ scale: -3
mutability: Mutability::Write|Mutability::Read
serviceInterface: org.freedesktop.DBus.Properties
readingType: readingData
diff --git a/scripts/writesensor.mako.cpp b/scripts/writesensor.mako.cpp
index 4644ff7..a59e149 100644
--- a/scripts/writesensor.mako.cpp
+++ b/scripts/writesensor.mako.cpp
@@ -45,6 +45,7 @@
multiplier = sensor.get("multiplierM", 1)
offsetB = sensor.get("offsetB", 0)
exp = sensor.get("bExp", 0)
+ rExp = sensor.get("rExp", 0)
unit = sensor.get("unit", "")
scale = sensor.get("scale", 0)
hasScale = "true" if "scale" in sensor.keys() else "false"
@@ -68,8 +69,8 @@
mutability = sensor.get("mutability", "Mutability::Read")
%>
${entityID},${instance},${sensorType},"${path}","${sensorInterface}",
- ${readingType},${multiplier}, ${offsetB},${exp},
- ${offsetB * pow(10,exp)}, ${hasScale},${scale},"${unit}",
+ ${readingType},${multiplier},${offsetB},${exp},
+ ${offsetB * pow(10,exp)}, ${rExp}, ${hasScale},${scale},"${unit}",
${updateFunc},${getFunc},Mutability(${mutability}),${sensorNameFunc},{
% for interface,properties in interfaces.items():
{"${interface}",{