1 #pragma once
2 
3 #include "pid/zone.hpp"
4 
5 #include <boost/asio/steady_timer.hpp>
6 
7 /**
8  * Main pid control loop for a given zone.
9  * This function calls itself indefinitely in an async loop to calculate
10  * fan outputs based on thermal inputs.
11  *
12  * @param[in] zone - ptr to the PIDZone for this loop.
13  * @param[in] timer - boost timer used for async callback.
14  * @param[in] first - boolean to denote if initialization needs to be run.
15  * @param[in] ms100cnt - loop timer counter.
16  */
17 void pidControlLoop(PIDZone* zone, boost::asio::steady_timer& timer,
18                     bool first = true, int ms100cnt = 0);
19