diff --git a/src/Services/ParameterService.cpp b/src/Services/ParameterService.cpp index 90e30a8d07516ac3316287af56001863061c0efe..84acc6aa65b1e6ff652ab6cfa9b7429d53ee6aba 100644 --- a/src/Services/ParameterService.cpp +++ b/src/Services/ParameterService.cpp @@ -37,12 +37,15 @@ ParameterService::ParameterService() { void ParameterService::reportParameterIds(Message paramIds) { Message reqParam(20, 2, Message::TM, 1); // empty TM[20, 2] parameter report message - // assertion: correct message, packet and service type (at failure throws an - // InternalError::UnacceptablePacket) - ErrorHandler::assertInternal(paramIds.packetType == Message::TC - && paramIds.messageType == 1 - && paramIds.serviceType == 20, - ErrorHandler::InternalErrorType::UnacceptablePacket); + // assertion: correct message, packet and service type (at failure throws an + // InternalError::UnacceptablePacket) + ErrorHandler::assertRequest(paramIds.packetType == Message::TC, paramIds, + ErrorHandler::AcceptanceErrorType::UnacceptableMessage); + ErrorHandler::assertRequest(paramIds.messageType == 1, paramIds, + ErrorHandler::AcceptanceErrorType::UnacceptableMessage); + ErrorHandler::assertRequest(paramIds.serviceType == 20, paramIds, + ErrorHandler::AcceptanceErrorType::UnacceptableMessage); + uint16_t ids = paramIds.readUint16(); reqParam.appendUint16(numOfValidIds(paramIds)); // include the number of valid IDs @@ -52,10 +55,10 @@ void ParameterService::reportParameterIds(Message paramIds) { if (paramsList.find(currId) != paramsList.end()) { reqParam.appendUint16(currId); reqParam.appendUint32(paramsList[currId].settingData); - } - - else { - continue; // generate failure of execution notification (todo) for ST[06] & ignore + } else { + ErrorHandler::reportError(paramIds, + ErrorHandler::ExecutionStartErrorType::UnknownExecutionStartError); + continue; // generate failed start of execution notification & ignore } } @@ -66,10 +69,14 @@ void ParameterService::setParameterIds(Message newParamValues) { // assertion: correct message, packet and service type (at failure throws an // InternalError::UnacceptablePacket which gets logged) - ErrorHandler::assertInternal(newParamValues.packetType == Message::TC - && newParamValues.messageType == 1 - && newParamValues.serviceType == 20, - ErrorHandler::InternalErrorType::UnacceptablePacket); + + ErrorHandler::assertRequest(newParamValues.packetType == Message::TC, newParamValues, + ErrorHandler::AcceptanceErrorType::UnacceptableMessage); + ErrorHandler::assertRequest(newParamValues.messageType == 3, newParamValues, + ErrorHandler::AcceptanceErrorType::UnacceptableMessage); + ErrorHandler::assertRequest(newParamValues.serviceType == 20, newParamValues, + ErrorHandler::AcceptanceErrorType::UnacceptableMessage); + uint16_t ids = newParamValues.readUint16(); //get number of ID's for (int i = 0; i < ids; i++) { @@ -77,10 +84,10 @@ void ParameterService::setParameterIds(Message newParamValues) { if (paramsList.find(currId) != paramsList.end()) { paramsList[currId].settingData = newParamValues.readUint32(); - } - - else { - continue; // generate failure of execution notification (todo) for ST[06] & ignore + } else { + ErrorHandler::reportError(newParamValues, + ErrorHandler::ExecutionStartErrorType::UnknownExecutionStartError); + continue; // generate failed start of execution notification & ignore } } }