From 1d29c40d0063e8fbf3dcd8c16dbfb636a6b581b1 Mon Sep 17 00:00:00 2001 From: hiluluk <thodkatz@gmail.com> Date: Thu, 4 Apr 2019 19:55:01 +0300 Subject: [PATCH] Define the execute() --- src/Services/EventActionService.cpp | 33 ++++++++++++++++++ src/Services/EventReportService.cpp | 14 ++++++++ src/Services/FunctionManagementService.cpp | 11 ++++++ src/Services/MemoryManagementService.cpp | 17 ++++++++++ src/Services/ParameterService.cpp | 13 ++++++++ src/Services/RequestVerificationService.cpp | 37 --------------------- src/Services/TestService.cpp | 4 +-- src/Services/TimeBasedSchedulingService.cpp | 26 +++++++++++++++ src/Services/TimeManagementService.cpp | 11 ++++++ 9 files changed, 126 insertions(+), 40 deletions(-) diff --git a/src/Services/EventActionService.cpp b/src/Services/EventActionService.cpp index 6ac29c05..3f680a8b 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 f537f329..d036ba0a 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 8dcc6027..47b1406f 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 c29c8fc1..6bbb7f7c 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 b32fa5b5..b193d075 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 465b1c56..733dd0ba 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 224c2614..74085e4e 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 a4b74861..d88dd52d 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 c6f92295..2d1a5a63 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; + } +} -- GitLab