diff options
author | Matthew Barth <msbarth@us.ibm.com> | 2017-05-17 10:14:15 -0500 |
---|---|---|
committer | Matthew Barth <msbarth@us.ibm.com> | 2017-05-31 12:43:41 -0500 |
commit | 7e527c129ad97734484c46fc74a6fdd4b5dac738 (patch) | |
tree | bdb026e3b93e853e8ae48d90b4929e9168b7f643 /control | |
parent | ba102b3826ff28a4f9ccce8ed54aaf4114fbd1db (diff) | |
download | phosphor-fan-presence-7e527c129ad97734484c46fc74a6fdd4b5dac738.tar.gz phosphor-fan-presence-7e527c129ad97734484c46fc74a6fdd4b5dac738.zip |
Generate list of property change signals
Add the list of property(s) associated to a set speed event where the
handler updates the property cached on the zone for the action
Change-Id: Ifac61dda6eb200ca28735ddfaab3d34c9a9df758
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Diffstat (limited to 'control')
-rwxr-xr-x | control/gen-fan-zone-defs.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py index 97d62ea..a779f34 100755 --- a/control/gen-fan-zone-defs.py +++ b/control/gen-fan-zone-defs.py @@ -16,6 +16,7 @@ tmpl = '''/* This is a generated file. */ #include "manager.hpp" #include "functor.hpp" #include "actions.hpp" +#include "handlers.hpp" using namespace phosphor::fan::control; @@ -61,6 +62,23 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts %endif %endfor )), + std::vector<PropertyChange>{ + %for signal in event['signal']: + PropertyChange{ + "interface='org.freedesktop.DBus.Properties'," + "member='PropertiesChanged'," + "type='signal'," + "path='${signal['path']}'", + make_handler(propertySignal<${signal['type']}>( + "${signal['interface']}", + "${signal['property']}", + handler::setProperty<${signal['type']}>( + "${signal['member']}", + "${signal['property']}" + ) + ))}, + %endfor + } }, %endfor } @@ -93,6 +111,7 @@ def getEventsInZone(zone_num, events_data): if g['name'] == e['group']) for member in groups['members']: members = {} + members['type'] = groups['type'] members['name'] = ("/xyz/openbmc_project/" + groups['type'] + member) @@ -125,6 +144,18 @@ def getEventsInZone(zone_num, events_data): action['parameters'] = params event['action'] = action + # Add property change signal handler + signal = [] + for path in group: + signals = {} + signals['path'] = path['name'] + signals['interface'] = e['interface'] + signals['property'] = e['property']['name'] + signals['type'] = e['property']['type'] + signals['member'] = path['name'] + signal.append(signals) + event['signal'] = signal + events.append(event) return events |