1*1a153794SPatrick Venture #pragma once
2*1a153794SPatrick Venture 
3*1a153794SPatrick Venture #include "sensors/sensor.hpp"
4*1a153794SPatrick Venture 
5*1a153794SPatrick Venture #include <string>
6*1a153794SPatrick Venture 
7*1a153794SPatrick Venture namespace pid_control
8*1a153794SPatrick Venture {
9*1a153794SPatrick Venture 
10*1a153794SPatrick Venture class ZoneInterface
11*1a153794SPatrick Venture {
12*1a153794SPatrick Venture   public:
13*1a153794SPatrick Venture     virtual ~ZoneInterface() = default;
14*1a153794SPatrick Venture 
15*1a153794SPatrick Venture     virtual double getCachedValue(const std::string& name) = 0;
16*1a153794SPatrick Venture     virtual void addSetPoint(double setpoint) = 0;
17*1a153794SPatrick Venture     virtual void addRPMCeiling(double ceiling) = 0;
18*1a153794SPatrick Venture     virtual double getMaxSetPointRequest() const = 0;
19*1a153794SPatrick Venture     virtual bool getFailSafeMode() const = 0;
20*1a153794SPatrick Venture     virtual double getFailSafePercent() const = 0;
21*1a153794SPatrick Venture     virtual Sensor* getSensor(const std::string& name) = 0;
22*1a153794SPatrick Venture };
23*1a153794SPatrick Venture 
24*1a153794SPatrick Venture } // namespace pid_control
25