F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
TlmChanComponentAc.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title TlmChanComponentAc.cpp
3// \author Generated by fpp-to-cpp
4// \brief cpp file for TlmChan 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 namespace {
18 enum MsgTypeEnum {
20 RUN_SCHED,
21 PINGIN_PING,
22 };
23
24 // Get the max size by constructing a union of the async input, command, and
25 // internal port serialization sizes
26 union BuffUnion {
29 };
30
31 // Define a message buffer class large enough to handle all the
32 // asynchronous inputs to the component
33 class ComponentIpcSerializableBuffer :
35 {
36
37 public:
38
39 enum {
40 // Max. message size = size of data + message id + port
41 SERIALIZATION_SIZE =
42 sizeof(BuffUnion) +
43 sizeof(NATIVE_INT_TYPE) +
44 sizeof(NATIVE_INT_TYPE)
45 };
46
47 NATIVE_UINT_TYPE getBuffCapacity() const {
48 return sizeof(m_buff);
49 }
50
51 U8* getBuffAddr() {
52 return m_buff;
53 }
54
55 const U8* getBuffAddr() const {
56 return m_buff;
57 }
58
59 private:
60 // Should be the max of all the input ports serialized sizes...
61 U8 m_buff[SERIALIZATION_SIZE];
62
63 };
64 }
65
66 // ----------------------------------------------------------------------
67 // Component initialization
68 // ----------------------------------------------------------------------
69
70 void TlmChanComponentBase ::
71 init(
72 NATIVE_INT_TYPE queueDepth,
73 NATIVE_INT_TYPE instance
74 )
75 {
76 // Initialize base class
78
79 // Connect input port Run
80 for (
81 PlatformIntType port = 0;
82 port < static_cast<PlatformIntType>(this->getNum_Run_InputPorts());
83 port++
84 ) {
85 this->m_Run_InputPort[port].init();
86 this->m_Run_InputPort[port].addCallComp(
87 this,
88 m_p_Run_in
89 );
90 this->m_Run_InputPort[port].setPortNum(port);
91
92#if FW_OBJECT_NAMES == 1
93 char portName[120];
94 (void) snprintf(
95 portName,
96 sizeof(portName),
97 "%s_Run_InputPort[%" PRI_PlatformIntType "]",
98 this->m_objName,
99 port
100 );
101 this->m_Run_InputPort[port].setObjName(portName);
102#endif
103 }
104
105 // Connect input port TlmGet
106 for (
107 PlatformIntType port = 0;
108 port < static_cast<PlatformIntType>(this->getNum_TlmGet_InputPorts());
109 port++
110 ) {
111 this->m_TlmGet_InputPort[port].init();
112 this->m_TlmGet_InputPort[port].addCallComp(
113 this,
114 m_p_TlmGet_in
115 );
116 this->m_TlmGet_InputPort[port].setPortNum(port);
117
118#if FW_OBJECT_NAMES == 1
119 char portName[120];
120 (void) snprintf(
121 portName,
122 sizeof(portName),
123 "%s_TlmGet_InputPort[%" PRI_PlatformIntType "]",
124 this->m_objName,
125 port
126 );
127 this->m_TlmGet_InputPort[port].setObjName(portName);
128#endif
129 }
130
131 // Connect input port TlmRecv
132 for (
133 PlatformIntType port = 0;
134 port < static_cast<PlatformIntType>(this->getNum_TlmRecv_InputPorts());
135 port++
136 ) {
137 this->m_TlmRecv_InputPort[port].init();
138 this->m_TlmRecv_InputPort[port].addCallComp(
139 this,
140 m_p_TlmRecv_in
141 );
142 this->m_TlmRecv_InputPort[port].setPortNum(port);
143
144#if FW_OBJECT_NAMES == 1
145 char portName[120];
146 (void) snprintf(
147 portName,
148 sizeof(portName),
149 "%s_TlmRecv_InputPort[%" PRI_PlatformIntType "]",
150 this->m_objName,
151 port
152 );
153 this->m_TlmRecv_InputPort[port].setObjName(portName);
154#endif
155 }
156
157 // Connect input port pingIn
158 for (
159 PlatformIntType port = 0;
160 port < static_cast<PlatformIntType>(this->getNum_pingIn_InputPorts());
161 port++
162 ) {
163 this->m_pingIn_InputPort[port].init();
164 this->m_pingIn_InputPort[port].addCallComp(
165 this,
166 m_p_pingIn_in
167 );
168 this->m_pingIn_InputPort[port].setPortNum(port);
169
170#if FW_OBJECT_NAMES == 1
171 char portName[120];
172 (void) snprintf(
173 portName,
174 sizeof(portName),
175 "%s_pingIn_InputPort[%" PRI_PlatformIntType "]",
176 this->m_objName,
177 port
178 );
179 this->m_pingIn_InputPort[port].setObjName(portName);
180#endif
181 }
182
183 // Connect output port PktSend
184 for (
185 PlatformIntType port = 0;
186 port < static_cast<PlatformIntType>(this->getNum_PktSend_OutputPorts());
187 port++
188 ) {
189 this->m_PktSend_OutputPort[port].init();
190
191#if FW_OBJECT_NAMES == 1
192 char portName[120];
193 (void) snprintf(
194 portName,
195 sizeof(portName),
196 "%s_PktSend_OutputPort[%" PRI_PlatformIntType "]",
197 this->m_objName,
198 port
199 );
200 this->m_PktSend_OutputPort[port].setObjName(portName);
201#endif
202 }
203
204 // Connect output port pingOut
205 for (
206 PlatformIntType port = 0;
207 port < static_cast<PlatformIntType>(this->getNum_pingOut_OutputPorts());
208 port++
209 ) {
210 this->m_pingOut_OutputPort[port].init();
211
212#if FW_OBJECT_NAMES == 1
213 char portName[120];
214 (void) snprintf(
215 portName,
216 sizeof(portName),
217 "%s_pingOut_OutputPort[%" PRI_PlatformIntType "]",
218 this->m_objName,
219 port
220 );
221 this->m_pingOut_OutputPort[port].setObjName(portName);
222#endif
223 }
224
225 Os::Queue::QueueStatus qStat = this->createQueue(
226 queueDepth,
227 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
228 );
229 FW_ASSERT(
230 Os::Queue::QUEUE_OK == qStat,
231 static_cast<FwAssertArgType>(qStat)
232 );
233 }
234
235 // ----------------------------------------------------------------------
236 // Getters for typed input ports
237 // ----------------------------------------------------------------------
238
239 Svc::InputSchedPort* TlmChanComponentBase ::
240 get_Run_InputPort(NATIVE_INT_TYPE portNum)
241 {
242 FW_ASSERT(
243 portNum < this->getNum_Run_InputPorts(),
244 static_cast<FwAssertArgType>(portNum)
245 );
246
247 return &this->m_Run_InputPort[portNum];
248 }
249
250 Fw::InputTlmGetPort* TlmChanComponentBase ::
251 get_TlmGet_InputPort(NATIVE_INT_TYPE portNum)
252 {
253 FW_ASSERT(
254 portNum < this->getNum_TlmGet_InputPorts(),
255 static_cast<FwAssertArgType>(portNum)
256 );
257
258 return &this->m_TlmGet_InputPort[portNum];
259 }
260
261 Fw::InputTlmPort* TlmChanComponentBase ::
262 get_TlmRecv_InputPort(NATIVE_INT_TYPE portNum)
263 {
264 FW_ASSERT(
265 portNum < this->getNum_TlmRecv_InputPorts(),
266 static_cast<FwAssertArgType>(portNum)
267 );
268
269 return &this->m_TlmRecv_InputPort[portNum];
270 }
271
272 Svc::InputPingPort* TlmChanComponentBase ::
273 get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
274 {
275 FW_ASSERT(
276 portNum < this->getNum_pingIn_InputPorts(),
277 static_cast<FwAssertArgType>(portNum)
278 );
279
280 return &this->m_pingIn_InputPort[portNum];
281 }
282
283 // ----------------------------------------------------------------------
284 // Connect typed input ports to typed output ports
285 // ----------------------------------------------------------------------
286
287 void TlmChanComponentBase ::
288 set_PktSend_OutputPort(
289 NATIVE_INT_TYPE portNum,
290 Fw::InputComPort* port
291 )
292 {
293 FW_ASSERT(
294 portNum < this->getNum_PktSend_OutputPorts(),
295 static_cast<FwAssertArgType>(portNum)
296 );
297
298 this->m_PktSend_OutputPort[portNum].addCallPort(port);
299 }
300
301 void TlmChanComponentBase ::
302 set_pingOut_OutputPort(
303 NATIVE_INT_TYPE portNum,
305 )
306 {
307 FW_ASSERT(
308 portNum < this->getNum_pingOut_OutputPorts(),
309 static_cast<FwAssertArgType>(portNum)
310 );
311
312 this->m_pingOut_OutputPort[portNum].addCallPort(port);
313 }
314
315#if FW_PORT_SERIALIZATION
316
317 // ----------------------------------------------------------------------
318 // Connect serial input ports to typed output ports
319 // ----------------------------------------------------------------------
320
321 void TlmChanComponentBase ::
322 set_PktSend_OutputPort(
323 NATIVE_INT_TYPE portNum,
324 Fw::InputSerializePort* port
325 )
326 {
327 FW_ASSERT(
328 portNum < this->getNum_PktSend_OutputPorts(),
329 static_cast<FwAssertArgType>(portNum)
330 );
331
332 this->m_PktSend_OutputPort[portNum].registerSerialPort(port);
333 }
334
335 void TlmChanComponentBase ::
336 set_pingOut_OutputPort(
337 NATIVE_INT_TYPE portNum,
338 Fw::InputSerializePort* port
339 )
340 {
341 FW_ASSERT(
342 portNum < this->getNum_pingOut_OutputPorts(),
343 static_cast<FwAssertArgType>(portNum)
344 );
345
346 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
347 }
348
349#endif
350
351 // ----------------------------------------------------------------------
352 // Component construction and destruction
353 // ----------------------------------------------------------------------
354
355 TlmChanComponentBase ::
356 TlmChanComponentBase(const char* compName) :
357 Fw::ActiveComponentBase(compName)
358 {
359
360 }
361
362 TlmChanComponentBase ::
363 ~TlmChanComponentBase()
364 {
365
366 }
367
368 // ----------------------------------------------------------------------
369 // Getters for numbers of typed input ports
370 // ----------------------------------------------------------------------
371
372 NATIVE_INT_TYPE TlmChanComponentBase ::
373 getNum_Run_InputPorts() const
374 {
375 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_Run_InputPort));
376 }
377
378 NATIVE_INT_TYPE TlmChanComponentBase ::
379 getNum_TlmGet_InputPorts() const
380 {
381 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_TlmGet_InputPort));
382 }
383
384 NATIVE_INT_TYPE TlmChanComponentBase ::
385 getNum_TlmRecv_InputPorts() const
386 {
387 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_TlmRecv_InputPort));
388 }
389
390 NATIVE_INT_TYPE TlmChanComponentBase ::
391 getNum_pingIn_InputPorts() const
392 {
393 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_pingIn_InputPort));
394 }
395
396 // ----------------------------------------------------------------------
397 // Getters for numbers of typed output ports
398 // ----------------------------------------------------------------------
399
400 NATIVE_INT_TYPE TlmChanComponentBase ::
401 getNum_PktSend_OutputPorts() const
402 {
403 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_PktSend_OutputPort));
404 }
405
406 NATIVE_INT_TYPE TlmChanComponentBase ::
407 getNum_pingOut_OutputPorts() const
408 {
409 return static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_pingOut_OutputPort));
410 }
411
412 // ----------------------------------------------------------------------
413 // Connection status queries for typed output ports
414 // ----------------------------------------------------------------------
415
416 bool TlmChanComponentBase ::
417 isConnected_PktSend_OutputPort(NATIVE_INT_TYPE portNum)
418 {
419 FW_ASSERT(
420 portNum < this->getNum_PktSend_OutputPorts(),
421 static_cast<FwAssertArgType>(portNum)
422 );
423
424 return this->m_PktSend_OutputPort[portNum].isConnected();
425 }
426
427 bool TlmChanComponentBase ::
428 isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
429 {
430 FW_ASSERT(
431 portNum < this->getNum_pingOut_OutputPorts(),
432 static_cast<FwAssertArgType>(portNum)
433 );
434
435 return this->m_pingOut_OutputPort[portNum].isConnected();
436 }
437
438 // ----------------------------------------------------------------------
439 // Port handler base-class functions for typed input ports
440 //
441 // Call these functions directly to bypass the corresponding ports
442 // ----------------------------------------------------------------------
443
444 void TlmChanComponentBase ::
445 Run_handlerBase(
446 NATIVE_INT_TYPE portNum,
447 NATIVE_UINT_TYPE context
448 )
449 {
450 // Make sure port number is valid
451 FW_ASSERT(
452 portNum < this->getNum_Run_InputPorts(),
453 static_cast<FwAssertArgType>(portNum)
454 );
455
456 // Call pre-message hook
457 Run_preMsgHook(
458 portNum,
459 context
460 );
461 ComponentIpcSerializableBuffer msg;
463
464 // Serialize message ID
465 _status = msg.serialize(
466 static_cast<NATIVE_INT_TYPE>(RUN_SCHED)
467 );
468 FW_ASSERT(
469 _status == Fw::FW_SERIALIZE_OK,
470 static_cast<FwAssertArgType>(_status)
471 );
472
473 // Serialize port number
474 _status = msg.serialize(portNum);
475 FW_ASSERT(
476 _status == Fw::FW_SERIALIZE_OK,
477 static_cast<FwAssertArgType>(_status)
478 );
479
480 // Serialize argument context
481 _status = msg.serialize(context);
482 FW_ASSERT(
483 _status == Fw::FW_SERIALIZE_OK,
484 static_cast<FwAssertArgType>(_status)
485 );
486
487 // Send message
489 Os::Queue::QueueStatus qStatus = this->m_queue.send(msg, 0, _block);
490
491 FW_ASSERT(
492 qStatus == Os::Queue::QUEUE_OK,
493 static_cast<FwAssertArgType>(qStatus)
494 );
495 }
496
497 void TlmChanComponentBase ::
498 TlmGet_handlerBase(
499 NATIVE_INT_TYPE portNum,
500 FwChanIdType id,
501 Fw::Time& timeTag,
502 Fw::TlmBuffer& val
503 )
504 {
505 // Make sure port number is valid
506 FW_ASSERT(
507 portNum < this->getNum_TlmGet_InputPorts(),
508 static_cast<FwAssertArgType>(portNum)
509 );
510
511 // Lock guard mutex before calling
512 this->lock();
513
514 // Down call to pure virtual handler method implemented in Impl class
515 this->TlmGet_handler(
516 portNum,
517 id,
518 timeTag,
519 val
520 );
521
522 // Unlock guard mutex
523 this->unLock();
524 }
525
526 void TlmChanComponentBase ::
527 TlmRecv_handlerBase(
528 NATIVE_INT_TYPE portNum,
529 FwChanIdType id,
530 Fw::Time& timeTag,
531 Fw::TlmBuffer& val
532 )
533 {
534 // Make sure port number is valid
535 FW_ASSERT(
536 portNum < this->getNum_TlmRecv_InputPorts(),
537 static_cast<FwAssertArgType>(portNum)
538 );
539
540 // Lock guard mutex before calling
541 this->lock();
542
543 // Down call to pure virtual handler method implemented in Impl class
544 this->TlmRecv_handler(
545 portNum,
546 id,
547 timeTag,
548 val
549 );
550
551 // Unlock guard mutex
552 this->unLock();
553 }
554
555 void TlmChanComponentBase ::
556 pingIn_handlerBase(
557 NATIVE_INT_TYPE portNum,
558 U32 key
559 )
560 {
561 // Make sure port number is valid
562 FW_ASSERT(
563 portNum < this->getNum_pingIn_InputPorts(),
564 static_cast<FwAssertArgType>(portNum)
565 );
566
567 // Call pre-message hook
568 pingIn_preMsgHook(
569 portNum,
570 key
571 );
572 ComponentIpcSerializableBuffer msg;
574
575 // Serialize message ID
576 _status = msg.serialize(
577 static_cast<NATIVE_INT_TYPE>(PINGIN_PING)
578 );
579 FW_ASSERT(
580 _status == Fw::FW_SERIALIZE_OK,
581 static_cast<FwAssertArgType>(_status)
582 );
583
584 // Serialize port number
585 _status = msg.serialize(portNum);
586 FW_ASSERT(
587 _status == Fw::FW_SERIALIZE_OK,
588 static_cast<FwAssertArgType>(_status)
589 );
590
591 // Serialize argument key
592 _status = msg.serialize(key);
593 FW_ASSERT(
594 _status == Fw::FW_SERIALIZE_OK,
595 static_cast<FwAssertArgType>(_status)
596 );
597
598 // Send message
600 Os::Queue::QueueStatus qStatus = this->m_queue.send(msg, 0, _block);
601
602 FW_ASSERT(
603 qStatus == Os::Queue::QUEUE_OK,
604 static_cast<FwAssertArgType>(qStatus)
605 );
606 }
607
608 // ----------------------------------------------------------------------
609 // Pre-message hooks for typed async input ports
610 //
611 // Each of these functions is invoked just before processing a message
612 // on the corresponding port. By default, they do nothing. You can
613 // override them to provide specific pre-message behavior.
614 // ----------------------------------------------------------------------
615
616 void TlmChanComponentBase ::
617 Run_preMsgHook(
618 NATIVE_INT_TYPE portNum,
619 NATIVE_UINT_TYPE context
620 )
621 {
622 // Default: no-op
623 }
624
625 void TlmChanComponentBase ::
626 pingIn_preMsgHook(
627 NATIVE_INT_TYPE portNum,
628 U32 key
629 )
630 {
631 // Default: no-op
632 }
633
634 // ----------------------------------------------------------------------
635 // Invocation functions for typed output ports
636 // ----------------------------------------------------------------------
637
638 void TlmChanComponentBase ::
639 PktSend_out(
640 NATIVE_INT_TYPE portNum,
641 Fw::ComBuffer& data,
642 U32 context
643 )
644 {
645 FW_ASSERT(
646 portNum < this->getNum_PktSend_OutputPorts(),
647 static_cast<FwAssertArgType>(portNum)
648 );
649 this->m_PktSend_OutputPort[portNum].invoke(
650 data,
651 context
652 );
653 }
654
655 void TlmChanComponentBase ::
656 pingOut_out(
657 NATIVE_INT_TYPE portNum,
658 U32 key
659 )
660 {
661 FW_ASSERT(
662 portNum < this->getNum_pingOut_OutputPorts(),
663 static_cast<FwAssertArgType>(portNum)
664 );
665 this->m_pingOut_OutputPort[portNum].invoke(
666 key
667 );
668 }
669
670 // ----------------------------------------------------------------------
671 // Mutex operations for guarded ports
672 //
673 // You can override these operations to provide more sophisticated
674 // synchronization
675 // ----------------------------------------------------------------------
676
677 void TlmChanComponentBase ::
678 lock()
679 {
680 this->m_guardedPortMutex.lock();
681 }
682
683 void TlmChanComponentBase ::
684 unLock()
685 {
686 this->m_guardedPortMutex.unLock();
687 }
688
689 // ----------------------------------------------------------------------
690 // Message dispatch functions
691 // ----------------------------------------------------------------------
692
693 Fw::QueuedComponentBase::MsgDispatchStatus TlmChanComponentBase ::
694 doDispatch()
695 {
696 ComponentIpcSerializableBuffer msg;
697 NATIVE_INT_TYPE priority = 0;
698
699 Os::Queue::QueueStatus msgStatus = this->m_queue.receive(
700 msg,
701 priority,
703 );
704 FW_ASSERT(
705 msgStatus == Os::Queue::QUEUE_OK,
706 static_cast<FwAssertArgType>(msgStatus)
707 );
708
709 // Reset to beginning of buffer
710 msg.resetDeser();
711
712 NATIVE_INT_TYPE desMsg = 0;
713 Fw::SerializeStatus deserStatus = msg.deserialize(desMsg);
714 FW_ASSERT(
715 deserStatus == Fw::FW_SERIALIZE_OK,
716 static_cast<FwAssertArgType>(deserStatus)
717 );
718
719 MsgTypeEnum msgType = static_cast<MsgTypeEnum>(desMsg);
720
721 if (msgType == TLMCHAN_COMPONENT_EXIT) {
722 return MSG_DISPATCH_EXIT;
723 }
724
725 NATIVE_INT_TYPE portNum = 0;
726 deserStatus = msg.deserialize(portNum);
727 FW_ASSERT(
728 deserStatus == Fw::FW_SERIALIZE_OK,
729 static_cast<FwAssertArgType>(deserStatus)
730 );
731
732 switch (msgType) {
733 // Handle async input port Run
734 case RUN_SCHED: {
735 // Deserialize argument context
736 NATIVE_UINT_TYPE context;
737 deserStatus = msg.deserialize(context);
738 FW_ASSERT(
739 deserStatus == Fw::FW_SERIALIZE_OK,
740 static_cast<FwAssertArgType>(deserStatus)
741 );
742 // Call handler function
743 this->Run_handler(
744 portNum,
745 context
746 );
747
748 break;
749 }
750
751 // Handle async input port pingIn
752 case PINGIN_PING: {
753 // Deserialize argument key
754 U32 key;
755 deserStatus = msg.deserialize(key);
756 FW_ASSERT(
757 deserStatus == Fw::FW_SERIALIZE_OK,
758 static_cast<FwAssertArgType>(deserStatus)
759 );
760 // Call handler function
761 this->pingIn_handler(
762 portNum,
763 key
764 );
765
766 break;
767 }
768
769 default:
770 return MSG_DISPATCH_ERROR;
771 }
772
773 return MSG_DISPATCH_OK;
774 }
775
776 // ----------------------------------------------------------------------
777 // Calls for messages received on typed input ports
778 // ----------------------------------------------------------------------
779
780 void TlmChanComponentBase ::
781 m_p_Run_in(
782 Fw::PassiveComponentBase* callComp,
783 NATIVE_INT_TYPE portNum,
784 NATIVE_UINT_TYPE context
785 )
786 {
787 FW_ASSERT(callComp);
788 TlmChanComponentBase* compPtr = static_cast<TlmChanComponentBase*>(callComp);
789 compPtr->Run_handlerBase(
790 portNum,
791 context
792 );
793 }
794
795 void TlmChanComponentBase ::
796 m_p_TlmGet_in(
797 Fw::PassiveComponentBase* callComp,
798 NATIVE_INT_TYPE portNum,
799 FwChanIdType id,
800 Fw::Time& timeTag,
801 Fw::TlmBuffer& val
802 )
803 {
804 FW_ASSERT(callComp);
805 TlmChanComponentBase* compPtr = static_cast<TlmChanComponentBase*>(callComp);
806 compPtr->TlmGet_handlerBase(
807 portNum,
808 id,
809 timeTag,
810 val
811 );
812 }
813
814 void TlmChanComponentBase ::
815 m_p_TlmRecv_in(
816 Fw::PassiveComponentBase* callComp,
817 NATIVE_INT_TYPE portNum,
818 FwChanIdType id,
819 Fw::Time& timeTag,
820 Fw::TlmBuffer& val
821 )
822 {
823 FW_ASSERT(callComp);
824 TlmChanComponentBase* compPtr = static_cast<TlmChanComponentBase*>(callComp);
825 compPtr->TlmRecv_handlerBase(
826 portNum,
827 id,
828 timeTag,
829 val
830 );
831 }
832
833 void TlmChanComponentBase ::
834 m_p_pingIn_in(
835 Fw::PassiveComponentBase* callComp,
836 NATIVE_INT_TYPE portNum,
837 U32 key
838 )
839 {
840 FW_ASSERT(callComp);
841 TlmChanComponentBase* compPtr = static_cast<TlmChanComponentBase*>(callComp);
842 compPtr->pingIn_handlerBase(
843 portNum,
844 key
845 );
846 }
847
848}
#define FW_ASSERT(...)
Definition Assert.hpp:7
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
U8 BYTE
byte type
Definition BasicTypes.h:27
uint8_t U8
8-bit unsigned integer
Definition BasicTypes.h:26
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition BasicTypes.h:66
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
int PlatformIntType
DefaultTypes.hpp provides fallback defaults for the platform types.
#define PRI_PlatformIntType
PlatformAssertArgType FwAssertArgType
Definition FpConfig.h:21
U32 FwChanIdType
Definition FpConfig.h:59
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
void init()
Object initializer.
Definition ObjBase.cpp:27
@ QUEUE_OK
message sent/received okay
Definition Queue.hpp:28
QueueBlocking
Definition Queue.hpp:40
@ QUEUE_BLOCKING
Queue receive blocks until a message arrives.
Definition Queue.hpp:41
@ QUEUE_NONBLOCKING
Queue receive always returns even if there is no message.
Definition Queue.hpp:42
@ SERIALIZED_SIZE
The size of the serial representations of the port arguments.
@ SERIALIZED_SIZE
The size of the serial representations of the port arguments.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.