F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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  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 
60  SerializeStatus FilePacket::EndPacket ::
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 
73  SerializeStatus FilePacket::EndPacket ::
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:24
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Fw::Buffer::getData
U8 * getData() const
Definition: Buffer.cpp:56
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:67
CFDP::Checksum::getValue
U32 getValue(void) const
Get the checksum value.
Definition: Checksum.cpp:66
Fw::Buffer
Definition: Buffer.hpp:43
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::getSize
U32 getSize() const
Definition: Buffer.cpp:60
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
CFDP::Checksum
Class representing a CFDP checksum.
Definition: Checksum.hpp:23
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:290
Fw::FilePacket::T_END
@ T_END
Definition: FilePacket.hpp:39
FilePacket.hpp
Fw::FilePacket::EndPacket::toBuffer
SerializeStatus toBuffer(Buffer &buffer) const
Convert this EndPacket to a Buffer.
Definition: EndPacket.cpp:37
Fw::FilePacket::Header::type
Type type
The packet type.
Definition: FilePacket.hpp:90
Fw
Definition: Buffer.cpp:21