2020-10-12 17:39:13 +02:00
|
|
|
#ifndef FSFW_MONITORING_MONITORINGIF_H_
|
|
|
|
#define FSFW_MONITORING_MONITORINGIF_H_
|
2020-08-28 18:33:29 +02:00
|
|
|
|
2020-09-29 18:01:55 +02:00
|
|
|
#include "MonitoringMessage.h"
|
2020-10-12 17:39:13 +02:00
|
|
|
#include "../memory/HasMemoryIF.h"
|
2020-08-28 18:33:29 +02:00
|
|
|
#include "../serialize/SerializeIF.h"
|
|
|
|
|
|
|
|
class MonitoringIF : public SerializeIF {
|
|
|
|
public:
|
|
|
|
static const uint8_t VIOLATION_REPORT_MAX_SIZE = 32;
|
|
|
|
static const uint8_t LIMIT_TYPE_NO_TYPE = 0xFF;
|
|
|
|
static const uint8_t LIMIT_TYPE_LIMIT_CHECK = 0;
|
|
|
|
static const uint8_t LIMIT_TYPE_DELTA_CHECK = 1;
|
|
|
|
static const uint8_t LIMIT_TYPE_ABSOLUTE_CHECK = 2;
|
|
|
|
static const uint8_t LIMIT_TYPE_OBJECT = 128;
|
|
|
|
|
|
|
|
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::FDIR_2;
|
2020-12-08 14:34:56 +01:00
|
|
|
static const Event MONITOR_CHANGED_STATE = MAKE_EVENT(1, severity::LOW);
|
|
|
|
static const Event VALUE_BELOW_LOW_LIMIT = MAKE_EVENT(2, severity::LOW);
|
|
|
|
static const Event VALUE_ABOVE_HIGH_LIMIT = MAKE_EVENT(3, severity::LOW);
|
|
|
|
static const Event VALUE_OUT_OF_RANGE = MAKE_EVENT(4, severity::LOW);
|
2020-08-28 18:33:29 +02:00
|
|
|
|
|
|
|
static const uint8_t INTERFACE_ID = CLASS_ID::LIMITS_IF;
|
|
|
|
static const ReturnValue_t UNCHECKED = MAKE_RETURN_CODE(1);
|
|
|
|
static const ReturnValue_t INVALID = MAKE_RETURN_CODE(2);
|
|
|
|
static const ReturnValue_t UNSELECTED = MAKE_RETURN_CODE(3);
|
|
|
|
static const ReturnValue_t BELOW_LOW_LIMIT = MAKE_RETURN_CODE(4);
|
|
|
|
// static const ReturnValue_t CHECKING_STATUS_BELOW_LOW_THRESHOLD = MAKE_RETURN_CODE(4);
|
|
|
|
// static const ReturnValue_t CHECKING_STATUS_ABOVE_HIGH_THRESHOLD = MAKE_RETURN_CODE(5);
|
|
|
|
static const ReturnValue_t ABOVE_HIGH_LIMIT = MAKE_RETURN_CODE(5);
|
|
|
|
static const ReturnValue_t UNEXPECTED_VALUE = MAKE_RETURN_CODE(6);
|
|
|
|
static const ReturnValue_t OUT_OF_RANGE = MAKE_RETURN_CODE(7);
|
|
|
|
|
|
|
|
|
|
|
|
static const ReturnValue_t FIRST_SAMPLE = MAKE_RETURN_CODE(0xA0);
|
|
|
|
static const ReturnValue_t INVALID_SIZE = MAKE_RETURN_CODE(0xE0);
|
|
|
|
static const ReturnValue_t WRONG_TYPE = MAKE_RETURN_CODE(0xE1);
|
|
|
|
static const ReturnValue_t WRONG_PID = MAKE_RETURN_CODE(0xE2);
|
|
|
|
static const ReturnValue_t WRONG_LIMIT_ID = MAKE_RETURN_CODE(0xE3);
|
|
|
|
static const ReturnValue_t MONITOR_NOT_FOUND = MAKE_RETURN_CODE(0xEE);
|
|
|
|
|
|
|
|
static const uint8_t REPORT_NONE = 0;
|
|
|
|
static const uint8_t REPORT_EVENTS_ONLY = 1;
|
|
|
|
static const uint8_t REPORT_REPORTS_ONLY = 2;
|
|
|
|
static const uint8_t REPORT_ALL = 3;
|
|
|
|
|
|
|
|
// static const ReturnValue_t STILL_IN_LOW_WARNING = MAKE_RETURN_CODE(0x11);
|
|
|
|
// static const ReturnValue_t STILL_IN_LOW_LIMIT = MAKE_RETURN_CODE(0x12);
|
|
|
|
// static const ReturnValue_t STILL_IN_HIGH_WARNING = MAKE_RETURN_CODE(0x13);
|
|
|
|
// static const ReturnValue_t STILL_IN_HIGH_LIMIT = MAKE_RETURN_CODE(0x14);
|
|
|
|
// static const ReturnValue_t VARIABLE_IS_INVALID = MAKE_RETURN_CODE(0xE0);
|
|
|
|
// static const ReturnValue_t INVALID_SIZE = MAKE_RETURN_CODE(0xE1);
|
|
|
|
// static const ReturnValue_t INVALID_ID = MAKE_RETURN_CODE(0xE2);
|
|
|
|
virtual ReturnValue_t check() = 0;
|
|
|
|
virtual ReturnValue_t setLimits( uint8_t type, const uint8_t* data, uint32_t size) = 0;
|
|
|
|
virtual ReturnValue_t setChecking(uint8_t strategy) = 0;
|
|
|
|
virtual ReturnValue_t setToUnchecked() = 0;
|
|
|
|
virtual uint8_t getLimitType() const = 0;
|
|
|
|
virtual uint32_t getLimitId() const = 0;
|
|
|
|
// virtual ReturnValue_t setEventReporting(bool active) = 0;
|
|
|
|
virtual ~MonitoringIF() {
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-12 17:39:13 +02:00
|
|
|
#endif /* FSFW_MONITORING_MONITORINGIF_H_ */
|