diff --git a/osal/FreeRTOS/MessageQueue.cpp b/osal/FreeRTOS/MessageQueue.cpp index 8eb669ed8..e9f3871e2 100644 --- a/osal/FreeRTOS/MessageQueue.cpp +++ b/osal/FreeRTOS/MessageQueue.cpp @@ -123,11 +123,20 @@ bool MessageQueue::isDefaultDestinationSet() const { ReturnValue_t MessageQueue::sendMessageFromMessageQueue(MessageQueueId_t sendTo, MessageQueueMessageIF* message, MessageQueueId_t sentFrom, bool ignoreFault, CallContext callContext) { + BaseType_t result = pdFALSE; + QueueHandle_t destination = nullptr; + + if(sendTo == MessageQueueIF::NO_QUEUE) { + return MessageQueueIF::DESTINVATION_INVALID; + } + else { + destination = reinterpret_cast(sendTo); + } message->setSender(sentFrom); - BaseType_t result; + if(callContext == CallContext::TASK) { - result = xQueueSendToBack(reinterpret_cast(sendTo), + result = xQueueSendToBack(destination, static_cast(message->getBuffer()), 0); } else {