From 947f2b86855bb75308dd69bbcb748013cfdabeff Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 26 Jul 2023 17:47:27 +0200 Subject: [PATCH] add some additional API --- src/fsfw/cfdp/handler/PutRequest.cpp | 18 ++++++++++++++++++ src/fsfw/cfdp/handler/PutRequest.h | 17 +++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/fsfw/cfdp/handler/PutRequest.cpp b/src/fsfw/cfdp/handler/PutRequest.cpp index 9cda11e3..e828f5e0 100644 --- a/src/fsfw/cfdp/handler/PutRequest.cpp +++ b/src/fsfw/cfdp/handler/PutRequest.cpp @@ -12,6 +12,10 @@ cfdp::PutRequest::PutRequest(cfdp::EntityId destId, const uint8_t *msgsToUser, fsRequestsTotalSize(fsRequestsSize), fsRequestStartPtr(fsRequests) {} +cfdp::PutRequest::PutRequest(cfdp::EntityId destId, cfdp::StringLv &sourceName, + cfdp::StringLv &destName) + : destId(std::move(destId)), sourceName(sourceName), destName(destName) {} + [[nodiscard]] bool cfdp::PutRequest::isMetadataOnly() const { return metadataOnly; } ReturnValue_t cfdp::PutRequest::serialize(uint8_t **buffer, size_t *size, size_t maxSize, @@ -157,3 +161,17 @@ const cfdp::StringLv &cfdp::PutRequest::getDestName() const { return destName; } const cfdp::EntityId &cfdp::PutRequest::getDestId() const { return destId; } void cfdp::PutRequest::setDestId(cfdp::EntityId id) { destId = std::move(id); } + +void cfdp::PutRequest::setTransmissionMode(cfdp::TransmissionMode transmissionMode_) { + this->transmissionMode = transmissionMode_; + hasTransmissionMode = true; +} + +void cfdp::PutRequest::clearTransmissionMode() { hasTransmissionMode = false; } + +void cfdp::PutRequest::clearClosureRequest() { hasClosureRequested = false; } + +void cfdp::PutRequest::setClosureRequest(bool closureRequested_) { + this->closureRequested = closureRequested_; + hasClosureRequested = true; +} diff --git a/src/fsfw/cfdp/handler/PutRequest.h b/src/fsfw/cfdp/handler/PutRequest.h index a64b35d3..76e4bbf2 100644 --- a/src/fsfw/cfdp/handler/PutRequest.h +++ b/src/fsfw/cfdp/handler/PutRequest.h @@ -21,6 +21,14 @@ class PutRequest : public SerializeIF { */ PutRequest(EntityId destId, const uint8_t* msgsToUser, size_t msgsToUserTotalSize, const uint8_t* fsRequests, size_t fsRequestsSize); + /** + * Put request to initiate file transfers. + * @param destId + * @param sourceName + * @param destName + */ + PutRequest(EntityId destId, cfdp::StringLv& sourceName, cfdp::StringLv& destName); + /** * Default constructor for deserialization. */ @@ -36,6 +44,11 @@ class PutRequest : public SerializeIF { [[nodiscard]] const cfdp::StringLv& getSourceName() const; [[nodiscard]] const cfdp::StringLv& getDestName() const; + void setTransmissionMode(cfdp::TransmissionMode transmissionMode); + void clearTransmissionMode(); + void setClosureRequest(bool closureRequested); + void clearClosureRequest(); + [[nodiscard]] bool isMetadataOnly() const; [[nodiscard]] const EntityId& getDestId() const; @@ -48,10 +61,6 @@ class PutRequest : public SerializeIF { cfdp::StringLv sourceName; cfdp::StringLv destName; - // const char* destName = nullptr; - // uint64_t destNameSize = 0; - // const char* sourceName = nullptr; - // uint64_t sourceNameSize = 0; bool hasTransmissionMode = false; uint8_t transmissionMode = TransmissionMode::UNACKNOWLEDGED; bool hasClosureRequested = false;