Use pgood signal to keep internal state updated
Change-Id: I35a2e67afc877488ceb1a0e0255b99b9db792201
Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
diff --git a/chassis_state_manager.cpp b/chassis_state_manager.cpp
index 91a35d0..a2b6dbf 100644
--- a/chassis_state_manager.cpp
+++ b/chassis_state_manager.cpp
@@ -13,6 +13,31 @@
using namespace phosphor::logging;
+/* TODO:Issue 774 - Use systemd target signals to control chassis state */
+int Chassis::handlePgoodOn(sd_bus_message* /*msg*/, void* usrData,
+ sd_bus_error* retError)
+{
+ log<level::INFO>("Pgood has turned on",
+ entry("CHASSIS_CURRENT_POWER_STATE=%s",
+ convertForMessage(PowerState::On).c_str()));
+ auto chassisInst = static_cast<Chassis*>(usrData);
+ chassisInst->currentPowerState(PowerState::On);
+
+ return 0;
+}
+
+int Chassis::handlePgoodOff(sd_bus_message* /*msg*/, void* usrData,
+ sd_bus_error* retError)
+{
+ log<level::INFO>("Pgood has turned off",
+ entry("CHASSIS_CURRENT_POWER_STATE=%s",
+ convertForMessage(PowerState::Off).c_str()));
+ auto chassisInst = static_cast<Chassis*>(usrData);
+ chassisInst->currentPowerState(PowerState::Off);
+
+ return 0;
+}
+
// TODO - Will be rewritten once sdbusplus client bindings are in place
// and persistent storage design is in place and sdbusplus
// has read property function