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