F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
EnableSectionPortAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title EnableSectionPortAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for EnableSection port
5 // ======================================================================
6 
7 #include "Fw/Types/Assert.hpp"
10 
11 namespace Svc {
12 
13  namespace {
14 
15  // ----------------------------------------------------------------------
16  // Port buffer class
17  // ----------------------------------------------------------------------
18 
19  class EnableSectionPortBuffer : public Fw::LinearBufferBase {
20 
21  public:
22 
23  Fw::Serializable::SizeType getCapacity() 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 
49  Fw::InputPortBase(),
50  m_func(nullptr)
51  {
52 
53  }
54 
57  {
59  }
60 
63  Fw::PassiveComponentBase* callComp,
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 
77  const Svc::TelemetrySection& section,
78  const Fw::Enabled& enabled
79  )
80  {
81 #if FW_PORT_TRACING == 1
82  this->trace();
83 #endif
84 
85  FW_ASSERT(this->m_comp != nullptr);
86  FW_ASSERT(this->m_func != nullptr);
87 
88  return this->m_func(this->m_comp, this->m_portNum, section, enabled);
89  }
90 
91 #if FW_PORT_SERIALIZATION == 1
92 
93  Fw::SerializeStatus InputEnableSectionPort ::
94  invokeSerial(Fw::LinearBufferBase& _buffer)
95  {
96  Fw::SerializeStatus _status;
97 
98 #if FW_PORT_TRACING == 1
99  this->trace();
100 #endif
101 
102  FW_ASSERT(this->m_comp != nullptr);
103  FW_ASSERT(this->m_func != nullptr);
104 
105  Svc::TelemetrySection section;
106  _status = _buffer.deserializeTo(section);
107  if (_status != Fw::FW_SERIALIZE_OK) {
108  return _status;
109  }
110 
111  Fw::Enabled enabled;
112  _status = _buffer.deserializeTo(enabled);
113  if (_status != Fw::FW_SERIALIZE_OK) {
114  return _status;
115  }
116 
117  this->m_func(this->m_comp, this->m_portNum, section, enabled);
118 
119  return Fw::FW_SERIALIZE_OK;
120  }
121 
122 #endif
123 
124  // ----------------------------------------------------------------------
125  // Output Port Member functions
126  // ----------------------------------------------------------------------
127 
130  Fw::OutputPortBase(),
131  m_port(nullptr)
132  {
133 
134  }
135 
138  {
140  }
141 
144  {
145  FW_ASSERT(callPort != nullptr);
146 
147  this->m_port = callPort;
148  this->m_connObj = callPort;
149 
150 #if FW_PORT_SERIALIZATION == 1
151  this->m_serPort = nullptr;
152 #endif
153  }
154 
157  const Svc::TelemetrySection& section,
158  const Fw::Enabled& enabled
159  ) const
160  {
161 #if FW_PORT_TRACING == 1
162  this->trace();
163 #endif
164 
165 #if FW_PORT_SERIALIZATION
166  FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
167 
168  if (this->m_port != nullptr) {
169  this->m_port->invoke(section, enabled);
170  }
171  else {
172  Fw::SerializeStatus _status;
173  EnableSectionPortBuffer _buffer;
174 
175  _status = _buffer.serializeFrom(section);
176  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
177 
178  _status = _buffer.serializeFrom(enabled);
179  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
180 
181  _status = this->m_serPort->invokeSerial(_buffer);
182  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
183  }
184 #else
185  FW_ASSERT(this->m_port != nullptr);
186  this->m_port->invoke(section, enabled);
187 #endif
188  }
189 
190 }
Serialization/Deserialization operation was successful.
FwIndexType m_portNum
The size of the serial representations of the port arguments.
SerializeStatus
forward declaration for string
void init() override
FwSizeType SizeType
void init()
Initialization function.
Enabled and disabled states.
void init()
Initialization function.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void addCallPort(InputEnableSectionPort *callPort)
Register an input port.
PassiveComponentBase * m_comp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void invoke(const Svc::TelemetrySection &section, const Fw::Enabled &enabled) const
Invoke a port interface.
void init() override
RateGroupDivider component implementation.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
void invoke(const Svc::TelemetrySection &section, const Fw::Enabled &enabled)
Invoke a port interface.
Implementation of malloc based allocator.
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:34
#define FW_ASSERT(...)
Definition: Assert.hpp:14