F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CmdSplitterComponentAc.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title CmdSplitterComponentAc.cpp
3// \author Generated by fpp-to-cpp
4// \brief cpp file for CmdSplitter component base class
5// ======================================================================
6
7#include <cstdio>
8
10#include "Fw/Types/Assert.hpp"
11#if FW_ENABLE_TEXT_LOGGING
12#include "Fw/Types/String.hpp"
13#endif
14
15namespace Svc {
16
17 // ----------------------------------------------------------------------
18 // Component initialization
19 // ----------------------------------------------------------------------
20
21 void CmdSplitterComponentBase ::
22 init(NATIVE_INT_TYPE instance)
23 {
24 // Initialize base class
26
27 // Connect input port CmdBuff
28 for (
29 PlatformIntType port = 0;
30 port < static_cast<PlatformIntType>(this->getNum_CmdBuff_InputPorts());
31 port++
32 ) {
33 this->m_CmdBuff_InputPort[port].init();
34 this->m_CmdBuff_InputPort[port].addCallComp(
35 this,
36 m_p_CmdBuff_in
37 );
38 this->m_CmdBuff_InputPort[port].setPortNum(port);
39
40#if FW_OBJECT_NAMES == 1
41 char portName[120];
42 (void) snprintf(
43 portName,
44 sizeof(portName),
45 "%s_CmdBuff_InputPort[%" PRI_PlatformIntType "]",
46 this->m_objName,
47 port
48 );
49 this->m_CmdBuff_InputPort[port].setObjName(portName);
50#endif
51 }
52
53 // Connect input port seqCmdStatus
54 for (
55 PlatformIntType port = 0;
56 port < static_cast<PlatformIntType>(this->getNum_seqCmdStatus_InputPorts());
57 port++
58 ) {
59 this->m_seqCmdStatus_InputPort[port].init();
60 this->m_seqCmdStatus_InputPort[port].addCallComp(
61 this,
62 m_p_seqCmdStatus_in
63 );
64 this->m_seqCmdStatus_InputPort[port].setPortNum(port);
65
66#if FW_OBJECT_NAMES == 1
67 char portName[120];
68 (void) snprintf(
69 portName,
70 sizeof(portName),
71 "%s_seqCmdStatus_InputPort[%" PRI_PlatformIntType "]",
72 this->m_objName,
73 port
74 );
75 this->m_seqCmdStatus_InputPort[port].setObjName(portName);
76#endif
77 }
78
79 // Connect output port LocalCmd
80 for (
81 PlatformIntType port = 0;
82 port < static_cast<PlatformIntType>(this->getNum_LocalCmd_OutputPorts());
83 port++
84 ) {
85 this->m_LocalCmd_OutputPort[port].init();
86
87#if FW_OBJECT_NAMES == 1
88 char portName[120];
89 (void) snprintf(
90 portName,
91 sizeof(portName),
92 "%s_LocalCmd_OutputPort[%" PRI_PlatformIntType "]",
93 this->m_objName,
94 port
95 );
96 this->m_LocalCmd_OutputPort[port].setObjName(portName);
97#endif
98 }
99
100 // Connect output port RemoteCmd
101 for (
102 PlatformIntType port = 0;
103 port < static_cast<PlatformIntType>(this->getNum_RemoteCmd_OutputPorts());
104 port++
105 ) {
106 this->m_RemoteCmd_OutputPort[port].init();
107
108#if FW_OBJECT_NAMES == 1
109 char portName[120];
110 (void) snprintf(
111 portName,
112 sizeof(portName),
113 "%s_RemoteCmd_OutputPort[%" PRI_PlatformIntType "]",
114 this->m_objName,
115 port
116 );
117 this->m_RemoteCmd_OutputPort[port].setObjName(portName);
118#endif
119 }
120
121 // Connect output port forwardSeqCmdStatus
122 for (
123 PlatformIntType port = 0;
124 port < static_cast<PlatformIntType>(this->getNum_forwardSeqCmdStatus_OutputPorts());
125 port++
126 ) {
127 this->m_forwardSeqCmdStatus_OutputPort[port].init();
128
129#if FW_OBJECT_NAMES == 1
130 char portName[120];
131 (void) snprintf(
132 portName,
133 sizeof(portName),
134 "%s_forwardSeqCmdStatus_OutputPort[%" PRI_PlatformIntType "]",
135 this->m_objName,
136 port
137 );
138 this->m_forwardSeqCmdStatus_OutputPort[port].setObjName(portName);
139#endif
140 }
141 }
142
143 // ----------------------------------------------------------------------
144 // Getters for typed input ports
145 // ----------------------------------------------------------------------
146
147 Fw::InputComPort* CmdSplitterComponentBase ::
148 get_CmdBuff_InputPort(NATIVE_INT_TYPE portNum)
149 {
150 FW_ASSERT(
151 portNum < this->getNum_CmdBuff_InputPorts(),
152 static_cast<FwAssertArgType>(portNum)
153 );
154
155 return &this->m_CmdBuff_InputPort[portNum];
156 }
157
158 Fw::InputCmdResponsePort* CmdSplitterComponentBase ::
159 get_seqCmdStatus_InputPort(NATIVE_INT_TYPE portNum)
160 {
161 FW_ASSERT(
162 portNum < this->getNum_seqCmdStatus_InputPorts(),
163 static_cast<FwAssertArgType>(portNum)
164 );
165
166 return &this->m_seqCmdStatus_InputPort[portNum];
167 }
168
169 // ----------------------------------------------------------------------
170 // Connect typed input ports to typed output ports
171 // ----------------------------------------------------------------------
172
173 void CmdSplitterComponentBase ::
174 set_LocalCmd_OutputPort(
175 NATIVE_INT_TYPE portNum,
176 Fw::InputComPort* port
177 )
178 {
179 FW_ASSERT(
180 portNum < this->getNum_LocalCmd_OutputPorts(),
181 static_cast<FwAssertArgType>(portNum)
182 );
183
184 this->m_LocalCmd_OutputPort[portNum].addCallPort(port);
185 }
186
187 void CmdSplitterComponentBase ::
188 set_RemoteCmd_OutputPort(
189 NATIVE_INT_TYPE portNum,
190 Fw::InputComPort* port
191 )
192 {
193 FW_ASSERT(
194 portNum < this->getNum_RemoteCmd_OutputPorts(),
195 static_cast<FwAssertArgType>(portNum)
196 );
197
198 this->m_RemoteCmd_OutputPort[portNum].addCallPort(port);
199 }
200
201 void CmdSplitterComponentBase ::
202 set_forwardSeqCmdStatus_OutputPort(
203 NATIVE_INT_TYPE portNum,
205 )
206 {
207 FW_ASSERT(
208 portNum < this->getNum_forwardSeqCmdStatus_OutputPorts(),
209 static_cast<FwAssertArgType>(portNum)
210 );
211
212 this->m_forwardSeqCmdStatus_OutputPort[portNum].addCallPort(port);
213 }
214
215#if FW_PORT_SERIALIZATION
216
217 // ----------------------------------------------------------------------
218 // Connect serial input ports to typed output ports
219 // ----------------------------------------------------------------------
220
221 void CmdSplitterComponentBase ::
222 set_LocalCmd_OutputPort(
223 NATIVE_INT_TYPE portNum,
224 Fw::InputSerializePort* port
225 )
226 {
227 FW_ASSERT(
228 portNum < this->getNum_LocalCmd_OutputPorts(),
229 static_cast<FwAssertArgType>(portNum)
230 );
231
232 this->m_LocalCmd_OutputPort[portNum].registerSerialPort(port);
233 }
234
235 void CmdSplitterComponentBase ::
236 set_RemoteCmd_OutputPort(
237 NATIVE_INT_TYPE portNum,
238 Fw::InputSerializePort* port
239 )
240 {
241 FW_ASSERT(
242 portNum < this->getNum_RemoteCmd_OutputPorts(),
243 static_cast<FwAssertArgType>(portNum)
244 );
245
246 this->m_RemoteCmd_OutputPort[portNum].registerSerialPort(port);
247 }
248
249 void CmdSplitterComponentBase ::
250 set_forwardSeqCmdStatus_OutputPort(
251 NATIVE_INT_TYPE portNum,
252 Fw::InputSerializePort* port
253 )
254 {
255 FW_ASSERT(
256 portNum < this->getNum_forwardSeqCmdStatus_OutputPorts(),
257 static_cast<FwAssertArgType>(portNum)
258 );
259
260 this->m_forwardSeqCmdStatus_OutputPort[portNum].registerSerialPort(port);
261 }
262
263#endif
264
265 // ----------------------------------------------------------------------
266 // Component construction and destruction
267 // ----------------------------------------------------------------------
268
269 CmdSplitterComponentBase ::
270 CmdSplitterComponentBase(const char* compName) :
271 Fw::PassiveComponentBase(compName)
272 {
273
274 }
275
276 CmdSplitterComponentBase ::
277 ~CmdSplitterComponentBase()
278 {
279
280 }
281
282 // ----------------------------------------------------------------------
283 // Getters for numbers of typed input ports
284 // ----------------------------------------------------------------------
285
286 NATIVE_INT_TYPE CmdSplitterComponentBase ::
287 getNum_CmdBuff_InputPorts() const
288 {
289 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_CmdBuff_InputPort));
290 }
291
292 NATIVE_INT_TYPE CmdSplitterComponentBase ::
293 getNum_seqCmdStatus_InputPorts() const
294 {
295 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_seqCmdStatus_InputPort));
296 }
297
298 // ----------------------------------------------------------------------
299 // Getters for numbers of typed output ports
300 // ----------------------------------------------------------------------
301
302 NATIVE_INT_TYPE CmdSplitterComponentBase ::
303 getNum_LocalCmd_OutputPorts() const
304 {
305 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_LocalCmd_OutputPort));
306 }
307
308 NATIVE_INT_TYPE CmdSplitterComponentBase ::
309 getNum_RemoteCmd_OutputPorts() const
310 {
311 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_RemoteCmd_OutputPort));
312 }
313
314 NATIVE_INT_TYPE CmdSplitterComponentBase ::
315 getNum_forwardSeqCmdStatus_OutputPorts() const
316 {
317 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_forwardSeqCmdStatus_OutputPort));
318 }
319
320 // ----------------------------------------------------------------------
321 // Connection status queries for typed output ports
322 // ----------------------------------------------------------------------
323
324 bool CmdSplitterComponentBase ::
325 isConnected_LocalCmd_OutputPort(NATIVE_INT_TYPE portNum)
326 {
327 FW_ASSERT(
328 portNum < this->getNum_LocalCmd_OutputPorts(),
329 static_cast<FwAssertArgType>(portNum)
330 );
331
332 return this->m_LocalCmd_OutputPort[portNum].isConnected();
333 }
334
335 bool CmdSplitterComponentBase ::
336 isConnected_RemoteCmd_OutputPort(NATIVE_INT_TYPE portNum)
337 {
338 FW_ASSERT(
339 portNum < this->getNum_RemoteCmd_OutputPorts(),
340 static_cast<FwAssertArgType>(portNum)
341 );
342
343 return this->m_RemoteCmd_OutputPort[portNum].isConnected();
344 }
345
346 bool CmdSplitterComponentBase ::
347 isConnected_forwardSeqCmdStatus_OutputPort(NATIVE_INT_TYPE portNum)
348 {
349 FW_ASSERT(
350 portNum < this->getNum_forwardSeqCmdStatus_OutputPorts(),
351 static_cast<FwAssertArgType>(portNum)
352 );
353
354 return this->m_forwardSeqCmdStatus_OutputPort[portNum].isConnected();
355 }
356
357 // ----------------------------------------------------------------------
358 // Port handler base-class functions for typed input ports
359 //
360 // Call these functions directly to bypass the corresponding ports
361 // ----------------------------------------------------------------------
362
363 void CmdSplitterComponentBase ::
364 CmdBuff_handlerBase(
365 NATIVE_INT_TYPE portNum,
366 Fw::ComBuffer& data,
367 U32 context
368 )
369 {
370 // Make sure port number is valid
371 FW_ASSERT(
372 portNum < this->getNum_CmdBuff_InputPorts(),
373 static_cast<FwAssertArgType>(portNum)
374 );
375
376 // Down call to pure virtual handler method implemented in Impl class
377 this->CmdBuff_handler(
378 portNum,
379 data,
380 context
381 );
382 }
383
384 void CmdSplitterComponentBase ::
385 seqCmdStatus_handlerBase(
386 NATIVE_INT_TYPE portNum,
387 FwOpcodeType opCode,
388 U32 cmdSeq,
389 const Fw::CmdResponse& response
390 )
391 {
392 // Make sure port number is valid
393 FW_ASSERT(
394 portNum < this->getNum_seqCmdStatus_InputPorts(),
395 static_cast<FwAssertArgType>(portNum)
396 );
397
398 // Down call to pure virtual handler method implemented in Impl class
399 this->seqCmdStatus_handler(
400 portNum,
401 opCode,
402 cmdSeq,
403 response
404 );
405 }
406
407 // ----------------------------------------------------------------------
408 // Invocation functions for typed output ports
409 // ----------------------------------------------------------------------
410
411 void CmdSplitterComponentBase ::
412 LocalCmd_out(
413 NATIVE_INT_TYPE portNum,
414 Fw::ComBuffer& data,
415 U32 context
416 )
417 {
418 FW_ASSERT(
419 portNum < this->getNum_LocalCmd_OutputPorts(),
420 static_cast<FwAssertArgType>(portNum)
421 );
422 this->m_LocalCmd_OutputPort[portNum].invoke(
423 data,
424 context
425 );
426 }
427
428 void CmdSplitterComponentBase ::
429 RemoteCmd_out(
430 NATIVE_INT_TYPE portNum,
431 Fw::ComBuffer& data,
432 U32 context
433 )
434 {
435 FW_ASSERT(
436 portNum < this->getNum_RemoteCmd_OutputPorts(),
437 static_cast<FwAssertArgType>(portNum)
438 );
439 this->m_RemoteCmd_OutputPort[portNum].invoke(
440 data,
441 context
442 );
443 }
444
445 void CmdSplitterComponentBase ::
446 forwardSeqCmdStatus_out(
447 NATIVE_INT_TYPE portNum,
448 FwOpcodeType opCode,
449 U32 cmdSeq,
450 const Fw::CmdResponse& response
451 )
452 {
453 FW_ASSERT(
454 portNum < this->getNum_forwardSeqCmdStatus_OutputPorts(),
455 static_cast<FwAssertArgType>(portNum)
456 );
457 this->m_forwardSeqCmdStatus_OutputPort[portNum].invoke(
458 opCode,
459 cmdSeq,
460 response
461 );
462 }
463
464 // ----------------------------------------------------------------------
465 // Calls for messages received on typed input ports
466 // ----------------------------------------------------------------------
467
468 void CmdSplitterComponentBase ::
469 m_p_CmdBuff_in(
470 Fw::PassiveComponentBase* callComp,
471 NATIVE_INT_TYPE portNum,
472 Fw::ComBuffer& data,
473 U32 context
474 )
475 {
476 FW_ASSERT(callComp);
477 CmdSplitterComponentBase* compPtr = static_cast<CmdSplitterComponentBase*>(callComp);
478 compPtr->CmdBuff_handlerBase(
479 portNum,
480 data,
481 context
482 );
483 }
484
485 void CmdSplitterComponentBase ::
486 m_p_seqCmdStatus_in(
487 Fw::PassiveComponentBase* callComp,
488 NATIVE_INT_TYPE portNum,
489 FwOpcodeType opCode,
490 U32 cmdSeq,
491 const Fw::CmdResponse& response
492 )
493 {
494 FW_ASSERT(callComp);
495 CmdSplitterComponentBase* compPtr = static_cast<CmdSplitterComponentBase*>(callComp);
497 portNum,
498 opCode,
499 cmdSeq,
500 response
501 );
502 }
503
504}
#define FW_ASSERT(...)
Definition Assert.hpp:7
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition BasicTypes.h:66
int PlatformIntType
DefaultTypes.hpp provides fallback defaults for the platform types.
#define PRI_PlatformIntType
PlatformAssertArgType FwAssertArgType
Definition FpConfig.h:21
U32 FwOpcodeType
Definition FpConfig.h:56
Enum representing a command response.
void init()
Object initializer.
Definition ObjBase.cpp:27
Auto-generated base for CmdSplitter component.
void seqCmdStatus_handlerBase(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port seqCmdStatus.
void CmdBuff_handlerBase(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port CmdBuff.