F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
CyclePortAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CyclePortAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for Cycle port
5 // ======================================================================
6 
8 #include "Fw/Types/Assert.hpp"
10 
11 namespace Svc {
12 
13  namespace {
14 
15  // ----------------------------------------------------------------------
16  // Port buffer class
17  // ----------------------------------------------------------------------
18 
19  class CyclePortBuffer : 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 
56  init()
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 
76  invoke(Os::RawTime& cycleStart)
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, cycleStart);
86  }
87 
88 #if FW_PORT_SERIALIZATION == 1
89 
90  Fw::SerializeStatus InputCyclePort ::
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  Os::RawTime cycleStart;
103  _status = _buffer.deserialize(cycleStart);
104  if (_status != Fw::FW_SERIALIZE_OK) {
105  return _status;
106  }
107 
108  this->m_func(this->m_comp, this->m_portNum, cycleStart);
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 
128  init()
129  {
131  }
132 
134  addCallPort(InputCyclePort* callPort)
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(Os::RawTime& cycleStart)
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(cycleStart);
158  }
159  else {
160  Fw::SerializeStatus _status;
161  CyclePortBuffer _buffer;
162 
163  _status = _buffer.serialize(cycleStart);
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(cycleStart);
172 #endif
173  }
174 
175 }
#define FW_ASSERT(...)
Definition: Assert.hpp:14
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:30
PlatformAssertArgType FwAssertArgType
Definition: FpConfig.h:39
NATIVE_INT_TYPE m_portNum
virtual void init()
PassiveComponentBase * m_comp
virtual void init()
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:33
NATIVE_UINT_TYPE SizeType
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
@ SERIALIZED_SIZE
The size of the serial representations of the port arguments.
Definition: CyclePortAc.hpp:37
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: CyclePortAc.cpp:62
void init()
Initialization function.
Definition: CyclePortAc.cpp:56
InputCyclePort()
Constructor.
Definition: CyclePortAc.cpp:48
void invoke(Os::RawTime &cycleStart)
Invoke a port interface.
Definition: CyclePortAc.cpp:76
void init()
Initialization function.
OutputCyclePort()
Constructor.
void invoke(Os::RawTime &cycleStart)
Invoke a port interface.
void addCallPort(InputCyclePort *callPort)
Register an input port.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.