51 using ValueType = CONTROL_VAR_TYPE;
65 nonvirtual strong_ordering operator<=> (
const ControlParams& rhs)
const =
default;
90 const function<
void (ValueType o)>& outputFunction, ValueType initialSetPoint = {});
91 PIDLoop (AutoStartFlag,
const ControlParams& pidParams,
Time::DurationSeconds updatePeriod,
const function<ValueType ()>& measureFunction,
92 const function<
void (ValueType o)>& outputFunction, ValueType initialSetPoint = {});
107 nonvirtual ValueType GetSetPoint ()
const;
145 ControlParams fPIDParams_;
147 function<ValueType ()> fMeasureFunction_;
148 function<void (ValueType o)> fOutputFunction_;
149 struct UpdatableParams_ {
150 ValueType fSetPoint_ = {};
151 ValueType fPrevError_ = {};
152 ValueType fIntegral_ = {};
154 Synchronized<UpdatableParams_> fUpdatableParams_;
155 optional<Thread::Ptr> fThread_;