diff options
Diffstat (limited to 'presence/tach_sensor.hpp')
-rw-r--r-- | presence/tach_sensor.hpp | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/presence/tach_sensor.hpp b/presence/tach_sensor.hpp deleted file mode 100644 index 068a66f..0000000 --- a/presence/tach_sensor.hpp +++ /dev/null @@ -1,95 +0,0 @@ -#pragma once - -#include <sdbusplus/server.hpp> -#include "sdbusplus.hpp" -#include "sensor_base.hpp" - - -namespace phosphor -{ -namespace fan -{ -namespace presence -{ - -using namespace sdbusplus::bus::match::rules; - -/** - * @class TachSensor - * @brief OpenBMC Tach feedback sensor presence implementation - * @details Derived sensor type that uses the tach feedback value to determine - * the presence of the fan enclosure that contains this sensor - */ -class TachSensor : public Sensor -{ - public: - TachSensor() = delete; - TachSensor(const TachSensor&) = delete; - TachSensor(TachSensor&&) = delete; - TachSensor& operator=(const TachSensor&) = delete; - TachSensor& operator=(TachSensor&&) = delete; - ~TachSensor() = default; - - /** - * @brief Constructs Tach Sensor Object - * - * @param[in] id - ID name of this sensor - * @param[in] fanEnc - Reference to the fan enclosure with this sensor - */ - TachSensor( - const std::string& id, - FanEnclosure& fanEnc, - bool initialState = false) : - Sensor(id, fanEnc), - tachSignal(util::SDBusPlus::getBus(), - match(id).c_str(), - std::bind( - std::mem_fn(&TachSensor::handleTachChange), - this, - std::placeholders::_1)), - state(initialState) - { - // Nothing to do here - } - - /** - * @brief Determine the presence of this sensor using the tach feedback - * - * @return Presence state based on tach feedback - */ - bool isPresent(); - - private: - /** @brief Used to subscribe to dbus signals */ - sdbusplus::server::match::match tachSignal; - /** @brief Tach speed value given from the signal */ - bool state; - - /** - * @brief Appends the fan sensor id to construct a match string - * - * @param[in] id - Fan sensor id - * - * @return Match string to register signal for the fan sensor id - */ - static std::string match(const std::string& id) - { - return std::string( - interface("org.freedesktop.DBus.Properties") + - member("PropertiesChanged") + - type::signal() + - path("/xyz/openbmc_project/sensors/fan_tach/" + id) + - argN(0, "xyz.openbmc_project.Sensor.Value")); - } - /** - * @brief Handle when the signal was a tach change - * - * @param[in] msg - Expanded sdbusplus message data - */ - void handleTachChange(sdbusplus::message::message& msg); - -}; - -} // namespace presence -} // namespace fan -} // namespace phosphor |