F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
AmpcsEvrLogPacket.cpp
Go to the documentation of this file.
1 /*
2  * AmpcsEvrLogPacket.cpp
3  *
4  * Created on: October 07, 2016
5  * Author: Kevin F. Ortega
6  * Aadil Rizvi
7  */
8 
10 #include <Fw/Types/Assert.hpp>
11 
12 namespace Fw {
13 
14 AmpcsEvrLogPacket::AmpcsEvrLogPacket() : m_eventID(0), m_overSeqNum(0), m_catSeqNum(0) {
15  this->m_type = FW_PACKET_LOG;
16 }
18 
20  SerializeStatus stat;
21 
23  if (stat != FW_SERIALIZE_OK) {
24  return stat;
25  }
26 
27  stat = buffer.serializeFrom(this->m_eventID);
28  if (stat != FW_SERIALIZE_OK) {
29  return stat;
30  }
31 
32  stat = buffer.serializeFrom(this->m_overSeqNum);
33  if (stat != FW_SERIALIZE_OK) {
34  return stat;
35  }
36 
37  stat = buffer.serializeFrom(this->m_catSeqNum);
38  if (stat != FW_SERIALIZE_OK) {
39  return stat;
40  }
41 
43 }
44 
46  FwSizeType len;
47 
48  SerializeStatus stat;
49 
51  stat = buffer.deserializeTo(this->m_taskName, len, true);
52  if (stat != FW_SERIALIZE_OK) {
53  return stat;
54  }
55 
56  stat = buffer.deserializeTo(this->m_eventID);
57  if (stat != FW_SERIALIZE_OK) {
58  return stat;
59  }
60 
61  stat = buffer.deserializeTo(this->m_overSeqNum);
62  if (stat != FW_SERIALIZE_OK) {
63  return stat;
64  }
65 
66  stat = buffer.deserializeTo(this->m_catSeqNum);
67  if (stat != FW_SERIALIZE_OK) {
68  return stat;
69  }
70 
71  FwSizeType size = buffer.getDeserializeSizeLeft();
72  stat = buffer.deserializeTo(this->m_logBuffer.getBuffAddr(), size, true);
73  if (stat == FW_SERIALIZE_OK) {
74  // Shouldn't fail
75  stat = this->m_logBuffer.setBuffLen(size);
76  FW_ASSERT(stat == FW_SERIALIZE_OK, static_cast<FwAssertArgType>(stat));
77  }
78  return stat;
79 }
80 
81 void AmpcsEvrLogPacket::setTaskName(U8* taskName, U8 len) {
82  FW_ASSERT(taskName != nullptr);
84 
85  memcpy(this->m_taskName, (const void*)taskName, len);
86 }
87 
88 void AmpcsEvrLogPacket::setId(U32 eventID) {
89  this->m_eventID = eventID;
90 }
91 
92 void AmpcsEvrLogPacket::setOverSeqNum(U32 overSeqNum) {
93  this->m_overSeqNum = overSeqNum;
94 }
95 
96 void AmpcsEvrLogPacket::setCatSeqNum(U32 catSeqNum) {
97  this->m_catSeqNum = catSeqNum;
98 }
99 
101  this->m_logBuffer = buffer;
102 }
103 
105  return this->m_taskName;
106 }
107 
109  return this->m_eventID;
110 }
111 
113  return this->m_overSeqNum;
114 }
115 
117  return this->m_catSeqNum;
118 }
119 
121  return this->m_logBuffer;
122 }
123 
124 } /* namespace Fw */
Serialization/Deserialization operation was successful.
void setTaskName(U8 *taskName, U8 len)
void setCatSeqNum(U32 catSeqNum)
U8 * getBuffAddr()
Get buffer address for data filling (non-const version)
Definition: LogBuffer.cpp:42
PlatformSizeType FwSizeType
SerializeStatus serializeTo(SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const override
serialize contents
Serializable::SizeType getSize() const override
Get current buffer size.
ComPacketType m_type
Definition: ComPacket.hpp:28
void setOverSeqNum(U32 overSeqNum)
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.
Omit length from serialization.
#define AMPCS_EVR_TASK_NAME_LEN
void setId(U32 eventID)
SerializeStatus deserializeFrom(SerializeBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
virtual Serializable::SizeType getDeserializeSizeLeft() const =0
Get remaining deserialization buffer size.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
const U8 * getTaskName() const
SerializeStatus setBuffLen(Serializable::SizeType length) override
Set buffer length manually.
Implementation of malloc based allocator.
U8 m_taskName[AMPCS_EVR_TASK_NAME_LEN]
#define FW_ASSERT(...)
Definition: Assert.hpp:14
void setLogBuffer(LogBuffer &buffer)