fsfw/src/fsfw/cfdp/tlv/MessageToUserTlv.cpp

29 lines
971 B
C++
Raw Normal View History

#include "MessageToUserTlv.h"
2022-08-10 09:39:57 +02:00
MessageToUserTlv::MessageToUserTlv(uint8_t* value, size_t size)
2022-09-15 18:41:15 +02:00
: Tlv(cfdp::TlvType::MSG_TO_USER, value, size) {}
2022-02-02 10:29:30 +01:00
MessageToUserTlv::MessageToUserTlv() : Tlv() {}
2022-08-10 09:39:57 +02:00
MessageToUserTlv::MessageToUserTlv(const std::vector<uint8_t>& data)
2022-09-15 18:41:15 +02:00
: Tlv(cfdp::TlvType::MSG_TO_USER, data.data(), data.size()) {}
2023-07-24 10:06:45 +02:00
MessageToUserTlv::MessageToUserTlv(const uint8_t* value, size_t size)
: Tlv(cfdp::TlvType::MSG_TO_USER, value, size) {}
2023-07-24 11:57:33 +02:00
2023-07-25 16:16:35 +02:00
bool MessageToUserTlv::isReservedCfdpMessage(uint8_t& messageType, const uint8_t** msgDataStart,
size_t& msgLen) const {
2023-07-24 11:57:33 +02:00
if (cfdp::Tlv::getLengthField() < 5) {
return false;
}
if (std::strncmp(reinterpret_cast<const char*>(getValue()), "cfdp", 4) == 0) {
2023-07-24 11:57:33 +02:00
messageType = getValue()[4];
2023-07-25 16:16:35 +02:00
if (msgDataStart != nullptr) {
*msgDataStart = getValue() + 5;
}
msgLen = cfdp::Tlv::getSerializedSize() - 5;
2023-07-24 11:57:33 +02:00
return true;
}
return false;
}