F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
LogTextPortAc.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title LogTextPortAc.cpp
3// \author Generated by fpp-to-cpp
4// \brief cpp file for LogText port
5// ======================================================================
6
8#include "Fw/Types/Assert.hpp"
10
11namespace Fw {
12
13 namespace {
14
15 // ----------------------------------------------------------------------
16 // Port buffer class
17 // ----------------------------------------------------------------------
18
19 class LogTextPortBuffer : public Fw::SerializeBufferBase {
20
21 public:
22
23 Fw::Serializable::SizeType getBuffCapacity() const {
25 }
26
27 U8* getBuffAddr() {
28 return m_buff;
29 }
30
31 const U8* getBuffAddr() const {
32 return m_buff;
33 }
34
35 private:
36
38
39 };
40
41 }
42
43 // ----------------------------------------------------------------------
44 // Input Port Member functions
45 // ----------------------------------------------------------------------
46
47 InputLogTextPort ::
48 InputLogTextPort() :
50 m_func(nullptr)
51 {
52
53 }
54
55 void InputLogTextPort ::
56 init()
57 {
59 }
60
61 void InputLogTextPort ::
62 addCallComp(
64 CompFuncPtr funcPtr
65 )
66 {
67 FW_ASSERT(callComp != nullptr);
68 FW_ASSERT(funcPtr != nullptr);
69
70 this->m_comp = callComp;
71 this->m_func = funcPtr;
72 this->m_connObj = callComp;
73 }
74
75 void InputLogTextPort ::
76 invoke(
78 Fw::Time& timeTag,
79 const Fw::LogSeverity& severity,
81 )
82 {
83#if FW_PORT_TRACING == 1
84 this->trace();
85#endif
86
87 FW_ASSERT(this->m_comp != nullptr);
88 FW_ASSERT(this->m_func != nullptr);
89
90 return this->m_func(this->m_comp, this->m_portNum, id, timeTag, severity, text);
91 }
92
93#if FW_PORT_SERIALIZATION == 1
94
95 Fw::SerializeStatus InputLogTextPort ::
96 invokeSerial(Fw::SerializeBufferBase& _buffer)
97 {
98 Fw::SerializeStatus _status;
99
100#if FW_PORT_TRACING == 1
101 this->trace();
102#endif
103
104 FW_ASSERT(this->m_comp != nullptr);
105 FW_ASSERT(this->m_func != nullptr);
106
107 FwEventIdType id;
108 _status = _buffer.deserialize(id);
109 if (_status != Fw::FW_SERIALIZE_OK) {
110 return _status;
111 }
112
113 Fw::Time timeTag;
114 _status = _buffer.deserialize(timeTag);
115 if (_status != Fw::FW_SERIALIZE_OK) {
116 return _status;
117 }
118
119 Fw::LogSeverity severity;
120 _status = _buffer.deserialize(severity);
121 if (_status != Fw::FW_SERIALIZE_OK) {
122 return _status;
123 }
124
126 _status = _buffer.deserialize(text);
127 if (_status != Fw::FW_SERIALIZE_OK) {
128 return _status;
129 }
130
131 this->m_func(this->m_comp, this->m_portNum, id, timeTag, severity, text);
132
133 return Fw::FW_SERIALIZE_OK;
134 }
135
136#endif
137
138 // ----------------------------------------------------------------------
139 // Output Port Member functions
140 // ----------------------------------------------------------------------
141
142 OutputLogTextPort ::
143 OutputLogTextPort() :
145 m_port(nullptr)
146 {
147
148 }
149
150 void OutputLogTextPort ::
151 init()
152 {
154 }
155
156 void OutputLogTextPort ::
157 addCallPort(InputLogTextPort* callPort)
158 {
159 FW_ASSERT(callPort != nullptr);
160
161 this->m_port = callPort;
162 this->m_connObj = callPort;
163
164#if FW_PORT_SERIALIZATION == 1
165 this->m_serPort = nullptr;
166#endif
167 }
168
169 void OutputLogTextPort ::
170 invoke(
171 FwEventIdType id,
172 Fw::Time& timeTag,
173 const Fw::LogSeverity& severity,
175 ) const
176 {
177#if FW_PORT_TRACING == 1
178 this->trace();
179#endif
180
181#if FW_PORT_SERIALIZATION
182 FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
183
184 if (this->m_port != nullptr) {
185 this->m_port->invoke(id, timeTag, severity, text);
186 }
187 else {
188 Fw::SerializeStatus _status;
189 LogTextPortBuffer _buffer;
190
191 _status = _buffer.serialize(id);
192 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
193
194 _status = _buffer.serialize(timeTag);
195 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
196
197 _status = _buffer.serialize(severity);
198 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
199
200 _status = _buffer.serialize(text);
201 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
202
203 _status = this->m_serPort->invokeSerial(_buffer);
204 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
205 }
206#else
207 FW_ASSERT(this->m_port != nullptr);
208 this->m_port->invoke(id, timeTag, severity, text);
209#endif
210 }
211
212}
#define FW_ASSERT(...)
Definition Assert.hpp:14
uint8_t U8
8-bit unsigned integer
Definition BasicTypes.h:30
PlatformAssertArgType FwAssertArgType
Definition FpConfig.h:39
U32 FwEventIdType
Definition FpConfig.h:103
@ SERIALIZED_SIZE
The size of the serial representations of the port arguments.
virtual void init()
Enum representing event severity.
virtual void init()
NATIVE_UINT_TYPE SizeType
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.