1 #pragma once
2 
3 #include <cstdint>
4 #include <string>
5 
6 namespace pid_control
7 {
8 namespace ipmi
9 {
10 
11 /*
12  * busctl call xyz.openbmc_project.State.FanCtrl \
13  *     /xyz/openbmc_project/settings/fanctrl/zone1 \
14  *     org.freedesktop.DBus.Properties \
15  *     GetAll \
16  *     s \
17  *     xyz.openbmc_project.Control.Mode
18  * a{sv} 2 "Manual" b false "FailSafe" b false
19  *
20  * This returns an IPMI code as a uint8_t (which will always be sufficient to
21  * hold the result). NOTE: This does not return the typedef value to avoid
22  * including a header with conflicting types.
23  */
24 uint8_t getFanCtrlProperty(uint8_t zoneId, bool* value,
25                            const std::string& property);
26 
27 } // namespace ipmi
28 } // namespace pid_control
29