F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LogPacket.cpp
Go to the documentation of this file.
1/*
2 * LogPacket.cpp
3 *
4 * Created on: May 24, 2014
5 * Author: Timothy Canham
6 */
7
9#include <Fw/Types/Assert.hpp>
10
11namespace Fw {
12
14 this->m_type = FW_PACKET_LOG;
15 }
16
19
21
23 if (stat != FW_SERIALIZE_OK) {
24 return stat;
25 }
26
27 stat = buffer.serialize(this->m_id);
28 if (stat != FW_SERIALIZE_OK) {
29 return stat;
30 }
31
32 stat = buffer.serialize(this->m_timeTag);
33 if (stat != FW_SERIALIZE_OK) {
34 return stat;
35 }
36
37 // We want to add data but not size for the ground software
38 return buffer.serialize(this->m_logBuffer.getBuffAddr(),m_logBuffer.getBuffLength(),true);
39
40 }
41
43 SerializeStatus stat = deserializeBase(buffer);
44 if (stat != FW_SERIALIZE_OK) {
45 return stat;
46 }
47
48 stat = buffer.deserialize(this->m_id);
49 if (stat != FW_SERIALIZE_OK) {
50 return stat;
51 }
52
53 stat = buffer.deserialize(this->m_timeTag);
54 if (stat != FW_SERIALIZE_OK) {
55 return stat;
56 }
57
58 // remainder of buffer must be telemetry value
59 NATIVE_UINT_TYPE size = buffer.getBuffLeft();
60 stat = buffer.deserialize(this->m_logBuffer.getBuffAddr(),size,true);
61 if (stat == FW_SERIALIZE_OK) {
62 // Shouldn't fail
63 stat = this->m_logBuffer.setBuffLen(size);
64 FW_ASSERT(stat == FW_SERIALIZE_OK,static_cast<NATIVE_INT_TYPE>(stat));
65 }
66 return stat;
67 }
68
70 this->m_id = id;
71 }
72
73 void LogPacket::setLogBuffer(const LogBuffer& buffer) {
74 this->m_logBuffer = buffer;
75 }
76
77 void LogPacket::setTimeTag(const Fw::Time& timeTag) {
78 this->m_timeTag = timeTag;
79 }
80
82 return this->m_id;
83 }
84
86 return this->m_timeTag;
87 }
88
90 return this->m_logBuffer;
91 }
92
93
94} /* namespace Fw */
#define FW_ASSERT(...)
Definition Assert.hpp:7
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
U32 FwEventIdType
Definition FpConfig.h:62
SerializeStatus serializeBase(SerializeBufferBase &buffer) const
Definition ComPacket.cpp:18
ComPacketType m_type
Definition ComPacket.hpp:35
SerializeStatus deserializeBase(SerializeBufferBase &buffer)
Definition ComPacket.cpp:22
U8 * getBuffAddr()
gets buffer address for data filling
Definition LogBuffer.cpp:40
SerializeStatus serialize(SerializeBufferBase &buffer) const
serialize contents
Definition LogPacket.cpp:20
SerializeStatus deserialize(SerializeBufferBase &buffer)
deserialize to contents
Definition LogPacket.cpp:42
FwEventIdType m_id
Definition LogPacket.hpp:35
Fw::Time m_timeTag
Definition LogPacket.hpp:36
void setId(FwEventIdType id)
Definition LogPacket.cpp:69
void setTimeTag(const Fw::Time &timeTag)
Definition LogPacket.cpp:77
void setLogBuffer(const LogBuffer &buffer)
Definition LogPacket.cpp:73
FwEventIdType getId()
Definition LogPacket.cpp:81
virtual ~LogPacket()
Definition LogPacket.cpp:17
LogBuffer m_logBuffer
Definition LogPacket.hpp:37
Fw::Time & getTimeTag()
Definition LogPacket.cpp:85
LogBuffer & getLogBuffer()
Definition LogPacket.cpp:89
NATIVE_UINT_TYPE getBuffLeft() const
returns how much deserialization buffer is left
SerializeStatus setBuffLen(NATIVE_UINT_TYPE length)
sets buffer length manually after filling with data
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
NATIVE_UINT_TYPE getBuffLength() const
returns current buffer size
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.