diff --git a/inc/Services/EventReportService.hpp b/inc/Services/EventReportService.hpp index 160123a2522f7900a044886309b448304888e167..454bd24b828d7dd30cfce1d8f83ca435facf8f3b 100644 --- a/inc/Services/EventReportService.hpp +++ b/inc/Services/EventReportService.hpp @@ -17,7 +17,7 @@ class EventReportService : public Service { private: - static const uint8_t numberOfEvents = 7; // Might need to change the uint8_t + static const uint16_t numberOfEvents = 7; std::bitset<numberOfEvents> stateOfEvents; public: EventReportService() { @@ -118,13 +118,13 @@ public: * TC[5,5] request to enable report generation * Telecommand to enable the report generation of event definitions */ - void enableReportGeneration(uint8_t length, Event *eventID); + void enableReportGeneration(uint16_t length, Event *eventID); /** * TC[5,6] request to disable report generation * Telecommand to disable the report generation of event definitions */ - void disableReportGeneration(uint8_t length, Event *eventID); + void disableReportGeneration(uint16_t length, Event *eventID); /** * TC[5,7] request to report the disabled event definitions diff --git a/src/Services/EventReportService.cpp b/src/Services/EventReportService.cpp index 3e3c7af40a11f9468529ca0e91c719e7982f7839..4d16901438d1c3147122be910c0aee708462e62c 100644 --- a/src/Services/EventReportService.cpp +++ b/src/Services/EventReportService.cpp @@ -48,27 +48,27 @@ EventReportService::highSeverityAnomalyReport(Event eventID, const uint8_t *data storeMessage(report); } -void EventReportService::enableReportGeneration(uint8_t length, Event *eventID) { +void EventReportService::enableReportGeneration(uint16_t length, Event *eventID) { // TC[5,5] /** * @todo: Report an error if length>numberOfEvents */ if (length <= numberOfEvents) { - for (uint8_t i = 0; i < length; i++) { - stateOfEvents[static_cast<uint8_t> (eventID[i])] = 1; + for (uint16_t i = 0; i < length; i++) { + stateOfEvents[static_cast<uint16_t> (eventID[i])] = 1; } } - } -void EventReportService::disableReportGeneration(uint8_t length, Event *eventID) { +void EventReportService::disableReportGeneration(uint16_t length, Event *eventID) { // TC[5,6] /** - * @todo: Add informationEventReport with notification if failed start of execution - * according to standard 6.5.5.2.e + * @todo: Report an error if length>numberOfEvents */ - for (uint8_t i = 0; i < length; i++) { - stateOfEvents[static_cast<uint8_t> (eventID[i])] = 0; + if (length <= numberOfEvents) { + for (uint16_t i = 0; i < length; i++) { + stateOfEvents[static_cast<uint16_t> (eventID[i])] = 0; + } } } @@ -83,11 +83,11 @@ void EventReportService::listOfDisabledEventsReport() { Message report = createTM(8); // Any chance we'll have more than uint8_t (>255 events) ? This will produce an error! - uint8_t numberOfDisabledEvents = stateOfEvents.size() - stateOfEvents.count(); + uint16_t numberOfDisabledEvents = stateOfEvents.size() - stateOfEvents.count(); report.appendByte(numberOfDisabledEvents); - for (uint8_t i = 0; i < stateOfEvents.size(); i++) { + for (uint16_t i = 0; i < stateOfEvents.size(); i++) { if (stateOfEvents[i] == 0) { - report.appendEnum8(i); + report.appendEnum16(i); } } diff --git a/test/Services/EventReportService.cpp b/test/Services/EventReportService.cpp index 3a351da9a3af49a7f9cb270e57f6d30b430c6c91..e666b2d439dc8504a34184cb25a41c4681b8a10e 100644 --- a/test/Services/EventReportService.cpp +++ b/test/Services/EventReportService.cpp @@ -132,7 +132,7 @@ TEST_CASE("List of Disabled Events Report TM[5,8]", "[service][st05]") { CHECK(report.packetType == Message::TM); // packet type(TM = 0, TC = 1) REQUIRE(report.dataSize == 3); // Check for the information stored in report - CHECK(report.readByte() == 2); - CHECK(report.readEnum8() == 3); - CHECK(report.readEnum8() == 6); + CHECK(report.readHalfWord() == 2); + CHECK(report.readEnum16() == 3); + CHECK(report.readEnum16() == 6); }