blob: 2e6738dc01e74426967538e44b76aca4ac6a4e6d [file] [log] [blame]
## This file is a template. The comment below is emitted
## into the rendered file; feel free to edit this file.
// !!! WARNING: This is GENERATED Code... Please do NOT edit !!!
#include <map>
#include "conf.hpp"
std::map<int64_t, PIDConf> zoneConfig = {
% for zone in PIDDict.iterkeys():
% if zone:
{${zone},
{
% for key, details in PIDDict[zone].iteritems():
{"${key}",
{"${details['type']}",
{
% for item in details['inputs'].split():
"${item}",
% endfor
},
<%
# If the PID type is a fan, setpoint field is unused,
# so just use a default of 0. If the PID is not a type
# of fan, require the setpoint field.
if 'fan' == details['type']:
setpoint = 0
else:
setpoint = details['setpoint']
neg_hysteresis = 0
pos_hysteresis = 0
if 'neg_hysteresis' in details['pid']:
neg_hysteresis = details['pid']['neg_hysteresis']
if 'pos_hysteresis' in details['pid']:
pos_hysteresis = details['pid']['pos_hysteresis']
%>
${setpoint},
{${details['pid']['samplePeriod']},
${details['pid']['proportionalCoeff']},
${details['pid']['integralCoeff']},
${details['pid']['feedFwdOffOffsetCoeff']},
${details['pid']['feedFwdGainCoeff']},
{${details['pid']['integralLimit']['min']}, ${details['pid']['integralLimit']['max']}},
{${details['pid']['outLimit']['min']}, ${details['pid']['outLimit']['max']}},
${details['pid']['slewNeg']},
${details['pid']['slewPos']},
${neg_hysteresis},
${pos_hysteresis}},
},
},
% endfor
},
},
% endif
% endfor
};