diff --git a/src/fsfw/cfdp/handler/SourceHandler.cpp b/src/fsfw/cfdp/handler/SourceHandler.cpp index 05c4f315..e439cc29 100644 --- a/src/fsfw/cfdp/handler/SourceHandler.cpp +++ b/src/fsfw/cfdp/handler/SourceHandler.cpp @@ -83,5 +83,19 @@ ReturnValue_t cfdp::SourceHandler::checksumGeneration() { } ReturnValue_t cfdp::SourceHandler::putRequest(PutRequestFull& putRequest, RemoteEntityCfg& cfg) { + transactionParams.closureRequested = putRequest.closureRequested; + transactionParams.destId = putRequest.destId; + transactionParams.transmissionMode = putRequest.transmissionMode; + if (transactionParams.transmissionMode == TransmissionMode::ACKNOWLEDGED) { + } + if (putRequest.sourceNameSize > transactionParams.sourceName.size()) { + return FAILED; + } + std::memcpy(transactionParams.sourceName.data(), putRequest.sourceName, + putRequest.sourceNameSize); + if (putRequest.destNameSize > transactionParams.destName.size()) { + return FAILED; + } + std::memcpy(transactionParams.destName.data(), putRequest.destName, putRequest.destNameSize); return 0; } diff --git a/src/fsfw/cfdp/handler/SourceHandler.h b/src/fsfw/cfdp/handler/SourceHandler.h index eced72be..197f0978 100644 --- a/src/fsfw/cfdp/handler/SourceHandler.h +++ b/src/fsfw/cfdp/handler/SourceHandler.h @@ -55,6 +55,9 @@ class SourceHandler { std::vector sourceName; std::vector destName; cfdp::FileSize fileSize; + EntityId destId; + TransmissionMode transmissionMode; + bool closureRequested; } transactionParams; cfdp::CfdpState state = cfdp::CfdpState::IDLE; TransactionStep step = TransactionStep::IDLE;