From 8c1168524049ef0e5b2144b6c04aeb01538053c2 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 14 Aug 2023 21:19:35 +0200 Subject: [PATCH] introduce handling for full target queue --- src/fsfw/cfdp/handler/SourceHandler.cpp | 5 ++++- src/fsfw/cfdp/handler/defs.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/fsfw/cfdp/handler/SourceHandler.cpp b/src/fsfw/cfdp/handler/SourceHandler.cpp index 959dfb00..b9d06b92 100644 --- a/src/fsfw/cfdp/handler/SourceHandler.cpp +++ b/src/fsfw/cfdp/handler/SourceHandler.cpp @@ -333,7 +333,10 @@ ReturnValue_t cfdp::SourceHandler::sendGenericPdu(const SerializeIF& pdu) { TmTcMessage tmMsg(storeId); result = fsfwParams.msgQueue->sendMessage(fsfwParams.packetDest.getReportReceptionQueue(), &tmMsg); - if (result == OK) { + if (result == MessageQueueIF::FULL) { + fsmResult.callStatus = CallStatus::CALL_AFTER_DELAY; + return TARGET_MSG_QUEUE_FULL; + } else if (result == OK) { fsmResult.packetsSent += 1; } return result; diff --git a/src/fsfw/cfdp/handler/defs.h b/src/fsfw/cfdp/handler/defs.h index c1a3fbfd..7c1c4bf7 100644 --- a/src/fsfw/cfdp/handler/defs.h +++ b/src/fsfw/cfdp/handler/defs.h @@ -67,6 +67,7 @@ static constexpr ReturnValue_t FILE_SEGMENT_LEN_INVALID = returnvalue::makeCode( static constexpr ReturnValue_t SOURCE_NAME_EMPTY = returnvalue::makeCode(CID, 3); static constexpr ReturnValue_t DEST_NAME_EMPTY = returnvalue::makeCode(CID, 4); static constexpr ReturnValue_t WRONG_REMOTE_CFG_ENTITY_ID = returnvalue::makeCode(CID, 5); +static constexpr ReturnValue_t TARGET_MSG_QUEUE_FULL = returnvalue::makeCode(CID, 6); } // namespace cfdp #endif // FSFW_CFDP_HANDLER_DEFS_H