F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
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.