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