F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CmdRegPortAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CmdRegPortAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for CmdReg port
5 // ======================================================================
6 
8 #include "Fw/Types/Assert.hpp"
10 
11 namespace Fw {
12 
13  namespace {
14 
15  // ----------------------------------------------------------------------
16  // Port buffer class
17  // ----------------------------------------------------------------------
18 
19  class CmdRegPortBuffer : 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 
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  {
78 #if FW_PORT_TRACING == 1
79  this->trace();
80 #endif
81 
82  FW_ASSERT(this->m_comp != nullptr);
83  FW_ASSERT(this->m_func != nullptr);
84 
85  return this->m_func(this->m_comp, this->m_portNum, opCode);
86  }
87 
88 #if FW_PORT_SERIALIZATION == 1
89 
90  Fw::SerializeStatus InputCmdRegPort ::
91  invokeSerial(Fw::SerializeBufferBase& _buffer)
92  {
93  Fw::SerializeStatus _status;
94 
95 #if FW_PORT_TRACING == 1
96  this->trace();
97 #endif
98 
99  FW_ASSERT(this->m_comp != nullptr);
100  FW_ASSERT(this->m_func != nullptr);
101 
102  FwOpcodeType opCode;
103  _status = _buffer.deserializeTo(opCode);
104  if (_status != Fw::FW_SERIALIZE_OK) {
105  return _status;
106  }
107 
108  this->m_func(this->m_comp, this->m_portNum, opCode);
109 
110  return Fw::FW_SERIALIZE_OK;
111  }
112 
113 #endif
114 
115  // ----------------------------------------------------------------------
116  // Output Port Member functions
117  // ----------------------------------------------------------------------
118 
121  Fw::OutputPortBase(),
122  m_port(nullptr)
123  {
124 
125  }
126 
129  {
131  }
132 
135  {
136  FW_ASSERT(callPort != nullptr);
137 
138  this->m_port = callPort;
139  this->m_connObj = callPort;
140 
141 #if FW_PORT_SERIALIZATION == 1
142  this->m_serPort = nullptr;
143 #endif
144  }
145 
147  invoke(FwOpcodeType opCode) const
148  {
149 #if FW_PORT_TRACING == 1
150  this->trace();
151 #endif
152 
153 #if FW_PORT_SERIALIZATION
154  FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
155 
156  if (this->m_port != nullptr) {
157  this->m_port->invoke(opCode);
158  }
159  else {
160  Fw::SerializeStatus _status;
161  CmdRegPortBuffer _buffer;
162 
163  _status = _buffer.serializeFrom(opCode);
164  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
165 
166  _status = this->m_serPort->invokeSerial(_buffer);
167  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
168  }
169 #else
170  FW_ASSERT(this->m_port != nullptr);
171  this->m_port->invoke(opCode);
172 #endif
173  }
174 
175 }
Serialization/Deserialization operation was successful.
InputCmdRegPort()
Constructor.
FwIdType FwOpcodeType
The type of a command opcode.
FwIndexType m_portNum
OutputCmdRegPort()
Constructor.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
SerializeStatus
forward declaration for string
void invoke(FwOpcodeType opCode) const
Invoke a port interface.
void init()
Initialization function.
void init() override
FwSizeType SizeType
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
The size of the serial representations of the port arguments.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void invoke(FwOpcodeType opCode)
Invoke a port interface.
PassiveComponentBase * m_comp
void init() override
void init()
Initialization function.
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:34
#define FW_ASSERT(...)
Definition: Assert.hpp:14
SerializeStatus deserializeTo(U8 &val)
deserialize 8-bit unsigned int