fsfw/events/Event.h

46 lines
1.2 KiB
C
Raw Normal View History

2020-08-28 17:44:10 +02:00
#ifndef EVENTOBJECT_EVENT_H_
#define EVENTOBJECT_EVENT_H_
#include <stdint.h>
#include "fwSubsystemIdRanges.h"
//could be move to more suitable location
2020-09-15 17:33:21 +02:00
#include <subsystemIdRanges.h>
2020-08-28 17:44:10 +02:00
typedef uint16_t EventId_t;
typedef uint8_t EventSeverity_t;
#define MAKE_EVENT(id, severity) (((severity)<<16)+(SUBSYSTEM_ID*100)+(id))
typedef uint32_t Event;
namespace EVENT {
EventId_t getEventId(Event event);
EventSeverity_t getSeverity(Event event);
2020-09-25 19:01:59 +02:00
Event makeEvent(uint8_t subsystemId, uint8_t uniqueEventId,
EventSeverity_t eventSeverity);
2020-08-28 17:44:10 +02:00
}
2020-09-25 19:01:59 +02:00
2020-08-28 17:44:10 +02:00
namespace SEVERITY {
static const EventSeverity_t INFO = 1;
static const EventSeverity_t LOW = 2;
static const EventSeverity_t MEDIUM = 3;
static const EventSeverity_t HIGH = 4;
}
//Unfortunately, this does not work nicely because of the inability to define static classes in headers.
//struct Event {
// Event(uint8_t domain, uint8_t counter, EventSeverity_t severity) :
// id(domain*100+counter), severity(severity) {
// }
// EventId_t id;
// EventSeverity_t severity;
// static const EventSeverity_t INFO = 1;
// static const EventSeverity_t LOW = 2;
// static const EventSeverity_t MEDIUM = 3;
// static const EventSeverity_t HIGH = 4;
//};
#endif /* EVENTOBJECT_EVENT_H_ */