20 U8 directiveSubtypeCode,
26 this->m_directiveCode = directiveCode;
27 this->m_directiveSubtypeCode = directiveSubtypeCode;
28 this->m_conditionCode = conditionCode;
29 this->m_transactionStatus = transactionStatus;
38 size +=
static_cast<U32
>(
sizeof(
U8) +
sizeof(
U8) +
sizeof(
U8));
44 return this->toSerialBuffer(buffer);
73 return this->fromSerialBuffer(buffer);
102 U8 directiveAndSubtype = 0;
103 directiveAndSubtype =
104 static_cast<U8>(directiveAndSubtype |
static_cast<U8>((
static_cast<U8>(this->m_directiveCode) & 0x0FU) << 4));
105 directiveAndSubtype =
static_cast<U8>(directiveAndSubtype | (this->m_directiveSubtypeCode & 0x0FU));
117 ccAndStatus =
static_cast<U8>(ccAndStatus |
static_cast<U8>((
static_cast<U8>(this->m_conditionCode) & 0x0FU) << 4));
118 ccAndStatus =
static_cast<U8>(ccAndStatus | (
static_cast<U8>(this->m_transactionStatus) & 0x03U));
134 U8 directiveAndSubtype;
143 U8 directiveCodeVal = (directiveAndSubtype >> 4) & 0x0F;
144 U8 subtypeCodeVal = directiveAndSubtype & 0x0F;
146 this->m_directiveCode =
static_cast<FileDirective>(directiveCodeVal);
147 this->m_directiveSubtypeCode = subtypeCodeVal;
160 U8 conditionCodeVal = (ccAndStatus >> 4) & 0x0F;
161 U8 transactionStatusVal = ccAndStatus & 0x03;
163 this->m_conditionCode =
static_cast<ConditionCode>(conditionCodeVal);
164 this->m_transactionStatus =
static_cast<AckTxnStatus>(transactionStatusVal);
Serialization/Deserialization operation was successful.
U32 getBufferSize() const override
Compute the buffer size needed.
U32 EntityId
Entity id size.
void initialize(PduDirection direction, Cfdp::Class::T txmMode, EntityId sourceEid, TransactionSeq transactionSeq, EntityId destEid, FileDirective directiveCode, U8 directiveSubtypeCode, ConditionCode conditionCode, AckTxnStatus transactionStatus)
Initialize an ACK PDU.
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
U32 TransactionSeq
transaction sequence number size
Deserialized type ID didn't match.
PduHeader m_header
The PDU header (common to all PDUs)
uint8_t U8
8-bit unsigned integer
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) override
Fw::Serializable interface - deserialize from buffer.
RateGroupDivider component implementation.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const override
Fw::Serializable interface - serialize to buffer.