summaryrefslogtreecommitdiffstats
path: root/control/gen-fan-zone-defs.py
diff options
context:
space:
mode:
authorMatt Spinler <spinler@us.ibm.com>2017-05-09 11:03:14 -0500
committerMatthew Barth <msbarth@us.ibm.com>2017-05-16 17:27:46 -0500
commitee7f64283f2fe728fd4bd67280bf59daaec9df54 (patch)
tree94df674fdcd96606d10ed55976dffda9d87fa78b /control/gen-fan-zone-defs.py
parent389ca67fcd47dbc5375fe9993f3b35ba1af32cff (diff)
downloadphosphor-fan-presence-ee7f64283f2fe728fd4bd67280bf59daaec9df54.tar.gz
phosphor-fan-presence-ee7f64283f2fe728fd4bd67280bf59daaec9df54.zip
Add modes to phosphor-fan-control
phosphor-fan-control can behave differently based on its command line arguments --init: Set fans to full speed, delay for a configurable amount of time to allow fans to ramp up, start the fan control ready target, and then exit. --control: Start the control algorithm. Never exits. Will be started as part of the fan control ready target. Change-Id: I453daf8cc05a5c85a19c098e1cca64cac2ad9520 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Diffstat (limited to 'control/gen-fan-zone-defs.py')
-rwxr-xr-xcontrol/gen-fan-zone-defs.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py
index 3457d41..04f206f 100755
--- a/control/gen-fan-zone-defs.py
+++ b/control/gen-fan-zone-defs.py
@@ -11,12 +11,14 @@ import yaml
from argparse import ArgumentParser
from mako.template import Template
-#Note: Condition is a TODO
+#Note: Condition is a TODO (openbmc/openbmc#1500)
tmpl = '''/* This is a generated file. */
#include "manager.hpp"
using namespace phosphor::fan::control;
+const unsigned int Manager::_powerOnDelay{${mgr_data['power_on_delay']}};
+
const std::vector<ZoneGroup> Manager::_zoneLayouts
{
%for zone_group in zones:
@@ -151,8 +153,15 @@ if __name__ == '__main__':
with open(args.fan_yaml, 'r') as fan_input:
fan_data = yaml.safe_load(fan_input) or {}
- zone_data = buildZoneData(zone_data, fan_data)
+ zone_config = buildZoneData(zone_data.get('zone_configuration', {}),
+ fan_data)
+
+ manager_config = zone_data.get('manager_configuration', {})
+
+ if manager_config.get('power_on_delay') is None:
+ manager_config['power_on_delay'] = 0
output_file = os.path.join(args.output_dir, "fan_zone_defs.cpp")
with open(output_file, 'w') as output:
- output.write(Template(tmpl).render(zones=zone_data))
+ output.write(Template(tmpl).render(zones=zone_config,
+ mgr_data=manager_config))
OpenPOWER on IntegriCloud