blob: f0dc7e67d893d42e12bb633a68bad6492be8b82b [file] [log] [blame]
James Feist6714a252018-09-10 15:26:18 -07001#pragma once
2
Patrick Venturefd6ba732019-10-31 14:27:39 -07003#include <memory>
James Feist6714a252018-09-10 15:26:18 -07004#include <sdbusplus/asio/object_server.hpp>
Patrick Venturefd6ba732019-10-31 14:27:39 -07005#include <string>
James Feist6714a252018-09-10 15:26:18 -07006
7class PwmSensor
8{
9 public:
Cheng C Yang916360b2019-05-07 18:47:16 +080010 PwmSensor(const std::string& name, const std::string& sysPath,
AppaRao Pulid9d8caf2020-02-27 20:56:59 +053011 std::shared_ptr<sdbusplus::asio::connection>& conn,
James Feist82bac4c2019-03-11 11:16:53 -070012 sdbusplus::asio::object_server& objectServer,
AppaRao Pulid9d8caf2020-02-27 20:56:59 +053013 const std::string& sensorConfiguration,
14 const std::string& sensorType);
James Feist6714a252018-09-10 15:26:18 -070015 ~PwmSensor();
16
17 private:
18 std::string sysPath;
19 sdbusplus::asio::object_server& objectServer;
20 std::string name;
21 std::shared_ptr<sdbusplus::asio::dbus_interface> sensorInterface;
22 std::shared_ptr<sdbusplus::asio::dbus_interface> controlInterface;
James Feist82bac4c2019-03-11 11:16:53 -070023 std::shared_ptr<sdbusplus::asio::dbus_interface> association;
James Feist6714a252018-09-10 15:26:18 -070024 void setValue(uint32_t value);
25 uint32_t getValue(bool errThrow = true);
Jae Hyun Yoo9ced0a32018-10-25 10:42:39 -070026};