diff --git a/action/ActionHelper.cpp b/action/ActionHelper.cpp index 0df5f2d4..026df4e1 100644 --- a/action/ActionHelper.cpp +++ b/action/ActionHelper.cpp @@ -101,7 +101,8 @@ ReturnValue_t ActionHelper::reportData(MessageQueueId_t reportTo, //TODO Service Implementation sucks at the moment if (hideSender){ - result = MessageQueueSenderIF::sendMessage(reportTo, &reply); + result = MessageQueueSenderIF::sendMessage(reportTo, &reply, + MessageQueueMessage::MAX_MESSAGE_SIZE); } else { result = queueToUse->sendMessage(reportTo, &reply); } diff --git a/datalinklayer/MapPacketExtraction.cpp b/datalinklayer/MapPacketExtraction.cpp index 4ea45e89..87b46556 100644 --- a/datalinklayer/MapPacketExtraction.cpp +++ b/datalinklayer/MapPacketExtraction.cpp @@ -117,7 +117,8 @@ ReturnValue_t MapPacketExtraction::sendCompletePacket(uint8_t* data, ReturnValue_t status = this->packetStore->addData(&store_id, data, size); if (status == RETURN_OK) { TmTcMessage message(store_id); - status = MessageQueueSenderIF::sendMessage(tcQueueId,&message); + status = MessageQueueSenderIF::sendMessage(tcQueueId,&message, + MessageQueueMessage::MAX_MESSAGE_SIZE); } return status; } diff --git a/ipc/MessageQueueSenderIF.h b/ipc/MessageQueueSenderIF.h index 3172454f..912f4d7e 100644 --- a/ipc/MessageQueueSenderIF.h +++ b/ipc/MessageQueueSenderIF.h @@ -15,7 +15,7 @@ public: * Must be implemented by a subclass. */ static ReturnValue_t sendMessage(MessageQueueId_t sendTo, - MessageQueueMessageIF* message, + MessageQueueMessageIF* message, size_t maxMessageSize, MessageQueueId_t sentFrom = MessageQueueMessageIF::NO_QUEUE, bool ignoreFault=false); private: diff --git a/monitoring/LimitViolationReporter.cpp b/monitoring/LimitViolationReporter.cpp index 1378d754..c6e2b5db 100644 --- a/monitoring/LimitViolationReporter.cpp +++ b/monitoring/LimitViolationReporter.cpp @@ -34,7 +34,8 @@ ReturnValue_t LimitViolationReporter::sendLimitViolationReport(const SerializeIF MessageQueueMessage message; CommandMessage report(&message); MonitoringMessage::setLimitViolationReport(&report, storeId); - return MessageQueueSenderIF::sendMessage(reportQueue, &report); + return MessageQueueSenderIF::sendMessage(reportQueue, &report, + MessageQueueMessage::MAX_MESSAGE_SIZE); } ReturnValue_t LimitViolationReporter::checkClassLoaded() { diff --git a/osal/FreeRTOS/MessageQueue.cpp b/osal/FreeRTOS/MessageQueue.cpp index cf6130f8..0280869d 100644 --- a/osal/FreeRTOS/MessageQueue.cpp +++ b/osal/FreeRTOS/MessageQueue.cpp @@ -50,7 +50,7 @@ ReturnValue_t MessageQueue::reply(MessageQueueMessageIF* message) { ReturnValue_t MessageQueue::sendMessageFrom(MessageQueueId_t sendTo, MessageQueueMessageIF* message, MessageQueueId_t sentFrom, bool ignoreFault) { - return sendMessageFromMessageQueue(sendTo, message, sentFrom, + return sendMessageFromMessageQueue(sendTo, message, maxMessageSize, sentFrom, ignoreFault, callContext); } @@ -121,11 +121,11 @@ bool MessageQueue::isDefaultDestinationSet() const { // static core function to send messages. ReturnValue_t MessageQueue::sendMessageFromMessageQueue(MessageQueueId_t sendTo, - MessageQueueMessageIF* message, MessageQueueId_t sentFrom, - bool ignoreFault, CallContext callContext) { + MessageQueueMessageIF* message, size_t maxSize, + MessageQueueId_t sentFrom, bool ignoreFault, CallContext callContext) { message->setSender(sentFrom); BaseType_t result; - if(message->getMaximumMessageSize() > maxMessageSize) { + if(message->getMaximumMessageSize() > maxSize) { sif::error << "MessageQueue::sendMessageFromMessageQueue: Message size" "too large for queue!" << std::endl; return HasReturnvaluesIF::RETURN_FAILED; diff --git a/osal/FreeRTOS/MessageQueue.h b/osal/FreeRTOS/MessageQueue.h index b7e52bb3..e87e884f 100644 --- a/osal/FreeRTOS/MessageQueue.h +++ b/osal/FreeRTOS/MessageQueue.h @@ -194,8 +194,9 @@ protected: * @param context Specify whether call is made from task or from an ISR. */ static ReturnValue_t sendMessageFromMessageQueue(MessageQueueId_t sendTo, - MessageQueueMessageIF* message, MessageQueueId_t sentFrom = NO_QUEUE, - bool ignoreFault=false, CallContext callContext = CallContext::TASK); + MessageQueueMessageIF* message, size_t maxSize, + MessageQueueId_t sentFrom = NO_QUEUE, bool ignoreFault=false, + CallContext callContext = CallContext::TASK); static ReturnValue_t handleSendResult(BaseType_t result, bool ignoreFault); diff --git a/osal/FreeRTOS/QueueFactory.cpp b/osal/FreeRTOS/QueueFactory.cpp index beb4969b..ec678890 100644 --- a/osal/FreeRTOS/QueueFactory.cpp +++ b/osal/FreeRTOS/QueueFactory.cpp @@ -7,9 +7,9 @@ QueueFactory* QueueFactory::factoryInstance = nullptr; ReturnValue_t MessageQueueSenderIF::sendMessage(MessageQueueId_t sendTo, - MessageQueueMessageIF* message, MessageQueueId_t sentFrom, - bool ignoreFault) { - return MessageQueue::sendMessageFromMessageQueue(sendTo,message, + MessageQueueMessageIF* message, size_t maxSize, + MessageQueueId_t sentFrom, bool ignoreFault) { + return MessageQueue::sendMessageFromMessageQueue(sendTo,message, maxSize, sentFrom,ignoreFault); } diff --git a/tmtcservices/VerificationReporter.cpp b/tmtcservices/VerificationReporter.cpp index b0247944..a54c1f8d 100644 --- a/tmtcservices/VerificationReporter.cpp +++ b/tmtcservices/VerificationReporter.cpp @@ -22,7 +22,8 @@ void VerificationReporter::sendSuccessReport(uint8_t set_report_id, current_packet->getAcknowledgeFlags(), current_packet->getPacketId(), current_packet->getPacketSequenceControl(), 0, set_step); - ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); + ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, + &message, MessageQueueMessage::MAX_MESSAGE_SIZE); if (status != HasReturnvaluesIF::RETURN_OK) { sif::error << "VerificationReporter::sendSuccessReport: Error writing " "to queue. Code: " << std::hex << (uint16_t) status << std::endl; @@ -37,7 +38,8 @@ void VerificationReporter::sendSuccessReport(uint8_t set_report_id, } PusVerificationMessage message(set_report_id, ackFlags, tcPacketId, tcSequenceControl, 0, set_step); - ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); + ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, + &message, MessageQueueMessage::MAX_MESSAGE_SIZE); if (status != HasReturnvaluesIF::RETURN_OK) { sif::error << "VerificationReporter::sendSuccessReport: Error writing " "to queue. Code: " << std::hex << (uint16_t) status << std::endl; @@ -55,7 +57,8 @@ void VerificationReporter::sendFailureReport(uint8_t report_id, current_packet->getPacketId(), current_packet->getPacketSequenceControl(), error_code, step, parameter1, parameter2); - ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); + ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, + &message, MessageQueueMessage::MAX_MESSAGE_SIZE); if (status != HasReturnvaluesIF::RETURN_OK) { sif::error << "VerificationReporter::sendFailureReport Error writing to queue. Code: " @@ -72,7 +75,8 @@ void VerificationReporter::sendFailureReport(uint8_t report_id, } PusVerificationMessage message(report_id, ackFlags, tcPacketId, tcSequenceControl, error_code, step, parameter1, parameter2); - ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, &message); + ReturnValue_t status = MessageQueueSenderIF::sendMessage(acknowledgeQueue, + &message, MessageQueueMessage::MAX_MESSAGE_SIZE); if (status != HasReturnvaluesIF::RETURN_OK) { sif::error << "VerificationReporter::sendFailureReport Error writing to queue. Code: "