1e73bd0a1SAndrew Jeffery #pragma once 2e73bd0a1SAndrew Jeffery 3*18b6186eSEd Tanous #include <sdbusplus/asio/connection.hpp> 4e73bd0a1SAndrew Jeffery #include <sdbusplus/asio/object_server.hpp> 5e73bd0a1SAndrew Jeffery 6*18b6186eSEd Tanous #include <cstdint> 7e73bd0a1SAndrew Jeffery #include <memory> 8e73bd0a1SAndrew Jeffery #include <string> 9e73bd0a1SAndrew Jeffery 10e73bd0a1SAndrew Jeffery class PwmSensor 11e73bd0a1SAndrew Jeffery { 12e73bd0a1SAndrew Jeffery public: 13b0dff227SDelphine CC Chiu PwmSensor(const std::string& pwmname, const std::string& sysPath, 14e73bd0a1SAndrew Jeffery std::shared_ptr<sdbusplus::asio::connection>& conn, 15e73bd0a1SAndrew Jeffery sdbusplus::asio::object_server& objectServer, 16e73bd0a1SAndrew Jeffery const std::string& sensorConfiguration, 17e73bd0a1SAndrew Jeffery const std::string& sensorType, bool isValueMutable = false); 18e73bd0a1SAndrew Jeffery ~PwmSensor(); 19e73bd0a1SAndrew Jeffery 20e73bd0a1SAndrew Jeffery private: 21e73bd0a1SAndrew Jeffery std::string sysPath; 22e73bd0a1SAndrew Jeffery sdbusplus::asio::object_server& objectServer; 23e73bd0a1SAndrew Jeffery std::string name; 24e73bd0a1SAndrew Jeffery std::shared_ptr<sdbusplus::asio::dbus_interface> sensorInterface; 25e73bd0a1SAndrew Jeffery std::shared_ptr<sdbusplus::asio::dbus_interface> controlInterface; 26e73bd0a1SAndrew Jeffery std::shared_ptr<sdbusplus::asio::dbus_interface> association; 27e73bd0a1SAndrew Jeffery std::shared_ptr<sdbusplus::asio::dbus_interface> valueMutabilityInterface; 28e73bd0a1SAndrew Jeffery double pwmMax; 29e73bd0a1SAndrew Jeffery void setValue(uint32_t value); 30e73bd0a1SAndrew Jeffery uint32_t getValue(bool errThrow = true); 31e73bd0a1SAndrew Jeffery }; 32