2018-07-12 16:29:32 +02:00
|
|
|
#ifndef THERMALMODULEIF_H_
|
|
|
|
#define THERMALMODULEIF_H_
|
|
|
|
|
|
|
|
#include "ThermalComponentIF.h"
|
2020-12-12 00:01:36 +01:00
|
|
|
|
2018-07-12 16:29:32 +02:00
|
|
|
class AbstractTemperatureSensor;
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
class ThermalModuleIF {
|
|
|
|
public:
|
|
|
|
enum Strategy {
|
|
|
|
PASSIVE = 0,
|
|
|
|
ACTIVE_SURVIVAL = 1,
|
|
|
|
ACTIVE_SINGLE = 2,
|
|
|
|
ACTIVE_DUAL = 3,
|
|
|
|
};
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
enum StateRequest { STATE_REQUEST_HEATING = 1, STATE_REQUEST_PASSIVE = 0 };
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
enum State { NON_OPERATIONAL = 0, OPERATIONAL = 1, UNKNOWN = 2 };
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual ~ThermalModuleIF() {}
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void performOperation(uint8_t opCode) = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void performMode(Strategy strategy) = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual float getTemperature() = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void registerSensor(AbstractTemperatureSensor *sensor) = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void registerComponent(ThermalComponentIF *component,
|
|
|
|
ThermalComponentIF::Priority priority) = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual ThermalComponentIF *findComponent(object_id_t objectId) = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void setHeating(bool on) = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void setOutputInvalid() = 0;
|
2018-07-12 16:29:32 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* THERMALMODULEIF_H_ */
|