Trigger current mode property change events
Each time the current mode property changes, handle the event similarly
to other event signal triggers substituting with a null message. When
the handler receives a null message, the property's value that triggered
the event is retrieved whether from the zone object or from dbus.
Tested:
Triggered the use of alternative events based on thermal control
mode property state
Change-Id: Ibc663c3721c331393250bd32bda0d45cf0214f12
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/zone.cpp b/control/zone.cpp
index 60d2947..7a5f926 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -642,7 +642,17 @@
{
current = ThermalObject::current(value);
saveCurrentMode();
- // TODO Trigger event(s) for mode property change
+ // Trigger event(s) for custom mode property change
+ fs::path path{CONTROL_OBJPATH};
+ path /= std::to_string(_zoneNum);
+ auto eData = _objects[path.string()]
+ ["xyz.openbmc_project.Control.ThermalMode"]
+ ["Current"];
+ if (eData != nullptr)
+ {
+ sdbusplus::message::message nullMsg{nullptr};
+ handleEvent(nullMsg, eData);
+ }
}
return current;
}