diff options
Diffstat (limited to 'presence/tach_sensor.cpp')
-rw-r--r-- | presence/tach_sensor.cpp | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/presence/tach_sensor.cpp b/presence/tach_sensor.cpp index c21478b..60da441 100644 --- a/presence/tach_sensor.cpp +++ b/presence/tach_sensor.cpp @@ -30,35 +30,18 @@ bool TachSensor::isPresent() return (tach != 0); } -// Tach signal callback handler -int TachSensor::handleTachChangeSignal(sd_bus_message* msg, - void* usrData, - sd_bus_error* err) -{ - auto sdbpMsg = sdbusplus::message::message(msg); - static_cast<TachSensor*>(usrData)->handleTachChange(sdbpMsg, err); - return 0; -} - -void TachSensor::handleTachChange(sdbusplus::message::message& sdbpMsg, - sd_bus_error* err) +void TachSensor::handleTachChange(sdbusplus::message::message& sdbpMsg) { std::string msgSensor; std::map<std::string, sdbusplus::message::variant<int64_t>> msgData; sdbpMsg.read(msgSensor, msgData); - // TODO openbmc/phosphor-fan-presence#5 - // Update to use 'arg0namespace' match option to reduce dbus traffic - // Find interface with value property - if (msgSensor.compare("xyz.openbmc_project.Sensor.Value") == 0) + // Find the 'Value' property containing tach + auto valPropMap = msgData.find("Value"); + if (valPropMap != msgData.end()) { - // Find the 'Value' property containing tach - auto valPropMap = msgData.find("Value"); - if (valPropMap != msgData.end()) - { - tach = sdbusplus::message::variant_ns::get<int64_t>( - valPropMap->second); - } + tach = sdbusplus::message::variant_ns::get<int64_t>( + valPropMap->second); } // Update inventory according to latest tach reported fanEnc.updInventory(); |