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
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 
7 #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 
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.deserializeTo(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 
127  void OutputCyclePort ::
129  {
131  }
132 
133  void OutputCyclePort ::
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 
146  void OutputCyclePort ::
147  invoke(Os::RawTime& cycleStart) 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(cycleStart);
158  }
159  else {
160  Fw::SerializeStatus _status;
161  CyclePortBuffer _buffer;
162 
163  _status = _buffer.serializeFrom(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 }
Serialization/Deserialization operation was successful.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: CyclePortAc.cpp:62
FwIndexType m_portNum
OutputCyclePort()
Constructor.
The size of the serial representations of the port arguments.
Definition: CyclePortAc.hpp:37
SerializeStatus
forward declaration for string
void addCallPort(InputCyclePort *callPort)
Register an input port.
void init() override
FwSizeType SizeType
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void init()
Initialization function.
void invoke(Os::RawTime &cycleStart)
Invoke a port interface.
Definition: CyclePortAc.cpp:76
void init()
Initialization function.
Definition: CyclePortAc.cpp:56
PassiveComponentBase * m_comp
InputCyclePort()
Constructor.
Definition: CyclePortAc.cpp:48
void init() override
RateGroupDivider component implementation.
void invoke(Os::RawTime &cycleStart) const
Invoke a port interface.
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:34
#define FW_ASSERT(...)
Definition: Assert.hpp:14
SerializeStatus deserializeTo(U8 &val)
deserialize 8-bit unsigned int