1 #pragma once 2 3 #include "ec/pid.hpp" 4 #include "fan.hpp" 5 6 #include <string> 7 8 /* 9 * Base class for controllers. Each controller that implements this needs to 10 * provide an input_proc, process, and output_proc. 11 */ 12 class ZoneInterface; 13 14 struct Controller 15 { 16 virtual ~Controller() = default; 17 18 virtual float input_proc(void) = 0; 19 20 virtual void output_proc(float value) = 0; 21 22 virtual void process(void) = 0; 23 24 virtual std::string get_id(void) = 0; 25 }; 26