pid/zone: split zone interface into its own header
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I8f516353ddf7777ec750549e748c96afa211ea6e
diff --git a/pid/zone_interface.hpp b/pid/zone_interface.hpp
new file mode 100644
index 0000000..f701064
--- /dev/null
+++ b/pid/zone_interface.hpp
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "sensors/sensor.hpp"
+
+#include <string>
+
+namespace pid_control
+{
+
+class ZoneInterface
+{
+ public:
+ virtual ~ZoneInterface() = default;
+
+ virtual double getCachedValue(const std::string& name) = 0;
+ virtual void addSetPoint(double setpoint) = 0;
+ virtual void addRPMCeiling(double ceiling) = 0;
+ virtual double getMaxSetPointRequest() const = 0;
+ virtual bool getFailSafeMode() const = 0;
+ virtual double getFailSafePercent() const = 0;
+ virtual Sensor* getSensor(const std::string& name) = 0;
+};
+
+} // namespace pid_control