fsfw/src/fsfw/thermal/ThermalModuleIF.h

42 lines
992 B
C++

#ifndef THERMALMODULEIF_H_
#define THERMALMODULEIF_H_
#include "ThermalComponentIF.h"
class AbstractTemperatureSensor;
class ThermalModuleIF {
public:
enum Strategy {
PASSIVE = 0,
ACTIVE_SURVIVAL = 1,
ACTIVE_SINGLE = 2,
ACTIVE_DUAL = 3,
};
enum StateRequest { STATE_REQUEST_HEATING = 1, STATE_REQUEST_PASSIVE = 0 };
enum State { NON_OPERATIONAL = 0, OPERATIONAL = 1, UNKNOWN = 2 };
virtual ~ThermalModuleIF() {}
virtual void performOperation(uint8_t opCode) = 0;
virtual void performMode(Strategy strategy) = 0;
virtual float getTemperature() = 0;
virtual void registerSensor(AbstractTemperatureSensor *sensor) = 0;
virtual void registerComponent(ThermalComponentIF *component,
ThermalComponentIF::Priority priority) = 0;
virtual ThermalComponentIF *findComponent(object_id_t objectId) = 0;
virtual void setHeating(bool on) = 0;
virtual void setOutputInvalid() = 0;
};
#endif /* THERMALMODULEIF_H_ */