diff options
author | Tom Joseph <tomjoseph@in.ibm.com> | 2017-09-06 23:57:36 +0530 |
---|---|---|
committer | Tom Joseph <tomjoseph@in.ibm.com> | 2017-09-14 18:48:09 +0530 |
commit | e4014fca76e418e5d7d5c8ce8720913f998cd9de (patch) | |
tree | cdb5174b44f19cdadf443a462290fd8e1c1fe154 /sensordatahandler.cpp | |
parent | 816e92b59fa52dcd997099a81e2f43a3512fca1e (diff) | |
download | phosphor-host-ipmid-e4014fca76e418e5d7d5c8ce8720913f998cd9de.tar.gz phosphor-host-ipmid-e4014fca76e418e5d7d5c8ce8720913f998cd9de.zip |
sensor: Add function to map dbus info to reading field
For sensor's with reading type eventData2, the eventdata2 field is
mapped to the reading field in the get sensor reading command
response.
Change-Id: I9ad85ddb48d6c273a22e476e29ea9bbb34c13e24
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Diffstat (limited to 'sensordatahandler.cpp')
-rw-r--r-- | sensordatahandler.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/sensordatahandler.cpp b/sensordatahandler.cpp index 231822b..aca81c7 100644 --- a/sensordatahandler.cpp +++ b/sensordatahandler.cpp @@ -154,6 +154,42 @@ GetSensorResponse assertion(const Info& sensorInfo) sensorInfo.sensorInterface); } +GetSensorResponse eventdata2(const Info& sensorInfo) +{ + sdbusplus::bus::bus bus{ipmid_get_sd_bus_connection()}; + GetSensorResponse response {}; + auto responseData = reinterpret_cast<GetReadingResponse*>(response.data()); + + auto service = ipmi::getService(bus, + sensorInfo.sensorInterface, + sensorInfo.sensorPath); + + const auto& interfaceList = sensorInfo.propertyInterfaces; + + for (const auto& interface : interfaceList) + { + for (const auto& property : interface.second) + { + auto propValue = ipmi::getDbusProperty(bus, + service, + sensorInfo.sensorPath, + interface.first, + property.first); + + for (const auto& value : property.second) + { + if (propValue == value.second.assert) + { + setReading(value.first, responseData); + break; + } + } + } + } + + return response; +} + } //namespace get namespace set |