F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
TcDeframerComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title TcDeframerComponentAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for TcDeframer component base class
5 // ======================================================================
6 
7 #include "Fw/Types/Assert.hpp"
9 #if FW_ENABLE_TEXT_LOGGING
10 #include "Fw/Types/String.hpp"
11 #endif
13 
14 namespace Svc {
15 
16  namespace Ccsds {
17 
18  // ----------------------------------------------------------------------
19  // Component initialization
20  // ----------------------------------------------------------------------
21 
24  {
25  // Initialize base class
27 
28 #if !FW_DIRECT_PORT_CALLS
29  // Connect input port dataIn
30  for (
31  FwIndexType port = 0;
32  port < static_cast<FwIndexType>(this->getNum_dataIn_InputPorts());
33  port++
34  ) {
35  this->m_dataIn_InputPort[port].init();
36  this->m_dataIn_InputPort[port].addCallComp(
37  this,
38  m_p_dataIn_in
39  );
40  this->m_dataIn_InputPort[port].setPortNum(port);
41 
42 #if FW_OBJECT_NAMES == 1
43  Fw::ObjectName portName;
44  portName.format(
45  "%s_dataIn_InputPort[%" PRI_FwIndexType "]",
46  this->m_objName.toChar(),
47  port
48  );
49  this->m_dataIn_InputPort[port].setObjName(portName.toChar());
50 #endif
51  }
52 #endif
53 
54 #if !FW_DIRECT_PORT_CALLS
55  // Connect input port dataReturnIn
56  for (
57  FwIndexType port = 0;
58  port < static_cast<FwIndexType>(this->getNum_dataReturnIn_InputPorts());
59  port++
60  ) {
61  this->m_dataReturnIn_InputPort[port].init();
62  this->m_dataReturnIn_InputPort[port].addCallComp(
63  this,
64  m_p_dataReturnIn_in
65  );
66  this->m_dataReturnIn_InputPort[port].setPortNum(port);
67 
68 #if FW_OBJECT_NAMES == 1
69  Fw::ObjectName portName;
70  portName.format(
71  "%s_dataReturnIn_InputPort[%" PRI_FwIndexType "]",
72  this->m_objName.toChar(),
73  port
74  );
75  this->m_dataReturnIn_InputPort[port].setObjName(portName.toChar());
76 #endif
77  }
78 #endif
79 
80 #if !FW_DIRECT_PORT_CALLS
81  // Connect output port logOut
82  for (
83  FwIndexType port = 0;
84  port < static_cast<FwIndexType>(this->getNum_logOut_OutputPorts());
85  port++
86  ) {
87  this->m_logOut_OutputPort[port].init();
88 
89 #if FW_OBJECT_NAMES == 1
90  Fw::ObjectName portName;
91  portName.format(
92  "%s_logOut_OutputPort[%" PRI_FwIndexType "]",
93  this->m_objName.toChar(),
94  port
95  );
96  this->m_logOut_OutputPort[port].setObjName(portName.toChar());
97 #endif
98  }
99 #endif
100 
101 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING
102  // Connect output port logTextOut
103  for (
104  FwIndexType port = 0;
105  port < static_cast<FwIndexType>(this->getNum_logTextOut_OutputPorts());
106  port++
107  ) {
108  this->m_logTextOut_OutputPort[port].init();
109 
110 #if FW_OBJECT_NAMES == 1
111  Fw::ObjectName portName;
112  portName.format(
113  "%s_logTextOut_OutputPort[%" PRI_FwIndexType "]",
114  this->m_objName.toChar(),
115  port
116  );
117  this->m_logTextOut_OutputPort[port].setObjName(portName.toChar());
118 #endif
119  }
120 #endif
121 
122 #if !FW_DIRECT_PORT_CALLS
123  // Connect output port prmGetOut
124  for (
125  FwIndexType port = 0;
126  port < static_cast<FwIndexType>(this->getNum_prmGetOut_OutputPorts());
127  port++
128  ) {
129  this->m_prmGetOut_OutputPort[port].init();
130 
131 #if FW_OBJECT_NAMES == 1
132  Fw::ObjectName portName;
133  portName.format(
134  "%s_prmGetOut_OutputPort[%" PRI_FwIndexType "]",
135  this->m_objName.toChar(),
136  port
137  );
138  this->m_prmGetOut_OutputPort[port].setObjName(portName.toChar());
139 #endif
140  }
141 #endif
142 
143 #if !FW_DIRECT_PORT_CALLS
144  // Connect output port prmSetOut
145  for (
146  FwIndexType port = 0;
147  port < static_cast<FwIndexType>(this->getNum_prmSetOut_OutputPorts());
148  port++
149  ) {
150  this->m_prmSetOut_OutputPort[port].init();
151 
152 #if FW_OBJECT_NAMES == 1
153  Fw::ObjectName portName;
154  portName.format(
155  "%s_prmSetOut_OutputPort[%" PRI_FwIndexType "]",
156  this->m_objName.toChar(),
157  port
158  );
159  this->m_prmSetOut_OutputPort[port].setObjName(portName.toChar());
160 #endif
161  }
162 #endif
163 
164 #if !FW_DIRECT_PORT_CALLS
165  // Connect output port timeCaller
166  for (
167  FwIndexType port = 0;
168  port < static_cast<FwIndexType>(this->getNum_timeCaller_OutputPorts());
169  port++
170  ) {
171  this->m_timeCaller_OutputPort[port].init();
172 
173 #if FW_OBJECT_NAMES == 1
174  Fw::ObjectName portName;
175  portName.format(
176  "%s_timeCaller_OutputPort[%" PRI_FwIndexType "]",
177  this->m_objName.toChar(),
178  port
179  );
180  this->m_timeCaller_OutputPort[port].setObjName(portName.toChar());
181 #endif
182  }
183 #endif
184 
185 #if !FW_DIRECT_PORT_CALLS
186  // Connect output port tlmOut
187  for (
188  FwIndexType port = 0;
189  port < static_cast<FwIndexType>(this->getNum_tlmOut_OutputPorts());
190  port++
191  ) {
192  this->m_tlmOut_OutputPort[port].init();
193 
194 #if FW_OBJECT_NAMES == 1
195  Fw::ObjectName portName;
196  portName.format(
197  "%s_tlmOut_OutputPort[%" PRI_FwIndexType "]",
198  this->m_objName.toChar(),
199  port
200  );
201  this->m_tlmOut_OutputPort[port].setObjName(portName.toChar());
202 #endif
203  }
204 #endif
205 
206 #if !FW_DIRECT_PORT_CALLS
207  // Connect output port dataOut
208  for (
209  FwIndexType port = 0;
210  port < static_cast<FwIndexType>(this->getNum_dataOut_OutputPorts());
211  port++
212  ) {
213  this->m_dataOut_OutputPort[port].init();
214 
215 #if FW_OBJECT_NAMES == 1
216  Fw::ObjectName portName;
217  portName.format(
218  "%s_dataOut_OutputPort[%" PRI_FwIndexType "]",
219  this->m_objName.toChar(),
220  port
221  );
222  this->m_dataOut_OutputPort[port].setObjName(portName.toChar());
223 #endif
224  }
225 #endif
226 
227 #if !FW_DIRECT_PORT_CALLS
228  // Connect output port dataReturnOut
229  for (
230  FwIndexType port = 0;
231  port < static_cast<FwIndexType>(this->getNum_dataReturnOut_OutputPorts());
232  port++
233  ) {
234  this->m_dataReturnOut_OutputPort[port].init();
235 
236 #if FW_OBJECT_NAMES == 1
237  Fw::ObjectName portName;
238  portName.format(
239  "%s_dataReturnOut_OutputPort[%" PRI_FwIndexType "]",
240  this->m_objName.toChar(),
241  port
242  );
243  this->m_dataReturnOut_OutputPort[port].setObjName(portName.toChar());
244 #endif
245  }
246 #endif
247 
248 #if !FW_DIRECT_PORT_CALLS
249  // Connect output port errorNotify
250  for (
251  FwIndexType port = 0;
252  port < static_cast<FwIndexType>(this->getNum_errorNotify_OutputPorts());
253  port++
254  ) {
255  this->m_errorNotify_OutputPort[port].init();
256 
257 #if FW_OBJECT_NAMES == 1
258  Fw::ObjectName portName;
259  portName.format(
260  "%s_errorNotify_OutputPort[%" PRI_FwIndexType "]",
261  this->m_objName.toChar(),
262  port
263  );
264  this->m_errorNotify_OutputPort[port].setObjName(portName.toChar());
265 #endif
266  }
267 #endif
268  }
269 
270 #if !FW_DIRECT_PORT_CALLS
271 
272  // ----------------------------------------------------------------------
273  // Getters for typed input ports
274  // ----------------------------------------------------------------------
275 
278  {
279  FW_ASSERT(
280  (0 <= portNum) && (portNum < this->getNum_dataIn_InputPorts()),
281  static_cast<FwAssertArgType>(portNum)
282  );
283 
284  return &this->m_dataIn_InputPort[portNum];
285  }
286 
289  {
290  FW_ASSERT(
291  (0 <= portNum) && (portNum < this->getNum_dataReturnIn_InputPorts()),
292  static_cast<FwAssertArgType>(portNum)
293  );
294 
295  return &this->m_dataReturnIn_InputPort[portNum];
296  }
297 
298 #endif
299 
300 #if !FW_DIRECT_PORT_CALLS
301 
302  // ----------------------------------------------------------------------
303  // Connect input ports to special output ports
304  // ----------------------------------------------------------------------
305 
308  FwIndexType portNum,
309  Fw::InputLogPort* port
310  )
311  {
312  FW_ASSERT(
313  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
314  static_cast<FwAssertArgType>(portNum)
315  );
316 
317  this->m_logOut_OutputPort[portNum].addCallPort(port);
318  }
319 
320 #if FW_ENABLE_TEXT_LOGGING == 1
321 
322  void TcDeframerComponentBase ::
323  set_logTextOut_OutputPort(
324  FwIndexType portNum,
326  )
327  {
328  FW_ASSERT(
329  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
330  static_cast<FwAssertArgType>(portNum)
331  );
332 
333  this->m_logTextOut_OutputPort[portNum].addCallPort(port);
334  }
335 
336 #endif
337 
340  FwIndexType portNum,
341  Fw::InputPrmGetPort* port
342  )
343  {
344  FW_ASSERT(
345  (0 <= portNum) && (portNum < this->getNum_prmGetOut_OutputPorts()),
346  static_cast<FwAssertArgType>(portNum)
347  );
348 
349  this->m_prmGetOut_OutputPort[portNum].addCallPort(port);
350  }
351 
354  FwIndexType portNum,
355  Fw::InputPrmSetPort* port
356  )
357  {
358  FW_ASSERT(
359  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
360  static_cast<FwAssertArgType>(portNum)
361  );
362 
363  this->m_prmSetOut_OutputPort[portNum].addCallPort(port);
364  }
365 
368  FwIndexType portNum,
369  Fw::InputTimePort* port
370  )
371  {
372  FW_ASSERT(
373  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
374  static_cast<FwAssertArgType>(portNum)
375  );
376 
377  this->m_timeCaller_OutputPort[portNum].addCallPort(port);
378  }
379 
382  FwIndexType portNum,
383  Fw::InputTlmPort* port
384  )
385  {
386  FW_ASSERT(
387  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
388  static_cast<FwAssertArgType>(portNum)
389  );
390 
391  this->m_tlmOut_OutputPort[portNum].addCallPort(port);
392  }
393 
394 #endif
395 
396 #if !FW_DIRECT_PORT_CALLS
397 
398  // ----------------------------------------------------------------------
399  // Connect typed input ports to typed output ports
400  // ----------------------------------------------------------------------
401 
404  FwIndexType portNum,
406  )
407  {
408  FW_ASSERT(
409  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
410  static_cast<FwAssertArgType>(portNum)
411  );
412 
413  this->m_dataOut_OutputPort[portNum].addCallPort(port);
414  }
415 
418  FwIndexType portNum,
420  )
421  {
422  FW_ASSERT(
423  (0 <= portNum) && (portNum < this->getNum_dataReturnOut_OutputPorts()),
424  static_cast<FwAssertArgType>(portNum)
425  );
426 
427  this->m_dataReturnOut_OutputPort[portNum].addCallPort(port);
428  }
429 
432  FwIndexType portNum,
434  )
435  {
436  FW_ASSERT(
437  (0 <= portNum) && (portNum < this->getNum_errorNotify_OutputPorts()),
438  static_cast<FwAssertArgType>(portNum)
439  );
440 
441  this->m_errorNotify_OutputPort[portNum].addCallPort(port);
442  }
443 
444 #endif
445 
446 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
447 
448  // ----------------------------------------------------------------------
449  // Connect serial input ports to special output ports
450  // ----------------------------------------------------------------------
451 
454  FwIndexType portNum,
455  Fw::InputSerializePort* port
456  )
457  {
458  FW_ASSERT(
459  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
460  static_cast<FwAssertArgType>(portNum)
461  );
462 
463  this->m_logOut_OutputPort[portNum].registerSerialPort(port);
464  }
465 
466 #if FW_ENABLE_TEXT_LOGGING == 1
467 
468  void TcDeframerComponentBase ::
469  set_logTextOut_OutputPort(
470  FwIndexType portNum,
471  Fw::InputSerializePort* port
472  )
473  {
474  FW_ASSERT(
475  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
476  static_cast<FwAssertArgType>(portNum)
477  );
478 
479  this->m_logTextOut_OutputPort[portNum].registerSerialPort(port);
480  }
481 
482 #endif
483 
486  FwIndexType portNum,
487  Fw::InputSerializePort* port
488  )
489  {
490  FW_ASSERT(
491  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
492  static_cast<FwAssertArgType>(portNum)
493  );
494 
495  this->m_prmSetOut_OutputPort[portNum].registerSerialPort(port);
496  }
497 
500  FwIndexType portNum,
501  Fw::InputSerializePort* port
502  )
503  {
504  FW_ASSERT(
505  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
506  static_cast<FwAssertArgType>(portNum)
507  );
508 
509  this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
510  }
511 
514  FwIndexType portNum,
515  Fw::InputSerializePort* port
516  )
517  {
518  FW_ASSERT(
519  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
520  static_cast<FwAssertArgType>(portNum)
521  );
522 
523  this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
524  }
525 
526 #endif
527 
528 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
529 
530  // ----------------------------------------------------------------------
531  // Connect serial input ports to typed output ports
532  // ----------------------------------------------------------------------
533 
536  FwIndexType portNum,
537  Fw::InputSerializePort* port
538  )
539  {
540  FW_ASSERT(
541  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
542  static_cast<FwAssertArgType>(portNum)
543  );
544 
545  this->m_dataOut_OutputPort[portNum].registerSerialPort(port);
546  }
547 
550  FwIndexType portNum,
551  Fw::InputSerializePort* port
552  )
553  {
554  FW_ASSERT(
555  (0 <= portNum) && (portNum < this->getNum_dataReturnOut_OutputPorts()),
556  static_cast<FwAssertArgType>(portNum)
557  );
558 
559  this->m_dataReturnOut_OutputPort[portNum].registerSerialPort(port);
560  }
561 
564  FwIndexType portNum,
565  Fw::InputSerializePort* port
566  )
567  {
568  FW_ASSERT(
569  (0 <= portNum) && (portNum < this->getNum_errorNotify_OutputPorts()),
570  static_cast<FwAssertArgType>(portNum)
571  );
572 
573  this->m_errorNotify_OutputPort[portNum].registerSerialPort(port);
574  }
575 
576 #endif
577 
578  // ----------------------------------------------------------------------
579  // Component construction and destruction
580  // ----------------------------------------------------------------------
581 
583  TcDeframerComponentBase(const char* compName) :
584  Fw::PassiveComponentBase(compName)
585  {
586 
587  }
588 
591  {
592 
593  }
594 
595 #if !FW_DIRECT_PORT_CALLS
596 
597  // ----------------------------------------------------------------------
598  // Connection status queries for special output ports
599  // ----------------------------------------------------------------------
600 
603  {
604  FW_ASSERT(
605  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
606  static_cast<FwAssertArgType>(portNum)
607  );
608 
609  return this->m_logOut_OutputPort[portNum].isConnected();
610  }
611 
612 #if FW_ENABLE_TEXT_LOGGING == 1
613 
614  bool TcDeframerComponentBase ::
615  isConnected_logTextOut_OutputPort(FwIndexType portNum) const
616  {
617  FW_ASSERT(
618  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
619  static_cast<FwAssertArgType>(portNum)
620  );
621 
622  return this->m_logTextOut_OutputPort[portNum].isConnected();
623  }
624 
625 #endif
626 
629  {
630  FW_ASSERT(
631  (0 <= portNum) && (portNum < this->getNum_prmGetOut_OutputPorts()),
632  static_cast<FwAssertArgType>(portNum)
633  );
634 
635  return this->m_prmGetOut_OutputPort[portNum].isConnected();
636  }
637 
640  {
641  FW_ASSERT(
642  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
643  static_cast<FwAssertArgType>(portNum)
644  );
645 
646  return this->m_prmSetOut_OutputPort[portNum].isConnected();
647  }
648 
651  {
652  FW_ASSERT(
653  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
654  static_cast<FwAssertArgType>(portNum)
655  );
656 
657  return this->m_timeCaller_OutputPort[portNum].isConnected();
658  }
659 
662  {
663  FW_ASSERT(
664  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
665  static_cast<FwAssertArgType>(portNum)
666  );
667 
668  return this->m_tlmOut_OutputPort[portNum].isConnected();
669  }
670 
671 #endif
672 
673 #if !FW_DIRECT_PORT_CALLS
674 
675  // ----------------------------------------------------------------------
676  // Connection status queries for typed output ports
677  // ----------------------------------------------------------------------
678 
681  {
682  FW_ASSERT(
683  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
684  static_cast<FwAssertArgType>(portNum)
685  );
686 
687  return this->m_dataOut_OutputPort[portNum].isConnected();
688  }
689 
692  {
693  FW_ASSERT(
694  (0 <= portNum) && (portNum < this->getNum_dataReturnOut_OutputPorts()),
695  static_cast<FwAssertArgType>(portNum)
696  );
697 
698  return this->m_dataReturnOut_OutputPort[portNum].isConnected();
699  }
700 
703  {
704  FW_ASSERT(
705  (0 <= portNum) && (portNum < this->getNum_errorNotify_OutputPorts()),
706  static_cast<FwAssertArgType>(portNum)
707  );
708 
709  return this->m_errorNotify_OutputPort[portNum].isConnected();
710  }
711 
712 #endif
713 
714  // ----------------------------------------------------------------------
715  // Port handler base-class functions for typed input ports
716  //
717  // Call these functions directly to bypass the corresponding ports
718  // ----------------------------------------------------------------------
719 
722  FwIndexType portNum,
723  Fw::Buffer& data,
724  const ComCfg::FrameContext& context
725  )
726  {
727  // Make sure port number is valid
728  FW_ASSERT(
729  (0 <= portNum) && (portNum < this->getNum_dataIn_InputPorts()),
730  static_cast<FwAssertArgType>(portNum)
731  );
732 
733  // Lock guard mutex before calling
734  this->lock();
735 
736  // Call handler function
737  this->dataIn_handler(
738  portNum,
739  data,
740  context
741  );
742 
743  // Unlock guard mutex
744  this->unLock();
745  }
746 
749  FwIndexType portNum,
750  Fw::Buffer& data,
751  const ComCfg::FrameContext& context
752  )
753  {
754  // Make sure port number is valid
755  FW_ASSERT(
756  (0 <= portNum) && (portNum < this->getNum_dataReturnIn_InputPorts()),
757  static_cast<FwAssertArgType>(portNum)
758  );
759 
760  // Call handler function
761  this->dataReturnIn_handler(
762  portNum,
763  data,
764  context
765  );
766  }
767 
768 #if !FW_DIRECT_PORT_CALLS
769 
770  // ----------------------------------------------------------------------
771  // Invocation functions for typed output ports
772  // ----------------------------------------------------------------------
773 
776  FwIndexType portNum,
777  Fw::Buffer& data,
778  const ComCfg::FrameContext& context
779  ) const
780  {
781  FW_ASSERT(
782  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
783  static_cast<FwAssertArgType>(portNum)
784  );
785 
786  FW_ASSERT(
787  this->m_dataOut_OutputPort[portNum].isConnected(),
788  static_cast<FwAssertArgType>(portNum)
789  );
790  this->m_dataOut_OutputPort[portNum].invoke(
791  data,
792  context
793  );
794  }
795 
798  FwIndexType portNum,
799  Fw::Buffer& data,
800  const ComCfg::FrameContext& context
801  ) const
802  {
803  FW_ASSERT(
804  (0 <= portNum) && (portNum < this->getNum_dataReturnOut_OutputPorts()),
805  static_cast<FwAssertArgType>(portNum)
806  );
807 
808  FW_ASSERT(
809  this->m_dataReturnOut_OutputPort[portNum].isConnected(),
810  static_cast<FwAssertArgType>(portNum)
811  );
812  this->m_dataReturnOut_OutputPort[portNum].invoke(
813  data,
814  context
815  );
816  }
817 
820  FwIndexType portNum,
821  const Svc::Ccsds::FrameError& errorCode
822  ) const
823  {
824  FW_ASSERT(
825  (0 <= portNum) && (portNum < this->getNum_errorNotify_OutputPorts()),
826  static_cast<FwAssertArgType>(portNum)
827  );
828 
829  FW_ASSERT(
830  this->m_errorNotify_OutputPort[portNum].isConnected(),
831  static_cast<FwAssertArgType>(portNum)
832  );
833  this->m_errorNotify_OutputPort[portNum].invoke(
834  errorCode
835  );
836  }
837 
838 #endif
839 
840  // ----------------------------------------------------------------------
841  // Event logging functions
842  // ----------------------------------------------------------------------
843 
846  {
847  // Get the time
848  Fw::Time _logTime;
849  if (this->isConnected_timeCaller_OutputPort(0)) {
850  this->timeCaller_out(0, _logTime);
851  }
852 
853  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDPACKET;
854 
855  // Emit the event on the log port
856  if (this->isConnected_logOut_OutputPort(0)) {
857  Fw::LogBuffer _logBuff;
858 
859 #if FW_AMPCS_COMPATIBLE
861  // Serialize the number of arguments
862  _status = _logBuff.serializeFrom(static_cast<U8>(0));
863  FW_ASSERT(
864  _status == Fw::FW_SERIALIZE_OK,
865  static_cast<FwAssertArgType>(_status)
866  );
867 #endif
868 
869  this->logOut_out(
870  0,
871  _id,
872  _logTime,
874  _logBuff
875  );
876  }
877 
878  // Emit the event on the text log port
879 #if FW_ENABLE_TEXT_LOGGING
880  if (this->isConnected_logTextOut_OutputPort(0)) {
881 #if FW_OBJECT_NAMES == 1
882  const char* _formatString =
883  "(%s) %s: Invalid packet received refusing to deframe";
884 #else
885  const char* _formatString =
886  "%s: Invalid packet received refusing to deframe";
887 #endif
888 
889  Fw::TextLogString _logString;
890  _logString.format(
891  _formatString,
892 #if FW_OBJECT_NAMES == 1
893  this->m_objName.toChar(),
894 #endif
895  "InvalidPacket "
896  );
897 
898  this->logTextOut_out(
899  0,
900  _id,
901  _logTime,
903  _logString
904  );
905  }
906 #endif
907  }
908 
911  U16 transmitted,
912  U16 configured
913  ) const
914  {
915  // Get the time
916  Fw::Time _logTime;
917  if (this->isConnected_timeCaller_OutputPort(0)) {
918  this->timeCaller_out(0, _logTime);
919  }
920 
922 
923  // Emit the event on the log port
924  if (this->isConnected_logOut_OutputPort(0)) {
925  Fw::LogBuffer _logBuff;
927 
928 #if FW_AMPCS_COMPATIBLE
929  // Serialize the number of arguments
930  _status = _logBuff.serializeFrom(static_cast<U8>(2));
931  FW_ASSERT(
932  _status == Fw::FW_SERIALIZE_OK,
933  static_cast<FwAssertArgType>(_status)
934  );
935 #endif
936 
937 #if FW_AMPCS_COMPATIBLE
938  // Serialize the argument size
939  _status = _logBuff.serializeFrom(
940  static_cast<U8>(sizeof(U16))
941  );
942  FW_ASSERT(
943  _status == Fw::FW_SERIALIZE_OK,
944  static_cast<FwAssertArgType>(_status)
945  );
946 #endif
947  _status = _logBuff.serializeFrom(transmitted);
948  FW_ASSERT(
949  _status == Fw::FW_SERIALIZE_OK,
950  static_cast<FwAssertArgType>(_status)
951  );
952 
953 #if FW_AMPCS_COMPATIBLE
954  // Serialize the argument size
955  _status = _logBuff.serializeFrom(
956  static_cast<U8>(sizeof(U16))
957  );
958  FW_ASSERT(
959  _status == Fw::FW_SERIALIZE_OK,
960  static_cast<FwAssertArgType>(_status)
961  );
962 #endif
963  _status = _logBuff.serializeFrom(configured);
964  FW_ASSERT(
965  _status == Fw::FW_SERIALIZE_OK,
966  static_cast<FwAssertArgType>(_status)
967  );
968 
969  this->logOut_out(
970  0,
971  _id,
972  _logTime,
974  _logBuff
975  );
976  }
977 
978  // Emit the event on the text log port
979 #if FW_ENABLE_TEXT_LOGGING
980  if (this->isConnected_logTextOut_OutputPort(0)) {
981 #if FW_OBJECT_NAMES == 1
982  const char* _formatString =
983  "(%s) %s: Invalid Spacecraft ID Received. Received: %" PRIu16 " | Deframer configured with: %" PRIu16 "";
984 #else
985  const char* _formatString =
986  "%s: Invalid Spacecraft ID Received. Received: %" PRIu16 " | Deframer configured with: %" PRIu16 "";
987 #endif
988 
989  Fw::TextLogString _logString;
990  _logString.format(
991  _formatString,
992 #if FW_OBJECT_NAMES == 1
993  this->m_objName.toChar(),
994 #endif
995  "InvalidSpacecraftId ",
996  transmitted,
997  configured
998  );
999 
1000  this->logTextOut_out(
1001  0,
1002  _id,
1003  _logTime,
1005  _logString
1006  );
1007  }
1008 #endif
1009  }
1010 
1013  U16 transmitted,
1014  FwSizeType actual
1015  ) const
1016  {
1017  // Get the time
1018  Fw::Time _logTime;
1019  if (this->isConnected_timeCaller_OutputPort(0)) {
1020  this->timeCaller_out(0, _logTime);
1021  }
1022 
1023  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDFRAMELENGTH;
1024 
1025  // Emit the event on the log port
1026  if (this->isConnected_logOut_OutputPort(0)) {
1027  Fw::LogBuffer _logBuff;
1029 
1030 #if FW_AMPCS_COMPATIBLE
1031  // Serialize the number of arguments
1032  _status = _logBuff.serializeFrom(static_cast<U8>(2));
1033  FW_ASSERT(
1034  _status == Fw::FW_SERIALIZE_OK,
1035  static_cast<FwAssertArgType>(_status)
1036  );
1037 #endif
1038 
1039 #if FW_AMPCS_COMPATIBLE
1040  // Serialize the argument size
1041  _status = _logBuff.serializeFrom(
1042  static_cast<U8>(sizeof(U16))
1043  );
1044  FW_ASSERT(
1045  _status == Fw::FW_SERIALIZE_OK,
1046  static_cast<FwAssertArgType>(_status)
1047  );
1048 #endif
1049  _status = _logBuff.serializeFrom(transmitted);
1050  FW_ASSERT(
1051  _status == Fw::FW_SERIALIZE_OK,
1052  static_cast<FwAssertArgType>(_status)
1053  );
1054 
1055 #if FW_AMPCS_COMPATIBLE
1056  // Serialize the argument size
1057  _status = _logBuff.serializeFrom(
1058  static_cast<U8>(sizeof(FwSizeType))
1059  );
1060  FW_ASSERT(
1061  _status == Fw::FW_SERIALIZE_OK,
1062  static_cast<FwAssertArgType>(_status)
1063  );
1064 #endif
1065  _status = _logBuff.serializeFrom(actual);
1066  FW_ASSERT(
1067  _status == Fw::FW_SERIALIZE_OK,
1068  static_cast<FwAssertArgType>(_status)
1069  );
1070 
1071  this->logOut_out(
1072  0,
1073  _id,
1074  _logTime,
1076  _logBuff
1077  );
1078  }
1079 
1080  // Emit the event on the text log port
1081 #if FW_ENABLE_TEXT_LOGGING
1082  if (this->isConnected_logTextOut_OutputPort(0)) {
1083 #if FW_OBJECT_NAMES == 1
1084  const char* _formatString =
1085  "(%s) %s: Not enough data received. Header length specified: %" PRIu16 " | Received data length: %" PRIu64 "";
1086 #else
1087  const char* _formatString =
1088  "%s: Not enough data received. Header length specified: %" PRIu16 " | Received data length: %" PRIu64 "";
1089 #endif
1090 
1091  Fw::TextLogString _logString;
1092  _logString.format(
1093  _formatString,
1094 #if FW_OBJECT_NAMES == 1
1095  this->m_objName.toChar(),
1096 #endif
1097  "InvalidFrameLength ",
1098  transmitted,
1099  actual
1100  );
1101 
1102  this->logTextOut_out(
1103  0,
1104  _id,
1105  _logTime,
1107  _logString
1108  );
1109  }
1110 #endif
1111  }
1112 
1115  U16 transmitted,
1116  U16 configured
1117  ) const
1118  {
1119  // Get the time
1120  Fw::Time _logTime;
1121  if (this->isConnected_timeCaller_OutputPort(0)) {
1122  this->timeCaller_out(0, _logTime);
1123  }
1124 
1125  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDVCID;
1126 
1127  // Emit the event on the log port
1128  if (this->isConnected_logOut_OutputPort(0)) {
1129  Fw::LogBuffer _logBuff;
1131 
1132 #if FW_AMPCS_COMPATIBLE
1133  // Serialize the number of arguments
1134  _status = _logBuff.serializeFrom(static_cast<U8>(2));
1135  FW_ASSERT(
1136  _status == Fw::FW_SERIALIZE_OK,
1137  static_cast<FwAssertArgType>(_status)
1138  );
1139 #endif
1140 
1141 #if FW_AMPCS_COMPATIBLE
1142  // Serialize the argument size
1143  _status = _logBuff.serializeFrom(
1144  static_cast<U8>(sizeof(U16))
1145  );
1146  FW_ASSERT(
1147  _status == Fw::FW_SERIALIZE_OK,
1148  static_cast<FwAssertArgType>(_status)
1149  );
1150 #endif
1151  _status = _logBuff.serializeFrom(transmitted);
1152  FW_ASSERT(
1153  _status == Fw::FW_SERIALIZE_OK,
1154  static_cast<FwAssertArgType>(_status)
1155  );
1156 
1157 #if FW_AMPCS_COMPATIBLE
1158  // Serialize the argument size
1159  _status = _logBuff.serializeFrom(
1160  static_cast<U8>(sizeof(U16))
1161  );
1162  FW_ASSERT(
1163  _status == Fw::FW_SERIALIZE_OK,
1164  static_cast<FwAssertArgType>(_status)
1165  );
1166 #endif
1167  _status = _logBuff.serializeFrom(configured);
1168  FW_ASSERT(
1169  _status == Fw::FW_SERIALIZE_OK,
1170  static_cast<FwAssertArgType>(_status)
1171  );
1172 
1173  this->logOut_out(
1174  0,
1175  _id,
1176  _logTime,
1178  _logBuff
1179  );
1180  }
1181 
1182  // Emit the event on the text log port
1183 #if FW_ENABLE_TEXT_LOGGING
1184  if (this->isConnected_logTextOut_OutputPort(0)) {
1185 #if FW_OBJECT_NAMES == 1
1186  const char* _formatString =
1187  "(%s) %s: Invalid Virtual Channel ID Received. Header token specified: %" PRIu16 " | Deframer configured with: %" PRIu16 "";
1188 #else
1189  const char* _formatString =
1190  "%s: Invalid Virtual Channel ID Received. Header token specified: %" PRIu16 " | Deframer configured with: %" PRIu16 "";
1191 #endif
1192 
1193  Fw::TextLogString _logString;
1194  _logString.format(
1195  _formatString,
1196 #if FW_OBJECT_NAMES == 1
1197  this->m_objName.toChar(),
1198 #endif
1199  "InvalidVcId ",
1200  transmitted,
1201  configured
1202  );
1203 
1204  this->logTextOut_out(
1205  0,
1206  _id,
1207  _logTime,
1209  _logString
1210  );
1211  }
1212 #endif
1213  }
1214 
1217  U16 transmitted,
1218  U16 computed
1219  ) const
1220  {
1221  // Get the time
1222  Fw::Time _logTime;
1223  if (this->isConnected_timeCaller_OutputPort(0)) {
1224  this->timeCaller_out(0, _logTime);
1225  }
1226 
1227  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDCRC;
1228 
1229  // Emit the event on the log port
1230  if (this->isConnected_logOut_OutputPort(0)) {
1231  Fw::LogBuffer _logBuff;
1233 
1234 #if FW_AMPCS_COMPATIBLE
1235  // Serialize the number of arguments
1236  _status = _logBuff.serializeFrom(static_cast<U8>(2));
1237  FW_ASSERT(
1238  _status == Fw::FW_SERIALIZE_OK,
1239  static_cast<FwAssertArgType>(_status)
1240  );
1241 #endif
1242 
1243 #if FW_AMPCS_COMPATIBLE
1244  // Serialize the argument size
1245  _status = _logBuff.serializeFrom(
1246  static_cast<U8>(sizeof(U16))
1247  );
1248  FW_ASSERT(
1249  _status == Fw::FW_SERIALIZE_OK,
1250  static_cast<FwAssertArgType>(_status)
1251  );
1252 #endif
1253  _status = _logBuff.serializeFrom(transmitted);
1254  FW_ASSERT(
1255  _status == Fw::FW_SERIALIZE_OK,
1256  static_cast<FwAssertArgType>(_status)
1257  );
1258 
1259 #if FW_AMPCS_COMPATIBLE
1260  // Serialize the argument size
1261  _status = _logBuff.serializeFrom(
1262  static_cast<U8>(sizeof(U16))
1263  );
1264  FW_ASSERT(
1265  _status == Fw::FW_SERIALIZE_OK,
1266  static_cast<FwAssertArgType>(_status)
1267  );
1268 #endif
1269  _status = _logBuff.serializeFrom(computed);
1270  FW_ASSERT(
1271  _status == Fw::FW_SERIALIZE_OK,
1272  static_cast<FwAssertArgType>(_status)
1273  );
1274 
1275  this->logOut_out(
1276  0,
1277  _id,
1278  _logTime,
1280  _logBuff
1281  );
1282  }
1283 
1284  // Emit the event on the text log port
1285 #if FW_ENABLE_TEXT_LOGGING
1286  if (this->isConnected_logTextOut_OutputPort(0)) {
1287 #if FW_OBJECT_NAMES == 1
1288  const char* _formatString =
1289  "(%s) %s: Invalid checksum received. Trailer specified: %" PRIu16 " | Computed on board: %" PRIu16 "";
1290 #else
1291  const char* _formatString =
1292  "%s: Invalid checksum received. Trailer specified: %" PRIu16 " | Computed on board: %" PRIu16 "";
1293 #endif
1294 
1295  Fw::TextLogString _logString;
1296  _logString.format(
1297  _formatString,
1298 #if FW_OBJECT_NAMES == 1
1299  this->m_objName.toChar(),
1300 #endif
1301  "InvalidCrc ",
1302  transmitted,
1303  computed
1304  );
1305 
1306  this->logTextOut_out(
1307  0,
1308  _id,
1309  _logTime,
1311  _logString
1312  );
1313  }
1314 #endif
1315  }
1316 
1317  // ----------------------------------------------------------------------
1318  // Time
1319  // ----------------------------------------------------------------------
1320 
1322  getTime() const
1323  {
1324  if (this->isConnected_timeCaller_OutputPort(0)) {
1325  Fw::Time _time;
1326  this->timeCaller_out(0, _time);
1327  return _time;
1328  }
1329  else {
1330  return Fw::Time(TimeBase::TB_NONE, 0, 0);
1331  }
1332  }
1333 
1334  // ----------------------------------------------------------------------
1335  // Mutex operations for guarded ports
1336  //
1337  // You can override these operations to provide more sophisticated
1338  // synchronization
1339  // ----------------------------------------------------------------------
1340 
1343  {
1344  this->m_guardedPortMutex.lock();
1345  }
1346 
1349  {
1350  this->m_guardedPortMutex.unLock();
1351  }
1352 
1353  // ----------------------------------------------------------------------
1354  // Calls for messages received on typed input ports
1355  // ----------------------------------------------------------------------
1356 
1357  void TcDeframerComponentBase ::
1358  m_p_dataIn_in(
1359  Fw::PassiveComponentBase* callComp,
1360  FwIndexType portNum,
1361  Fw::Buffer& data,
1362  const ComCfg::FrameContext& context
1363  )
1364  {
1365  FW_ASSERT(callComp);
1366  TcDeframerComponentBase* compPtr = static_cast<TcDeframerComponentBase*>(callComp);
1367  compPtr->dataIn_handlerBase(
1368  portNum,
1369  data,
1370  context
1371  );
1372  }
1373 
1374  void TcDeframerComponentBase ::
1375  m_p_dataReturnIn_in(
1376  Fw::PassiveComponentBase* callComp,
1377  FwIndexType portNum,
1378  Fw::Buffer& data,
1379  const ComCfg::FrameContext& context
1380  )
1381  {
1382  FW_ASSERT(callComp);
1383  TcDeframerComponentBase* compPtr = static_cast<TcDeframerComponentBase*>(callComp);
1384  compPtr->dataReturnIn_handlerBase(
1385  portNum,
1386  data,
1387  context
1388  );
1389  }
1390 
1391 #if !FW_DIRECT_PORT_CALLS
1392 
1393  // ----------------------------------------------------------------------
1394  // Invocation functions for special output ports
1395  // ----------------------------------------------------------------------
1396 
1397  void TcDeframerComponentBase ::
1398  logOut_out(
1399  FwIndexType portNum,
1400  FwEventIdType id,
1401  Fw::Time& timeTag,
1402  const Fw::LogSeverity& severity,
1403  Fw::LogBuffer& args
1404  ) const
1405  {
1406  FW_ASSERT(
1407  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
1408  static_cast<FwAssertArgType>(portNum)
1409  );
1410 
1411  FW_ASSERT(
1412  this->m_logOut_OutputPort[portNum].isConnected(),
1413  static_cast<FwAssertArgType>(portNum)
1414  );
1415  this->m_logOut_OutputPort[portNum].invoke(
1416  id,
1417  timeTag,
1418  severity,
1419  args
1420  );
1421  }
1422 
1423 #if FW_ENABLE_TEXT_LOGGING
1424 
1425  void TcDeframerComponentBase ::
1426  logTextOut_out(
1427  FwIndexType portNum,
1428  FwEventIdType id,
1429  Fw::Time& timeTag,
1430  const Fw::LogSeverity& severity,
1431  Fw::TextLogString& text
1432  ) const
1433  {
1434  FW_ASSERT(
1435  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
1436  static_cast<FwAssertArgType>(portNum)
1437  );
1438 
1439  FW_ASSERT(
1440  this->m_logTextOut_OutputPort[portNum].isConnected(),
1441  static_cast<FwAssertArgType>(portNum)
1442  );
1443  this->m_logTextOut_OutputPort[portNum].invoke(
1444  id,
1445  timeTag,
1446  severity,
1447  text
1448  );
1449  }
1450 
1451 #endif
1452 
1453  void TcDeframerComponentBase ::
1454  timeCaller_out(
1455  FwIndexType portNum,
1456  Fw::Time& time
1457  ) const
1458  {
1459  FW_ASSERT(
1460  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
1461  static_cast<FwAssertArgType>(portNum)
1462  );
1463 
1464  FW_ASSERT(
1465  this->m_timeCaller_OutputPort[portNum].isConnected(),
1466  static_cast<FwAssertArgType>(portNum)
1467  );
1468  this->m_timeCaller_OutputPort[portNum].invoke(
1469  time
1470  );
1471  }
1472 
1473 #endif
1474 
1475  }
1476 
1477 }
void set_prmSetOut_OutputPort(FwIndexType portNum, Fw::InputPrmSetPort *port)
Connect port to prmSetOut[portNum].
Serialization/Deserialization operation was successful.
void addCallPort(InputTimePort *callPort)
Register an input port.
Definition: TimePortAc.cpp:157
static constexpr FwIndexType getNum_dataReturnOut_OutputPorts()
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
bool isConnected_dataReturnOut_OutputPort(FwIndexType portNum) const
Enum representing an error during framing/deframing in the CCSDS protocols.
PlatformSizeType FwSizeType
I32 FwEnumStoreType
void init()
Initialization function.
void set_prmGetOut_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to prmGetOut[portNum].
void dataReturnOut_out(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke output port dataReturnOut.
void unLock()
unlock the mutex and assert success
Definition: Mutex.cpp:41
void addCallPort(InputPrmSetPort *callPort)
Register an input port.
bool isConnected_prmGetOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_logOut_OutputPorts()
static constexpr FwIndexType getNum_dataIn_InputPorts()
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
Invalid packet received that will be dropped.
static constexpr FwIndexType getNum_errorNotify_OutputPorts()
void dataIn_handlerBase(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)
Handler base-class function for input port dataIn.
static constexpr FwIndexType getNum_prmSetOut_OutputPorts()
void init()
Initialization function.
Definition: TlmPortAc.cpp:171
No time base has been established (Required)
void set_dataReturnOut_OutputPort(FwIndexType portNum, Svc::InputComDataWithContextPort *port)
Connect port to dataReturnOut[portNum].
virtual void lock()
Lock the guarded mutex.
void init()
Initialization function.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
void addCallPort(InputComDataWithContextPort *callPort)
Register an input port.
void addCallPort(InputTlmPort *callPort)
Register an input port.
Definition: TlmPortAc.cpp:177
bool isConnected_prmSetOut_OutputPort(FwIndexType portNum) const
void addCallPort(InputPrmGetPort *callPort)
Register an input port.
void init()
Object initializer.
Definition: ObjBase.cpp:24
SerializeStatus
forward declaration for string
void log_ACTIVITY_LO_InvalidVcId(U16 transmitted, U16 configured) const
void addCallPort(InputErrorNotifyPort *callPort)
Register an input port.
void log_WARNING_HI_InvalidCrc(U16 transmitted, U16 computed) const
FwIdType FwEventIdType
The type of an event identifier.
void dataReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)
Handler base-class function for input port dataReturnIn.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
Definition: FpConfig.h:40
void init()
Initialization function.
Definition: TimePortAc.cpp:151
void invoke(const Svc::Ccsds::FrameError &errorCode) const
Invoke a port connection.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Less important informational events.
virtual ~TcDeframerComponentBase()
Destroy TcDeframerComponentBase object.
A less serious but recoverable event.
Svc::InputComDataWithContextPort * get_dataIn_InputPort(FwIndexType portNum)
TcDeframerComponentBase(const char *compName="")
Construct TcDeframerComponentBase object.
void invoke(Fw::Time &time) const
Invoke a port connection.
Definition: TimePortAc.cpp:170
static constexpr FwIndexType getNum_prmGetOut_OutputPorts()
const char * toChar() const
Convert to a C-style char*.
Definition: ObjectName.hpp:50
void invoke(Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke a port connection.
A serious but recoverable event.
void init()
Initialization function.
bool isConnected() const
Definition: PortBase.cpp:38
Enum representing event severity.
bool isConnected_errorNotify_OutputPort(FwIndexType portNum) const
#define PRI_FwIndexType
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:39
void init()
Initialization function.
Definition: LogPortAc.cpp:180
void setPortNum(FwIndexType portNum)
void set_errorNotify_OutputPort(FwIndexType portNum, Svc::Ccsds::InputErrorNotifyPort *port)
Connect port to errorNotify[portNum].
void log_WARNING_LO_InvalidSpacecraftId(U16 transmitted, U16 configured) const
void init()
Initialization function.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
Definition: LogPortAc.cpp:199
bool isConnected_dataOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_dataReturnIn_InputPorts()
PlatformIndexType FwIndexType
void set_dataOut_OutputPort(FwIndexType portNum, Svc::InputComDataWithContextPort *port)
Connect port to dataOut[portNum].
void addCallPort(InputLogPort *callPort)
Register an input port.
Definition: LogPortAc.cpp:186
virtual void dataIn_handler(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)=0
Handler for input port dataIn.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
Type used to pass context info between components during framing/deframing.
void errorNotify_out(FwIndexType portNum, const Svc::Ccsds::FrameError &errorCode) const
Invoke output port errorNotify.
RateGroupDivider component implementation.
static constexpr FwIndexType getNum_dataOut_OutputPorts()
void dataOut_out(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke output port dataOut.
Implementation of malloc based allocator.
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)=0
Handler for input port dataReturnIn.
void init()
Initialization function.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
#define FW_ASSERT(...)
Definition: Assert.hpp:14
Svc::InputComDataWithContextPort * get_dataReturnIn_InputPort(FwIndexType portNum)
virtual void unLock()
Unlock the guarded mutex.
Auto-generated base for TcDeframer component.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
void lock()
lock the mutex and assert success
Definition: Mutex.cpp:34
void log_WARNING_HI_InvalidFrameLength(U16 transmitted, FwSizeType actual) const