2020-12-03 18:32:32 +01:00
|
|
|
#ifndef FSFW_THERMAL_THERMALMONITORREPORTER_H_
|
|
|
|
#define FSFW_THERMAL_THERMALMONITORREPORTER_H_
|
|
|
|
|
|
|
|
#include "../monitoring/MonitorReporter.h"
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "ThermalComponentIF.h"
|
2020-12-03 18:32:32 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Monitor Reporter implementation for thermal components.
|
|
|
|
*/
|
2022-02-02 10:29:30 +01:00
|
|
|
class ThermalMonitorReporter : public MonitorReporter<float> {
|
|
|
|
public:
|
|
|
|
template <typename... Args>
|
|
|
|
ThermalMonitorReporter(Args... args) : MonitorReporter<float>(std::forward<Args>(args)...) {}
|
|
|
|
~ThermalMonitorReporter();
|
|
|
|
ReturnValue_t translateState(ThermalComponentIF::State state, float sample, float lowerLimit,
|
|
|
|
float upperLimit, bool componentIsOperational = true);
|
2020-12-03 18:32:32 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
bool isAboveHighLimit();
|
2020-12-03 18:32:32 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
protected:
|
|
|
|
virtual void sendTransitionEvent(float currentValue, ReturnValue_t state);
|
2020-12-03 18:32:32 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FSFW_THERMAL_THERMALMONITORREPORTERREPORTER_H_ */
|