diff --git a/src/fsfw/events/Event.h b/src/fsfw/events/Event.h index e48736bf..a120120d 100644 --- a/src/fsfw/events/Event.h +++ b/src/fsfw/events/Event.h @@ -5,28 +5,28 @@ #include "fwSubsystemIdRanges.h" -using EventId_t = uint16_t; using EventSeverity_t = uint8_t; -using UniqueEventId_t = uint8_t; +using GroupId_t = uint16_t; +using UniqueEventId_t = uint16_t; namespace severity { -enum Severity : EventSeverity_t { INFO = 1, LOW = 2, MEDIUM = 3, HIGH = 4 }; +enum Severity : EventSeverity_t { INFO = 0, LOW = 1, MEDIUM = 2, HIGH = 3 }; } // namespace severity -#define MAKE_EVENT(id, severity) (((severity) << 16) + (SUBSYSTEM_ID * 100) + (id)) +#define MAKE_EVENT(id, severity) (((severity) << 30) | (SUBSYSTEM_ID << 16) | id) typedef uint32_t Event; namespace event { -constexpr EventId_t getEventId(Event event) { return (event & 0xFFFF); } +constexpr UniqueEventId_t getEventId(Event event) { return (event & 0xFFFF); } -constexpr EventSeverity_t getSeverity(Event event) { return ((event >> 16) & 0xFF); } +constexpr EventSeverity_t getSeverity(Event event) { return ((event >> 30) & 0b11); } -constexpr Event makeEvent(uint8_t subsystemId, UniqueEventId_t uniqueEventId, +constexpr Event makeEvent(GroupId_t groupId, UniqueEventId_t uniqueEventId, EventSeverity_t eventSeverity) { - return (eventSeverity << 16) + (subsystemId * 100) + uniqueEventId; + return (eventSeverity << 30) | (groupId << 16) | uniqueEventId; } } // namespace event diff --git a/src/fsfw/pus/Service5EventReporting.cpp b/src/fsfw/pus/Service5EventReporting.cpp index b4b9b03d..bbcc649b 100644 --- a/src/fsfw/pus/Service5EventReporting.cpp +++ b/src/fsfw/pus/Service5EventReporting.cpp @@ -44,7 +44,7 @@ ReturnValue_t Service5EventReporting::performService() { } ReturnValue_t Service5EventReporting::generateEventReport(EventMessage message) { - EventReport report(message.getEventId(), message.getReporter(), message.getParameter1(), + EventReport report(message.getEvent(), message.getReporter(), message.getParameter1(), message.getParameter2()); storeHelper.preparePacket(psbParams.serviceId, message.getSeverity(), tmHelper.sendCounter); storeHelper.setSourceDataSerializable(report); diff --git a/src/fsfw/pus/servicepackets/Service5Packets.h b/src/fsfw/pus/servicepackets/Service5Packets.h index 1357b3c0..a05cd1d7 100644 --- a/src/fsfw/pus/servicepackets/Service5Packets.h +++ b/src/fsfw/pus/servicepackets/Service5Packets.h @@ -17,17 +17,13 @@ */ class EventReport : public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 1, 2, 3, 4 public: - EventReport(EventId_t reportId_, object_id_t objectId_, uint32_t parameter1_, - uint32_t parameter2_) - : reportId(reportId_), - objectId(objectId_), - parameter1(parameter1_), - parameter2(parameter2_) {} + EventReport(Event event_, object_id_t objectId_, uint32_t parameter1_, uint32_t parameter2_) + : event(event_), objectId(objectId_), parameter1(parameter1_), parameter2(parameter2_) {} ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize, SerializeIF::Endianness streamEndianness) const override { ReturnValue_t result = - SerializeAdapter::serialize(&reportId, buffer, size, maxSize, streamEndianness); + SerializeAdapter::serialize(&event, buffer, size, maxSize, streamEndianness); if (result != returnvalue::OK) { return result; } @@ -48,7 +44,7 @@ class EventReport : public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 1, 2, 3, size_t getSerializedSize() const override { uint32_t size = 0; - size += SerializeAdapter::getSerializedSize(&reportId); + size += SerializeAdapter::getSerializedSize(&event); size += SerializeAdapter::getSerializedSize(&objectId); size += SerializeAdapter::getSerializedSize(¶meter1); size += SerializeAdapter::getSerializedSize(¶meter2); @@ -61,7 +57,7 @@ class EventReport : public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 1, 2, 3, } private: - EventId_t reportId; + Event event; object_id_t objectId; uint32_t parameter1; uint32_t parameter2;