diff --git a/src/fsfw/cfdp/handler/SourceHandler.cpp b/src/fsfw/cfdp/handler/SourceHandler.cpp index 0ba10f5a..9460f65a 100644 --- a/src/fsfw/cfdp/handler/SourceHandler.cpp +++ b/src/fsfw/cfdp/handler/SourceHandler.cpp @@ -353,8 +353,8 @@ cfdp::CfdpState cfdp::SourceHandler::getState() const { return state; } cfdp::SourceHandler::TransactionStep cfdp::SourceHandler::getStep() const { return step; } void cfdp::SourceHandler::addError(ReturnValue_t error) { - if (errorIndex < fsmResult.errorCodes.size()) { - fsmResult.errorCodes[errorIndex] = error; - errorIndex++; + if (fsmResult.errors < fsmResult.errorCodes.size()) { + fsmResult.errorCodes[fsmResult.errors] = error; + fsmResult.errors++; } } diff --git a/src/fsfw/cfdp/handler/SourceHandler.h b/src/fsfw/cfdp/handler/SourceHandler.h index 8e491d9d..3aaaf789 100644 --- a/src/fsfw/cfdp/handler/SourceHandler.h +++ b/src/fsfw/cfdp/handler/SourceHandler.h @@ -92,7 +92,6 @@ class SourceHandler { std::array fileBuf{}; SourceHandlerParams sourceParams; cfdp::FsfwParams fsfwParams; - uint8_t errorIndex = 0; FsmResult fsmResult; FsmResult& fsmNacked(); diff --git a/unittests/cfdp/handler/testSourceHandler.cpp b/unittests/cfdp/handler/testSourceHandler.cpp index 1e32b769..01d29a56 100644 --- a/unittests/cfdp/handler/testSourceHandler.cpp +++ b/unittests/cfdp/handler/testSourceHandler.cpp @@ -66,6 +66,7 @@ TEST_CASE("CFDP Source Handler", "[cfdp]") { auto onePduSentCheck = [&](SourceHandler::FsmResult& fsmResult, TmTcMessage& tmtcMessage, const uint8_t** pduPtr) { + CHECK(fsmResult.errors == 0); CHECK(fsmResult.packetsSent == 1); CHECK(mqMock.numberOfSentMessages() == 1); REQUIRE(mqMock.getNextSentMessage(destQueueId, tmtcMessage) == OK); @@ -75,6 +76,7 @@ TEST_CASE("CFDP Source Handler", "[cfdp]") { return std::move(accessor); }; auto genericMetadataCheck = [&](SourceHandler::FsmResult& fsmResult, size_t expectedFileSize) { + CHECK(fsmResult.errors == 0); TmTcMessage tmtcMessage; const uint8_t* pduPtr; auto accessor = onePduSentCheck(fsmResult, tmtcMessage, &pduPtr); @@ -97,6 +99,7 @@ TEST_CASE("CFDP Source Handler", "[cfdp]") { }; auto genericEofCheck = [&](SourceHandler::FsmResult& fsmResult, size_t expectedFileSize, uint32_t expectedChecksum) { + CHECK(fsmResult.errors == 0); TmTcMessage tmtcMessage; const uint8_t* pduPtr; auto accessor = onePduSentCheck(fsmResult, tmtcMessage, &pduPtr);