diff options
-rwxr-xr-x | scripts/sensor-example.yaml | 5 | ||||
-rw-r--r-- | scripts/writesensor.mako.cpp | 5 | ||||
-rw-r--r-- | types.hpp | 5 |
3 files changed, 11 insertions, 4 deletions
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 @@ extern const IdInfoMap sensors = { 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 @@ extern const IdInfoMap sensors = { 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}",{ @@ -115,8 +115,8 @@ using InstancePath = std::string; using Type = uint8_t; using ReadingType = uint8_t; using Multiplier = uint16_t; -using OffsetB = uint16_t; -using Exponent = uint8_t; +using OffsetB = int16_t; +using Exponent = int8_t; using ScaledOffset = int64_t; using Scale = int16_t; using Unit = std::string; @@ -154,6 +154,7 @@ struct Info OffsetB coefficientB; Exponent exponentB; ScaledOffset scaledOffset; + Exponent exponentR; bool hasScale; Scale scale; Unit unit; |