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