From 53fa5753e39c31b142d746bac048405347090019 Mon Sep 17 00:00:00 2001 From: athatheocsd <athatheo@csd.auth.gr> Date: Tue, 11 Dec 2018 20:03:54 +0200 Subject: [PATCH] Changed from just data in TC functions to Message message Changed tests for these functions --- inc/Services/EventReportService.hpp | 9 +++-- src/Services/EventReportService.cpp | 51 ++++++++++++++++++---------- test/Services/EventReportService.cpp | 26 +++++++++++--- 3 files changed, 61 insertions(+), 25 deletions(-) diff --git a/inc/Services/EventReportService.hpp b/inc/Services/EventReportService.hpp index 6c2d95ff..026262b1 100644 --- a/inc/Services/EventReportService.hpp +++ b/inc/Services/EventReportService.hpp @@ -147,23 +147,26 @@ public: * TC[5,5] request to enable report generation * Telecommand to enable the report generation of event definitions */ - void enableReportGeneration(uint16_t length, Event *eventID); + void enableReportGeneration(Message message); /** * TC[5,6] request to disable report generation * Telecommand to disable the report generation of event definitions + * @param message */ - void disableReportGeneration(uint16_t length, Event *eventID); + void disableReportGeneration(Message message); /** * TC[5,7] request to report the disabled event definitions * Note: No arguments, according to the standard. + * @param message */ - void requestListOfDisabledEvents(); + void requestListOfDisabledEvents(Message message); /** * TM[5,8] disabled event definitions report * Telemetry package of a report of the disabled event definitions + * @param message */ void listOfDisabledEventsReport(); diff --git a/src/Services/EventReportService.cpp b/src/Services/EventReportService.cpp index 37a41d5c..d49cef3c 100644 --- a/src/Services/EventReportService.cpp +++ b/src/Services/EventReportService.cpp @@ -9,7 +9,7 @@ void EventReportService::informativeEventReport(Event eventID, const uint8_t *data, uint8_t length) { // TM[5,1] - if (stateOfEvents[static_cast<uint16_t> (eventID)] == 1){ + if (stateOfEvents[static_cast<uint16_t> (eventID)] == 1) { Message report = createTM(1); report.appendEnum16(eventID); report.appendString(length, data); @@ -65,36 +65,53 @@ EventReportService::highSeverityAnomalyReport(Event eventID, const uint8_t *data } } -void EventReportService::enableReportGeneration(uint16_t length, Event *eventID) { +void EventReportService::enableReportGeneration(Message message) { // TC[5,5] - /** - * @todo: Report an error if length>numberOfEvents - */ - if (length <= numberOfEvents) { + if (message.serviceType == 5 && message.packetType == Message::TC && message.messageType == 5) { + /** + * @todo: Report an error if length > numberOfEvents + */ + uint16_t length = message.readUint16(); + Event eventID[length]; for (uint16_t i = 0; i < length; i++) { - stateOfEvents[static_cast<uint16_t> (eventID[i])] = 1; + eventID[i] = static_cast<Event >(message.readEnum16()); + } + if (length <= numberOfEvents) { + for (uint16_t i = 0; i < length; i++) { + stateOfEvents[static_cast<uint16_t> (eventID[i])] = 1; + } } + disabledEventsCount = stateOfEvents.size() - stateOfEvents.count(); } - disabledEventsCount = stateOfEvents.size() - stateOfEvents.count(); } -void EventReportService::disableReportGeneration(uint16_t length, Event *eventID) { +void EventReportService::disableReportGeneration(Message message) { // TC[5,6] - /** - * @todo: Report an error if length > numberOfEvents - */ - if (length <= numberOfEvents) { + if (message.serviceType == 5 && message.packetType == Message::TC && message.messageType + == 6) { + /** + * @todo: Report an error if length > numberOfEvents + */ + uint16_t length = message.readUint16(); + Event eventID[length]; for (uint16_t i = 0; i < length; i++) { - stateOfEvents[static_cast<uint16_t> (eventID[i])] = 0; + eventID[i] = static_cast<Event >(message.readEnum16()); } + if (length <= numberOfEvents) { + for (uint16_t i = 0; i < length; i++) { + stateOfEvents[static_cast<uint16_t> (eventID[i])] = 0; + } + } + disabledEventsCount = stateOfEvents.size() - stateOfEvents.count(); } - disabledEventsCount = stateOfEvents.size() - stateOfEvents.count(); } -void EventReportService::requestListOfDisabledEvents() { +void EventReportService::requestListOfDisabledEvents(Message message) { // TC[5,7] // I think this is all that is needed here. - listOfDisabledEventsReport(); + if (message.serviceType == 5 && message.packetType == Message::TC && message.messageType == 7) { + listOfDisabledEventsReport(); + } } void EventReportService::listOfDisabledEventsReport() { diff --git a/test/Services/EventReportService.cpp b/test/Services/EventReportService.cpp index fdadfae1..f326e768 100644 --- a/test/Services/EventReportService.cpp +++ b/test/Services/EventReportService.cpp @@ -92,7 +92,11 @@ TEST_CASE("Enable Report Generation TC[5,5]", "[service][st05]") { eventReportService.getStateOfEvents().reset(); EventReportService::Event eventID[] = {EventReportService::AssertionFail, EventReportService::LowSeverityUnknownEvent}; - eventReportService.enableReportGeneration(2, eventID); + Message message(5, 5, Message::TC, 1); + message.appendUint16(2); + message.appendEnum16(eventID[0]); + message.appendEnum16(eventID[1]); + eventReportService.enableReportGeneration(message); CHECK(eventReportService.getStateOfEvents()[2] == 1); CHECK(eventReportService.getStateOfEvents()[4] == 1); } @@ -101,7 +105,11 @@ TEST_CASE("Disable Report Generation TC[5,6]", "[service][st05]") { EventReportService eventReportService; EventReportService::Event eventID[] = {EventReportService::InformativeUnknownEvent, EventReportService::MediumSeverityUnknownEvent}; - eventReportService.disableReportGeneration(2, eventID); + Message message(5, 6, Message::TC, 1); + message.appendUint16(2); + message.appendEnum16(eventID[0]); + message.appendEnum16(eventID[1]); + eventReportService.disableReportGeneration(message); CHECK(eventReportService.getStateOfEvents()[0] == 0); CHECK(eventReportService.getStateOfEvents()[5] == 0); @@ -113,7 +121,8 @@ TEST_CASE("Disable Report Generation TC[5,6]", "[service][st05]") { TEST_CASE("Request list of disabled events TC[5,7]", "[service][st05]") { EventReportService eventReportService; - eventReportService.requestListOfDisabledEvents(); + Message message(5, 7, Message::TC, 1); + eventReportService.requestListOfDisabledEvents(message); REQUIRE(ServiceTests::hasOneMessage()); Message report = ServiceTests::get(0); @@ -125,8 +134,12 @@ TEST_CASE("List of Disabled Events Report TM[5,8]", "[service][st05]") { EventReportService eventReportService; EventReportService::Event eventID[] = {EventReportService::MCUStart, EventReportService::HighSeverityUnknownEvent}; + Message message(5, 6, Message::TC, 1); + message.appendUint16(2); + message.appendEnum16(eventID[0]); + message.appendEnum16(eventID[1]); // Disable 3rd and 6th - eventReportService.disableReportGeneration(2, eventID); + eventReportService.disableReportGeneration(message); eventReportService.listOfDisabledEventsReport(); REQUIRE(ServiceTests::hasOneMessage()); @@ -145,7 +158,10 @@ TEST_CASE("List of Disabled Events Report TM[5,8]", "[service][st05]") { TEST_CASE("List of observables 6.5.6", "[service][st05]") { EventReportService eventReportService; EventReportService::Event eventID[] = {EventReportService::HighSeverityUnknownEvent}; - eventReportService.disableReportGeneration(1, eventID); + Message message(5, 6, Message::TC, 1); + message.appendUint16(1); + message.appendEnum16(eventID[0]); + eventReportService.disableReportGeneration(message); const unsigned char eventReportData[] = "HelloWorld"; -- GitLab