#pragma once #include "control.hpp" #include #include 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