diff --git a/src/Services/EventActionService.cpp b/src/Services/EventActionService.cpp index 6ac29c0531184da62bbd617f94189fb240995cf6..3f680a8bf5d2371c5d1f17d5fb2af59c052d0066 100644 --- a/src/Services/EventActionService.cpp +++ b/src/Services/EventActionService.cpp @@ -191,3 +191,36 @@ void EventActionService::executeAction(uint16_t eventID) { } } } + +void EventActionService::execute(const Message &message) { + switch (message.messageType) { + case 1: + addEventActionDefinitions(message); // TC[19,1] + break; + case 2: + deleteEventActionDefinitions(message); // TC[19,2] + break; + case 3: + deleteAllEventActionDefinitions(message); // TC[19,3] + break; + case 4: + enableEventActionDefinitions(message); // TC[19,4] + break; + case 5: + disableEventActionDefinitions(message); // TC[19,5] + break; + case 6: + requestEventActionDefinitionStatus(message); // TC[19,6] + break; + case 8: + enableEventActionFunction(message); // TC[19,8] + break; + case 9: + disableEventActionFunction(message); // TC[19,9] + break; + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +} + diff --git a/src/Services/EventReportService.cpp b/src/Services/EventReportService.cpp index f537f32988fe319ffb79f46f5985656f09868241..d036ba0a81054e2f468a71afef0230270c76d404 100644 --- a/src/Services/EventReportService.cpp +++ b/src/Services/EventReportService.cpp @@ -130,3 +130,17 @@ void EventReportService::listOfDisabledEventsReport() { storeMessage(report); } + +void EventReportService::execute(const Message &message) { + switch (message.messageType) { + case 5: enableReportGeneration(message); // TC[5,5] + break; + case 6: disableReportGeneration(message); // TC[5,6] + break; + case 7: requestListOfDisabledEvents(message); // TC[5,7] + break; + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +} \ No newline at end of file diff --git a/src/Services/FunctionManagementService.cpp b/src/Services/FunctionManagementService.cpp index 8dcc602792b45199d17bf95e53330905ebcfaab0..47b1406f1d275f9d95c16af675bb95b6fbf96ff9 100644 --- a/src/Services/FunctionManagementService.cpp +++ b/src/Services/FunctionManagementService.cpp @@ -50,3 +50,14 @@ void FunctionManagementService::include(String<FUNC_NAME_LENGTH> funcName, void( ErrorHandler::reportInternalError(ErrorHandler::InternalErrorType::FunctionMapFull); } } + +void FunctionManagementService::execute(Message &message) { + switch (message.messageType) { + case 1: + call(message); // TC[8,1] + break; + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +} diff --git a/src/Services/MemoryManagementService.cpp b/src/Services/MemoryManagementService.cpp index c29c8fc1fc6a60efda6386a10d20c733d7ad78b2..6bbb7f7c8389a12f1477f56cee88f9424505f114 100644 --- a/src/Services/MemoryManagementService.cpp +++ b/src/Services/MemoryManagementService.cpp @@ -230,3 +230,20 @@ inline bool MemoryManagementService::dataValidator(const uint8_t *data, uint16_t uint16_t length) { return (checksum == CRCHelper::calculateCRC(data, length)); } + +void MemoryManagementService::RawDataMemoryManagement::execute(Message &message) { + switch (message.messageType) { + case 2: + loadRawData(message); // TC[6,2] + break; + case 5: + dumpRawData(message); // TC[6,5] + break; + case 9: + checkRawData(message); // TC[6,9] + break; + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +} diff --git a/src/Services/ParameterService.cpp b/src/Services/ParameterService.cpp index b32fa5b589adf76d9910c7fd3ca1c3aa33803f38..b193d0754ec3468657564ab8a489130b9d5c4eca 100644 --- a/src/Services/ParameterService.cpp +++ b/src/Services/ParameterService.cpp @@ -119,3 +119,16 @@ uint16_t ParameterService::numOfValidIds(Message idMsg) { return validIds; } + +void ParameterService::execute(Message &message) { + switch (message.messageType) { + case 1: + reportParameterIds(message); // TC[20,1] + break; + case 3: + setParameterIds(message); // TC[20,3] + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +} diff --git a/src/Services/RequestVerificationService.cpp b/src/Services/RequestVerificationService.cpp index 465b1c5635ed2ac2164433cf282defa377e7b838..733dd0babd3dcceeda6e62a805ede5b2d68f3e0d 100644 --- a/src/Services/RequestVerificationService.cpp +++ b/src/Services/RequestVerificationService.cpp @@ -151,40 +151,3 @@ RequestVerificationService::failRoutingVerification(const Message &request, storeMessage(report); } - -// TODO: This function should not be here. These are TM messages, but `execute` should accept a -// TC message. -void RequestVerificationService::execute(const Message &message) { - switch (message.messageType) { - case 1: - successAcceptanceVerification(message); - break; - //case 2: - //failAcceptanceVerification(message); - //break; - case 3: - successStartExecutionVerification(message); - break; - //case 4: - //failStartExecutionVerification(message); - //break; - //case 5: - //successProgressExecutionVerification(message); - //break; - //case 6: - //failProgressExecutionVerification(message); - //break; - case 7: - successCompletionExecutionVerification(message); - break; - //case 8: - //failCompletionExecutionVerification(message); - //break; - //case 10: - //failRoutingVerification(message); - //break; - default: - ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); - break; - } -} diff --git a/src/Services/TestService.cpp b/src/Services/TestService.cpp index 224c2614d6a29742bb57162e1d96669bdb3ffa21..74085e4e464401beed0df0a856e6e812f77690ce 100644 --- a/src/Services/TestService.cpp +++ b/src/Services/TestService.cpp @@ -27,9 +27,7 @@ void TestService::execute(Message &message) { onBoardConnection(message); break; default: - // cout is very bad for embedded systems - std::cout << "Error: There is not such a message type in ST[17] test"; - assert(false); + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); break; } } diff --git a/src/Services/TimeBasedSchedulingService.cpp b/src/Services/TimeBasedSchedulingService.cpp index a4b74861f91167a5dbbcd942daa51405e66265d5..d88dd52d640fe498133800c1410106469f6f5088 100644 --- a/src/Services/TimeBasedSchedulingService.cpp +++ b/src/Services/TimeBasedSchedulingService.cpp @@ -281,3 +281,29 @@ void TimeBasedSchedulingService::summaryReportActivitiesByID(Message &request) { } storeMessage(report); // Save the report } + +void TimeBasedSchedulingService::execute(Message &message) { + switch (message.messageType) { + case 1: + enableScheduleExecution(message); // TC[11,1] + break; + case 2: + disableScheduleExecution(message); // TC[11,2] + break; + case 3: + resetSchedule(message); // TC[11,3] + break; + case 4: + insertActivities(message); // TC[11,4] + break; + case 15: + timeShiftActivitiesByID(message); // TC[11,15] + break; + case 16: + detailReportAllActivities(message); // TC[11,16] + break; + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +} diff --git a/src/Services/TimeManagementService.cpp b/src/Services/TimeManagementService.cpp index c6f922953ba4b434dd8a2b6461f5eab05d435aea..2d1a5a63263418d598eda6c75a55ed08d5e64d73 100644 --- a/src/Services/TimeManagementService.cpp +++ b/src/Services/TimeManagementService.cpp @@ -25,3 +25,14 @@ TimeAndDate TimeManagementService::cdsTimeRequest(Message &message) { return timeInfo; } + +void TimeManagementService::execute(Message &message) { + switch (message.messageType) { + case 128: + cdsTimeRequest(message); // TC[9,128] + break; + default: + ErrorHandler::reportInternalError(ErrorHandler::UnknownMessageType); + break; + } +}