F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
EndPacket.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title EndPacket.cpp
3 // \author bocchino
4 // \brief cpp file for FilePacket::EndPacket
5 //
6 // \copyright
7 // Copyright 2009-2016, by the California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
13 #include <string.h>
14 
16 #include <Fw/Types/Assert.hpp>
17 
18 namespace Fw {
19 
22  const U32 sequenceIndex,
23  const CFDP::Checksum& checksum
24  )
25  {
26  this->header.initialize(FilePacket::T_END, sequenceIndex);
27  this->setChecksum(checksum);
28  }
29 
31  bufferSize(void) const
32  {
33  return this->header.bufferSize() + sizeof(this->checksumValue);
34  }
35 
37  toBuffer(Buffer& buffer) const
38  {
39  SerialBuffer serialBuffer(
40  reinterpret_cast<U8*>(buffer.getdata()),
41  buffer.getsize()
42  );
43  return this->toSerialBuffer(serialBuffer);
44  }
45 
47  setChecksum(const CFDP::Checksum& checksum)
48  {
49  this->checksumValue = checksum.getValue();
50  }
51 
52 
54  getChecksum(CFDP::Checksum& checksum) const
55  {
56  CFDP::Checksum c(this->checksumValue);
57  checksum = c;
58  }
59 
61  fromSerialBuffer(SerialBuffer& serialBuffer)
62  {
63 
64  FW_ASSERT(this->header.type == T_END);
65 
66  const SerializeStatus status =
67  serialBuffer.deserialize(this->checksumValue);
68 
69  return status;
70 
71  }
72 
74  toSerialBuffer(SerialBuffer& serialBuffer) const
75  {
76 
77  FW_ASSERT(this->header.type == T_END);
78 
79  SerializeStatus status;
80 
81  status = this->header.toSerialBuffer(serialBuffer);
82  if (status != FW_SERIALIZE_OK)
83  return status;
84 
85  status = serialBuffer.serialize(this->checksumValue);
86  if (status != FW_SERIALIZE_OK)
87  return status;
88 
89  return FW_SERIALIZE_OK;
90 
91  }
92 
93 }
Fw::FilePacket::EndPacket::bufferSize
U32 bufferSize(void) const
Compute the buffer size needed to hold this EndPacket.
Definition: EndPacket.cpp:31
Fw::SerialBuffer
A variable-length serializable buffer.
Definition: SerialBuffer.hpp:26
Fw::Buffer::getsize
U32 getsize(void)
get member size
Definition: BufferSerializableAc.cpp:61
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:67
U8
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.hpp:76
CFDP::Checksum::getValue
U32 getValue(void) const
Get the checksum value.
Definition: Checksum.cpp:66
Fw::Buffer
Definition: BufferSerializableAc.hpp:24
Fw::FilePacket::EndPacket::initialize
void initialize(const U32 sequenceIndex, const CFDP::Checksum &checksum)
Initialize an end packet.
Definition: EndPacket.cpp:21
Assert.hpp
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Fw::FilePacket::EndPacket::header
Header header
The packet header.
Definition: FilePacket.hpp:223
Fw::Buffer::getdata
U64 getdata(void)
get member data
Definition: BufferSerializableAc.cpp:57
Fw::FilePacket::EndPacket::toSerialBuffer
SerializeStatus toSerialBuffer(SerialBuffer &serialBuffer) const
Write this EndPacket to a SerialBuffer.
Definition: EndPacket.cpp:74
Fw::FilePacket::EndPacket::setChecksum
void setChecksum(const CFDP::Checksum &checksum)
Set the checksum.
Definition: EndPacket.cpp:47
Fw::FilePacket::EndPacket::getChecksum
void getChecksum(CFDP::Checksum &checksum) const
Get the checksum.
Definition: EndPacket.cpp:54
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Fw::FilePacket::EndPacket::fromSerialBuffer
SerializeStatus fromSerialBuffer(SerialBuffer &serialBuffer)
Initialize this EndPacket from a SerialBuffer.
Definition: EndPacket.cpp:61
CFDP::Checksum
Class representing a CFDP checksum.
Definition: Checksum.hpp:23
FilePacket.hpp
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:292
Fw::FilePacket::T_END
@ T_END
Definition: FilePacket.hpp:39
Fw::FilePacket::EndPacket::toBuffer
SerializeStatus toBuffer(Buffer &buffer) const
Convert this EndPacket to a Buffer.
Definition: EndPacket.cpp:37
Fw
Definition: BufferGetPortAc.cpp:6