xref: /openbmc/phosphor-hwmon/interface.hpp (revision b6865fdcc10dbfd5ff023f3b74d9c8b645d319db)
18e068d9dSBrad Bishop #pragma once
28e068d9dSBrad Bishop 
38e068d9dSBrad Bishop #include <sdbusplus/server.hpp>
4*47fb49acSLakshmi Yadlapati #include <xyz/openbmc_project/Common/Priority/server.hpp>
5043d3230SPatrick Venture #include <xyz/openbmc_project/Control/FanPwm/server.hpp>
6043d3230SPatrick Venture #include <xyz/openbmc_project/Control/FanSpeed/server.hpp>
7c9d61613SGeorge Liu #include <xyz/openbmc_project/Sensor/Accuracy/server.hpp>
8043d3230SPatrick Venture #include <xyz/openbmc_project/Sensor/Threshold/Critical/server.hpp>
9043d3230SPatrick Venture #include <xyz/openbmc_project/Sensor/Threshold/Warning/server.hpp>
10043d3230SPatrick Venture #include <xyz/openbmc_project/Sensor/Value/server.hpp>
11043d3230SPatrick Venture #include <xyz/openbmc_project/State/Decorator/OperationalStatus/server.hpp>
128e068d9dSBrad Bishop 
13d9f06ab5SBrad Bishop template <typename... T>
14ad6043f6SPatrick Williams using ServerObject = typename sdbusplus::server::object_t<T...>;
158e068d9dSBrad Bishop 
168e068d9dSBrad Bishop using ValueInterface = sdbusplus::xyz::openbmc_project::Sensor::server::Value;
178e068d9dSBrad Bishop using ValueObject = ServerObject<ValueInterface>;
18cad57db5SBrad Bishop using WarningInterface =
19cad57db5SBrad Bishop     sdbusplus::xyz::openbmc_project::Sensor::Threshold::server::Warning;
20cad57db5SBrad Bishop using WarningObject = ServerObject<WarningInterface>;
21cad57db5SBrad Bishop using CriticalInterface =
22cad57db5SBrad Bishop     sdbusplus::xyz::openbmc_project::Sensor::Threshold::server::Critical;
23cad57db5SBrad Bishop using CriticalObject = ServerObject<CriticalInterface>;
24bf7b7b1dSMatthew Barth using FanSpeedInterface =
25bf7b7b1dSMatthew Barth     sdbusplus::xyz::openbmc_project::Control::server::FanSpeed;
26bf7b7b1dSMatthew Barth using FanSpeedObject = ServerObject<FanSpeedInterface>;
279331ab78SPatrick Venture using FanPwmInterface =
289331ab78SPatrick Venture     sdbusplus::xyz::openbmc_project::Control::server::FanPwm;
299331ab78SPatrick Venture using FanPwmObject = ServerObject<FanPwmInterface>;
30043d3230SPatrick Venture using StatusInterface = sdbusplus::xyz::openbmc_project::State::Decorator::
31043d3230SPatrick Venture     server::OperationalStatus;
3235819381SMatthew Barth using StatusObject = ServerObject<StatusInterface>;
33*47fb49acSLakshmi Yadlapati using PriorityInterface =
34*47fb49acSLakshmi Yadlapati     sdbusplus::xyz::openbmc_project::Common::server::Priority;
35*47fb49acSLakshmi Yadlapati using PriorityObject = ServerObject<PriorityInterface>;
368e068d9dSBrad Bishop 
37e32ce16bSMatt Spinler using SensorValueType = double;
38ee73f5bdSJames Feist 
39c9d61613SGeorge Liu using AccuracyInterface =
40c9d61613SGeorge Liu     sdbusplus::xyz::openbmc_project::Sensor::server::Accuracy;
41c9d61613SGeorge Liu using AccuracyObject = ServerObject<AccuracyInterface>;
42c9d61613SGeorge Liu 
43075f7a2dSBrad Bishop enum class InterfaceType
44075f7a2dSBrad Bishop {
45075f7a2dSBrad Bishop     VALUE,
46cad57db5SBrad Bishop     WARN,
47cad57db5SBrad Bishop     CRIT,
48bf7b7b1dSMatthew Barth     FAN_SPEED,
499331ab78SPatrick Venture     FAN_PWM,
5035819381SMatthew Barth     STATUS,
51c9d61613SGeorge Liu     ACCURACY,
52*47fb49acSLakshmi Yadlapati     PRIORITY,
53075f7a2dSBrad Bishop };
54