F´ Flight Software - C/C++ Documentation  NASA-v1.5.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
TlmPacket.cpp
Go to the documentation of this file.
1 /*
2  * TlmPacket.cpp
3  *
4  * Created on: May 24, 2014
5  * Author: Timothy Canham
6  */
7 
8 #include <Fw/Tlm/TlmPacket.hpp>
9 #include <Fw/Types/Assert.hpp>
10 
11 namespace Fw {
12 
13  TlmPacket::TlmPacket() : m_id(0) {
14  this->m_type = FW_PACKET_TELEM;
15  }
16 
18  }
19 
21  SerializeStatus stat;
22 #if !FW_AMPCS_COMPATIBLE
23  stat = serializeBase(buffer);
24  if (stat != FW_SERIALIZE_OK) {
25  return stat;
26  }
27 #endif
28  stat = buffer.serialize(this->m_id);
29  if (stat != FW_SERIALIZE_OK) {
30  return stat;
31  }
32 
33 #if !FW_AMPCS_COMPATIBLE
34  stat = buffer.serialize(this->m_timeTag);
35  if (stat != FW_SERIALIZE_OK) {
36  return stat;
37  }
38 #endif
39 
40  return buffer.serialize(this->m_tlmBuffer.getBuffAddr(),m_tlmBuffer.getBuffLength(),true);
41 
42  }
43 
45 
46  SerializeStatus stat;
47 #if !FW_AMPCS_COMPATIBLE
48  stat = deserializeBase(buffer);
49  if (stat != FW_SERIALIZE_OK) {
50  return stat;
51  }
52 #endif
53  stat = buffer.deserialize(this->m_id);
54  if (stat != FW_SERIALIZE_OK) {
55  return stat;
56  }
57 
58 #if !FW_AMPCS_COMPATIBLE
59  stat = buffer.deserialize(this->m_timeTag);
60  if (stat != FW_SERIALIZE_OK) {
61  return stat;
62  }
63 #endif
64 
65  // remainder of buffer must be telemetry value
66  NATIVE_UINT_TYPE size = buffer.getBuffLeft();
67  stat = buffer.deserialize(this->m_tlmBuffer.getBuffAddr(),size,true);
68  if (stat == FW_SERIALIZE_OK) {
69  // Shouldn't fail
70  stat = this->m_tlmBuffer.setBuffLen(size);
71  FW_ASSERT(stat == FW_SERIALIZE_OK,static_cast<NATIVE_INT_TYPE>(stat));
72  }
73  return stat;
74  }
75 
77  this->m_id = id;
78  }
79 
81  this->m_tlmBuffer = buffer;
82  }
83 
84  void TlmPacket::setTimeTag(Time& timeTag) {
85  this->m_timeTag = timeTag;
86  }
87 
89  return this->m_id;
90  }
91 
93  return this->m_timeTag;
94  }
95 
97  return this->m_tlmBuffer;
98  }
99 
100 } /* namespace Fw */
Fw::TlmPacket::deserialize
SerializeStatus deserialize(SerializeBufferBase &buffer)
deserialize to contents
Definition: TlmPacket.cpp:44
Fw::ComPacket::deserializeBase
SerializeStatus deserializeBase(SerializeBufferBase &buffer)
Definition: ComPacket.cpp:22
Fw::TlmPacket::getTimeTag
Time & getTimeTag(void)
Definition: TlmPacket.cpp:92
Fw::Time
Definition: Time.hpp:10
Fw::TlmPacket::getTlmBuffer
TlmBuffer & getTlmBuffer(void)
Definition: TlmPacket.cpp:96
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Fw::TlmBuffer
Definition: TlmBuffer.hpp:21
FwChanIdType
#define FwChanIdType
Type representation for a channel id.
Definition: FpConfig.hpp:66
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:67
Fw::TlmPacket::getId
FwChanIdType getId(void)
Definition: TlmPacket.cpp:88
Fw::TlmPacket::serialize
SerializeStatus serialize(SerializeBufferBase &buffer) const
serialize contents
Definition: TlmPacket.cpp:20
Fw::ComPacket::serializeBase
SerializeStatus serializeBase(SerializeBufferBase &buffer) const
Definition: ComPacket.cpp:18
Fw::TlmPacket::TlmPacket
TlmPacket()
Definition: TlmPacket.cpp:13
Assert.hpp
Fw::TlmPacket::~TlmPacket
virtual ~TlmPacket()
Definition: TlmPacket.cpp:17
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Fw::SerializeBufferBase::getBuffLeft
NATIVE_UINT_TYPE getBuffLeft() const
returns how much deserialization buffer is left
Definition: Serializable.cpp:619
Fw::TlmBuffer::getBuffAddr
U8 * getBuffAddr(void)
gets buffer address for data filling
Definition: TlmBuffer.cpp:36
Fw::SerializeBufferBase::setBuffLen
SerializeStatus setBuffLen(NATIVE_UINT_TYPE length)
sets buffer length manually after filling with data
Definition: Serializable.cpp:609
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Fw::TlmPacket::setId
void setId(FwChanIdType id)
Definition: TlmPacket.cpp:76
Fw::SerializeBufferBase::getBuffLength
NATIVE_UINT_TYPE getBuffLength() const
returns current buffer size
Definition: Serializable.cpp:592
Fw::ComPacket::m_type
ComPacketType m_type
Definition: ComPacket.hpp:35
TlmPacket.hpp
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:292
Fw::TlmPacket::m_tlmBuffer
TlmBuffer m_tlmBuffer
Definition: TlmPacket.hpp:38
Fw::TlmPacket::m_timeTag
Fw::Time m_timeTag
Definition: TlmPacket.hpp:37
Fw::ComPacket::FW_PACKET_TELEM
@ FW_PACKET_TELEM
Definition: ComPacket.hpp:23
Fw::TlmPacket::setTlmBuffer
void setTlmBuffer(TlmBuffer &buffer)
Definition: TlmPacket.cpp:80
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Fw::TlmPacket::setTimeTag
void setTimeTag(Time &timeTag)
Definition: TlmPacket.cpp:84
Fw
Definition: BufferGetPortAc.cpp:6