additional ctor for space packet creator
This commit is contained in:
parent
d7a2eada94
commit
0c5f623780
@ -74,7 +74,7 @@ class SerializeAdapter {
|
|||||||
return HasReturnvaluesIF::RETURN_FAILED;
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||||||
}
|
}
|
||||||
InternalSerializeAdapter<T, std::is_base_of<SerializeIF, T>::value> adapter;
|
InternalSerializeAdapter<T, std::is_base_of<SerializeIF, T>::value> adapter;
|
||||||
uint8_t **tempPtr = const_cast<uint8_t **>(&buffer);
|
auto **tempPtr = const_cast<uint8_t **>(&buffer);
|
||||||
size_t tmpSize = 0;
|
size_t tmpSize = 0;
|
||||||
ReturnValue_t result = adapter.serialize(object, tempPtr, &tmpSize, maxSize, streamEndianness);
|
ReturnValue_t result = adapter.serialize(object, tempPtr, &tmpSize, maxSize, streamEndianness);
|
||||||
if (serSize != nullptr) {
|
if (serSize != nullptr) {
|
||||||
@ -232,7 +232,7 @@ class SerializeAdapter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t getSerializedSize(const T *object) { return sizeof(T); }
|
uint32_t getSerializedSize(const T *) { return sizeof(T); }
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3,11 +3,30 @@
|
|||||||
#include "fsfw/serialize/SerializeAdapter.h"
|
#include "fsfw/serialize/SerializeAdapter.h"
|
||||||
|
|
||||||
SpacePacketCreator::SpacePacketCreator(uint16_t packetId_, uint16_t packetSeqCtrl_,
|
SpacePacketCreator::SpacePacketCreator(uint16_t packetId_, uint16_t packetSeqCtrl_,
|
||||||
uint16_t packetLen_, uint8_t version_) {
|
uint16_t dataLen_, uint8_t version_) {
|
||||||
packetId = packetId_;
|
packetId = packetId_;
|
||||||
packetSeqCtrl = packetSeqCtrl_;
|
packetSeqCtrl = packetSeqCtrl_;
|
||||||
packetLen = packetLen_;
|
dataLen = dataLen_;
|
||||||
version = version_;
|
version = version_;
|
||||||
|
valid = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
SpacePacketCreator::SpacePacketCreator(ccsds::PacketType packetType, bool secHeaderFlag,
|
||||||
|
uint16_t apid, ccsds::SequenceFlags seqFlags,
|
||||||
|
uint16_t seqCount, uint16_t dataLen_, uint8_t version_) {
|
||||||
|
if (apid > ccsds::LIMIT_APID) {
|
||||||
|
valid = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (seqCount > ccsds::LIMIT_SEQUENCE_COUNT) {
|
||||||
|
valid = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
version = version_;
|
||||||
|
packetId =
|
||||||
|
(version_ << 13) | (static_cast<uint8_t>(packetType) << 12) | (secHeaderFlag << 11) | apid;
|
||||||
|
packetSeqCtrl = static_cast<uint8_t>(seqFlags) << 14 | seqCount;
|
||||||
|
dataLen = dataLen_;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t SpacePacketCreator::getPacketId() const { return 0; }
|
uint16_t SpacePacketCreator::getPacketId() const { return 0; }
|
||||||
@ -26,7 +45,7 @@ ReturnValue_t SpacePacketCreator::serialize(uint8_t **buffer, size_t *size, size
|
|||||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
return SerializeAdapter::serialize(&packetLen, buffer, size, maxSize, streamEndianness);
|
return SerializeAdapter::serialize(&dataLen, buffer, size, maxSize, streamEndianness);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t SpacePacketCreator::getSerializedSize() const { return 0; }
|
size_t SpacePacketCreator::getSerializedSize() const { return 0; }
|
||||||
|
@ -6,21 +6,25 @@
|
|||||||
|
|
||||||
class SpacePacketCreator : public SerializeIF, public SpacePacketIF {
|
class SpacePacketCreator : public SerializeIF, public SpacePacketIF {
|
||||||
public:
|
public:
|
||||||
SpacePacketCreator(uint16_t packetId, uint16_t packetSeqCtrl, uint16_t packetLen,
|
SpacePacketCreator(ccsds::PacketType packetType, bool secHeaderFlag, uint16_t apid,
|
||||||
|
ccsds::SequenceFlags seqFlags, uint16_t seqCount, uint16_t dataLen,
|
||||||
uint8_t version = 0);
|
uint8_t version = 0);
|
||||||
|
SpacePacketCreator(uint16_t packetId, uint16_t packetSeqCtrl, uint16_t dataLen,
|
||||||
|
uint8_t version = 0);
|
||||||
|
bool valid;
|
||||||
[[nodiscard]] uint16_t getPacketId() const override;
|
[[nodiscard]] uint16_t getPacketId() const override;
|
||||||
[[nodiscard]] uint16_t getPacketSeqCtrl() const override;
|
[[nodiscard]] uint16_t getPacketSeqCtrl() const override;
|
||||||
[[nodiscard]] uint16_t getPacketDataLen() const override;
|
[[nodiscard]] uint16_t getPacketDataLen() const override;
|
||||||
ReturnValue_t serialize(uint8_t **buffer, size_t *size, size_t maxSize,
|
ReturnValue_t serialize(uint8_t **buffer, size_t *size, size_t maxSize,
|
||||||
Endianness streamEndianness) const override;
|
Endianness streamEndianness) const override;
|
||||||
size_t getSerializedSize() const override;
|
[[nodiscard]] size_t getSerializedSize() const override;
|
||||||
ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
|
ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
|
||||||
Endianness streamEndianness) override;
|
Endianness streamEndianness) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint16_t packetId;
|
uint16_t packetId;
|
||||||
uint16_t packetSeqCtrl;
|
uint16_t packetSeqCtrl;
|
||||||
uint16_t packetLen;
|
uint16_t dataLen;
|
||||||
uint8_t version;
|
uint8_t version;
|
||||||
};
|
};
|
||||||
#endif // FSFW_TMTCPACKET_SPACEPACKETCREATOR_H
|
#endif // FSFW_TMTCPACKET_SPACEPACKETCREATOR_H
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
|
#include "fsfw/tmtcpacket/SpacePacketCreator.h"
|
||||||
#include "fsfw/tmtcpacket/SpacePacketReader.h"
|
#include "fsfw/tmtcpacket/SpacePacketReader.h"
|
||||||
|
|
||||||
TEST_CASE("CCSDS Test", "[ccsds]") {
|
TEST_CASE("CCSDS Test", "[ccsds]") {
|
||||||
@ -11,5 +12,9 @@ TEST_CASE("CCSDS Test", "[ccsds]") {
|
|||||||
REQUIRE(ccsds::getTmSpacePacketIdFromApid(0x7ff) == 0xfff);
|
REQUIRE(ccsds::getTmSpacePacketIdFromApid(0x7ff) == 0xfff);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Header Tests") { SpacePacketReader base = SpacePacketReader(); }
|
SECTION("Header Creator Tests") {
|
||||||
|
SpacePacketCreator base = SpacePacketCreator(
|
||||||
|
ccsds::PacketType::TM, true, 0x22,
|
||||||
|
ccsds::SequenceFlags::CONTINUATION, 12, 0x42);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user