fsfw/src/fsfw/events/Event.h

35 lines
891 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"
2022-03-11 14:25:01 +01:00
using EventId_t = uint16_t;
2022-03-14 15:08:45 +01:00
using EventSeverity_t = uint8_t;
2022-03-11 14:25:01 +01:00
using UniqueEventId_t = uint8_t;
namespace severity {
2022-03-14 15:08:45 +01:00
enum Severity : EventSeverity_t { INFO = 1, LOW = 2, MEDIUM = 3, HIGH = 4 };
2022-03-11 14:25:01 +01:00
} // 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_ */