diff options
author | Matthew Barth <msbarth@us.ibm.com> | 2017-09-15 13:05:30 -0500 |
---|---|---|
committer | Matthew Barth <msbarth@us.ibm.com> | 2017-09-28 09:26:30 -0500 |
commit | 4c04a016faa989bbc1ad4334b164535f017954b1 (patch) | |
tree | da7f18fa03a764cdd0128a2a013e8a1085b18d41 | |
parent | b280bfa4286c708b4bb65d82e3b41cc883b279f0 (diff) | |
download | phosphor-fan-presence-4c04a016faa989bbc1ad4334b164535f017954b1.tar.gz phosphor-fan-presence-4c04a016faa989bbc1ad4334b164535f017954b1.zip |
Allow no parameter action functions
Action functions are not required to have parameters.
Change-Id: I04bf8294d9be9141cc7d8d3183628c94b777154a
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
-rwxr-xr-x | control/gen-fan-zone-defs.py | 63 |
1 files changed, 41 insertions, 22 deletions
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py index a95920b..d11ff35 100755 --- a/control/gen-fan-zone-defs.py +++ b/control/gen-fan-zone-defs.py @@ -28,15 +28,19 @@ Group{ }, std::vector<Action>{ %for a in event['action']: +%if len(a['parameters']) != 0: make_action(action::${a['name']}( +%else: +make_action(action::${a['name']} +%endif %for i, p in enumerate(a['parameters']): %if (i+1) != len(a['parameters']): static_cast<${p['type']}>(${p['value']}), %else: - static_cast<${p['type']}>(${p['value']}) + static_cast<${p['type']}>(${p['value']})) %endif %endfor -)), +), %endfor }, Timer{ @@ -144,8 +148,13 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts }, std::vector<Action>{ %for i, a in enumerate(event['pc']['pcact']): + %if len(a['params']) != 0: make_action( precondition::${a['name']}( + %else: + make_action( + precondition::${a['name']} + %endif %for p in a['params']: ${p['type']}${p['open']} %for j, v in enumerate(p['values']): @@ -158,7 +167,11 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts ${p['close']}, %endfor %if (i+1) != len(event['pc']['pcact']): + %if len(a['params']) != 0: )), + %else: + ), + %endif %endif %endfor std::vector<SetSpeedEvent>{ @@ -173,7 +186,11 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts %endif %if ('pc' in event) and (event['pc'] is not None): } + %if len(event['pc']['pcact'][-1]['params']) != 0: )), + %else: + ), + %endif }, Timer{ ${event['pc']['pctime']['interval']} @@ -275,27 +292,29 @@ def getEvent(zone_num, zone_conditions, e, events_data): if a['name'] == eActions['name']) actions['name'] = eAction['name'] params = [] - for p in eAction['parameters']: - param = {} - if type(eActions[p]) is not dict: - if p == 'property': - param['value'] = str(eActions[p]).lower() - param['type'] = str( - e['property']['type']).lower() - else: - # Default type to 'size_t' when not given - param['value'] = str(eActions[p]).lower() - param['type'] = 'size_t' - params.append(param) - else: - param['type'] = str(eActions[p]['type']).lower() - if p != 'map': - param['value'] = str( - eActions[p]['value']).lower() + if ('parameters' in eAction) and \ + (eAction['parameters'] is not None): + for p in eAction['parameters']: + param = {} + if type(eActions[p]) is not dict: + if p == 'property': + param['value'] = str(eActions[p]).lower() + param['type'] = str( + e['property']['type']).lower() + else: + # Default type to 'size_t' when not given + param['value'] = str(eActions[p]).lower() + param['type'] = 'size_t' + params.append(param) else: - emap = convertToMap(str(eActions[p]['value'])) - param['value'] = param['type'] + emap - params.append(param) + param['type'] = str(eActions[p]['type']).lower() + if p != 'map': + param['value'] = str( + eActions[p]['value']).lower() + else: + emap = convertToMap(str(eActions[p]['value'])) + param['value'] = param['type'] + emap + params.append(param) actions['parameters'] = params action.append(actions) event['action'] = action |