dbus-sdr: Add hybrid sensors stack option
Because the dynamic sensor stack doesn't support non-threshold sensors,
this patch gives way for retrieving non-threshold sensors by walking
through the sensor.yaml. However, this patch filters out any threshold
sensors written in the sensor yaml file because the current dbus-sdr
already supports them.
The sensor stack has both dynamic and static in this patch, so this new
feature is named hybrid sensor stack.
Tested: Try the SDR get command
0xF9:
entityID: 0x21
entityInstance: 0
interfaces:
xyz.openbmc_project.State.Watchdog:
ExpireAction:
Offsets:
0x00:
assert: xyz.openbmc_project.State.Watchdog.Action.None
type: string
0x01:
assert: xyz.openbmc_project.State.Watchdog.Action.HardReset
type: string
0x02:
assert: xyz.openbmc_project.State.Watchdog.Action.PowerOff
type: string
0x03:
assert: xyz.openbmc_project.State.Watchdog.Action.PowerCycle
type: string
mutability: Mutability::Read
path: /xyz/openbmc_project/watchdog/host0
readingType: assertion
sensorNamePattern: nameLeaf
sensorReadingType: 0x6F
sensorType: 0x23
serviceInterface: org.freedesktop.DBus.Properties
$ ipmitool sdr get host0
Sensor ID : host0 (0xcd)
Entity ID : 33.0 (System Management Software)
Sensor Type (Discrete): Watchdog2 (0x23)
Sensor Reading : 0h
Event Message Control : Per-threshold
States Asserted : Watchdog2
[Hard reset]
Event Status : Event Messages Disabled
Assertion Events : Watchdog2
[Hard reset]
Event Enable : Event Messages Disabled
Assertions Enabled : Watchdog2
[Timer expired]
[Hard reset]
[Power down]
[Power cycle]
OEM : 0
Signed-off-by: Scron Chang <Scron.Chang@quantatw.com>
Change-Id: I1ac16f483f2f725077de9c15595195b848a224ab
diff --git a/Makefile.am b/Makefile.am
index fbeb379..3e25794 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -168,6 +168,9 @@
providers_LTLIBRARIES += libdynamiccmds.la
libdynamiccmds_la_LIBADD = \
libipmid/libipmid.la
+if FEATURE_HYBRID_SENSORS
+libdynamiccmds_la_LIBADD += libipmi20.la
+endif
libdynamiccmds_la_SOURCES = \
dbus-sdr/sensorcommands.cpp \
dbus-sdr/storagecommands.cpp \