fsfw/src/fsfw/events/Event.h

42 lines
981 B
C
Raw Normal View History

#ifndef EVENTOBJECT_EVENT_H_
#define EVENTOBJECT_EVENT_H_
#include <stdint.h>
2022-02-02 10:29:30 +01:00
2020-08-13 20:53:35 +02:00
#include "fwSubsystemIdRanges.h"
2020-12-08 14:43:44 +01:00
// could be moved to more suitable location
2020-11-17 19:25:57 +01:00
#include <events/subsystemIdRanges.h>
2022-03-11 14:25:01 +01:00
using EventId_t = uint16_t;
using EventSeverity_t = uint8_t ;
using UniqueEventId_t = uint8_t;
namespace severity {
enum Severity: EventSeverity_t {
INFO = 1,
LOW = 2,
MEDIUM = 3,
HIGH = 4
};
} // namespace severity
2022-02-02 10:29:30 +01:00
#define MAKE_EVENT(id, severity) (((severity) << 16) + (SUBSYSTEM_ID * 100) + (id))
typedef uint32_t Event;
2020-12-08 14:43:44 +01:00
namespace event {
2022-02-02 10:29:30 +01:00
constexpr EventId_t getEventId(Event event) { return (event & 0xFFFF); }
2020-12-08 14:43:44 +01:00
2022-02-02 10:29:30 +01:00
constexpr EventSeverity_t getSeverity(Event event) { return ((event >> 16) & 0xFF); }
2022-03-11 14:25:01 +01:00
constexpr Event makeEvent(uint8_t subsystemId, UniqueEventId_t uniqueEventId,
2022-02-02 10:29:30 +01:00
EventSeverity_t eventSeverity) {
return (eventSeverity << 16) + (subsystemId * 100) + uniqueEventId;
}
2020-12-01 17:44:36 +01:00
2022-02-02 10:29:30 +01:00
} // namespace event
#endif /* EVENTOBJECT_EVENT_H_ */