| #pragma once |
| |
| #include "control.hpp" |
| |
| #include <cstdint> |
| #include <string> |
| |
| namespace pid_control |
| { |
| namespace ipmi |
| { |
| |
| class DbusZoneControl : public ZoneControlInterface |
| { |
| public: |
| DbusZoneControl() = default; |
| ~DbusZoneControl() = default; |
| |
| /* |
| * busctl call xyz.openbmc_project.State.FanCtrl \ |
| * /xyz/openbmc_project/settings/fanctrl/zone1 \ |
| * org.freedesktop.DBus.Properties \ |
| * GetAll \ |
| * s \ |
| * xyz.openbmc_project.Control.Mode |
| * a{sv} 2 "Manual" b false "FailSafe" b false |
| * |
| * This returns an IPMI code as a uint8_t (which will always be sufficient |
| * to hold the result). NOTE: This does not return the typedef value to |
| * avoid including a header with conflicting types. |
| */ |
| uint8_t getFanCtrlProperty(uint8_t zoneId, bool* value, |
| const std::string& property) override; |
| |
| uint8_t setFanCtrlProperty(uint8_t zoneId, bool value, |
| const std::string& property) override; |
| }; |
| |
| } // namespace ipmi |
| } // namespace pid_control |