fsfw/src/fsfw/thermal/ThermalMonitorReporter.h

25 lines
838 B
C
Raw Permalink Normal View History

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_ */