F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
CfdpManagerComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CfdpManagerComponentAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for CfdpManager 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  namespace Cfdp {
19 
20  namespace {
21  enum MsgTypeEnum {
22  CFDPMANAGER_COMPONENT_EXIT = Fw::ActiveComponentBase::ACTIVE_COMPONENT_EXIT,
23  DATAIN_BUFFERSEND,
24  DATARETURNIN_BUFFERSEND,
25  PINGIN_PING,
26  RUN1HZ_SCHED,
27  CMD_SENDFILE,
28  CMD_PLAYBACKDIRECTORY,
29  CMD_POLLDIRECTORY,
30  CMD_STOPPOLLDIRECTORY,
31  CMD_SETCHANNELFLOW,
32  CMD_SUSPENDRESUMETRANSACTION,
33  CMD_CANCELTRANSACTION,
34  CMD_ABANDONTRANSACTION,
35  CMD_RESETCOUNTERS,
36  };
37 
38  // Get the max size by constructing a union of the async input, command, and
39  // internal port serialization sizes
40  union BuffUnion {
46  };
47 
48  // Define a message buffer class large enough to handle all the
49  // asynchronous inputs to the component
50  class ComponentIpcSerializableBuffer :
52  {
53 
54  public:
55 
56  enum {
57  // Offset into data in buffer: Size of message ID and port number
58  DATA_OFFSET = sizeof(FwEnumStoreType) + sizeof(FwIndexType),
59  // Max data size
60  MAX_DATA_SIZE = sizeof(BuffUnion),
61  // Max message size: Size of message id + size of port + max data size
62  SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
63  };
64 
65  ComponentIpcSerializableBuffer() : Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
66 
67  }
68 
69  private:
70  // Should be the max of all the input ports serialized sizes...
71  U8 m_buff[SERIALIZATION_SIZE];
72 
73  };
74  }
75 
76  // ----------------------------------------------------------------------
77  // Component initialization
78  // ----------------------------------------------------------------------
79 
82  FwSizeType queueDepth,
83  FwEnumStoreType instance
84  )
85  {
86  // Initialize base class
88 
89 #if !FW_DIRECT_PORT_CALLS
90  // Connect input port cmdIn
91  for (
92  FwIndexType port = 0;
93  port < static_cast<FwIndexType>(this->getNum_cmdIn_InputPorts());
94  port++
95  ) {
96  this->m_cmdIn_InputPort[port].init();
97  this->m_cmdIn_InputPort[port].addCallComp(
98  this,
99  m_p_cmdIn_in
100  );
101  this->m_cmdIn_InputPort[port].setPortNum(port);
102 
103 #if FW_OBJECT_NAMES == 1
104  Fw::ObjectName portName;
105  portName.format(
106  "%s_cmdIn_InputPort[%" PRI_FwIndexType "]",
107  this->m_objName.toChar(),
108  port
109  );
110  this->m_cmdIn_InputPort[port].setObjName(portName.toChar());
111 #endif
112  }
113 #endif
114 
115 #if !FW_DIRECT_PORT_CALLS
116  // Connect input port dataIn
117  for (
118  FwIndexType port = 0;
119  port < static_cast<FwIndexType>(this->getNum_dataIn_InputPorts());
120  port++
121  ) {
122  this->m_dataIn_InputPort[port].init();
123  this->m_dataIn_InputPort[port].addCallComp(
124  this,
125  m_p_dataIn_in
126  );
127  this->m_dataIn_InputPort[port].setPortNum(port);
128 
129 #if FW_OBJECT_NAMES == 1
130  Fw::ObjectName portName;
131  portName.format(
132  "%s_dataIn_InputPort[%" PRI_FwIndexType "]",
133  this->m_objName.toChar(),
134  port
135  );
136  this->m_dataIn_InputPort[port].setObjName(portName.toChar());
137 #endif
138  }
139 #endif
140 
141 #if !FW_DIRECT_PORT_CALLS
142  // Connect input port dataReturnIn
143  for (
144  FwIndexType port = 0;
145  port < static_cast<FwIndexType>(this->getNum_dataReturnIn_InputPorts());
146  port++
147  ) {
148  this->m_dataReturnIn_InputPort[port].init();
149  this->m_dataReturnIn_InputPort[port].addCallComp(
150  this,
151  m_p_dataReturnIn_in
152  );
153  this->m_dataReturnIn_InputPort[port].setPortNum(port);
154 
155 #if FW_OBJECT_NAMES == 1
156  Fw::ObjectName portName;
157  portName.format(
158  "%s_dataReturnIn_InputPort[%" PRI_FwIndexType "]",
159  this->m_objName.toChar(),
160  port
161  );
162  this->m_dataReturnIn_InputPort[port].setObjName(portName.toChar());
163 #endif
164  }
165 #endif
166 
167 #if !FW_DIRECT_PORT_CALLS
168  // Connect input port fileIn
169  for (
170  FwIndexType port = 0;
171  port < static_cast<FwIndexType>(this->getNum_fileIn_InputPorts());
172  port++
173  ) {
174  this->m_fileIn_InputPort[port].init();
175  this->m_fileIn_InputPort[port].addCallComp(
176  this,
177  m_p_fileIn_in
178  );
179  this->m_fileIn_InputPort[port].setPortNum(port);
180 
181 #if FW_OBJECT_NAMES == 1
182  Fw::ObjectName portName;
183  portName.format(
184  "%s_fileIn_InputPort[%" PRI_FwIndexType "]",
185  this->m_objName.toChar(),
186  port
187  );
188  this->m_fileIn_InputPort[port].setObjName(portName.toChar());
189 #endif
190  }
191 #endif
192 
193 #if !FW_DIRECT_PORT_CALLS
194  // Connect input port pingIn
195  for (
196  FwIndexType port = 0;
197  port < static_cast<FwIndexType>(this->getNum_pingIn_InputPorts());
198  port++
199  ) {
200  this->m_pingIn_InputPort[port].init();
201  this->m_pingIn_InputPort[port].addCallComp(
202  this,
203  m_p_pingIn_in
204  );
205  this->m_pingIn_InputPort[port].setPortNum(port);
206 
207 #if FW_OBJECT_NAMES == 1
208  Fw::ObjectName portName;
209  portName.format(
210  "%s_pingIn_InputPort[%" PRI_FwIndexType "]",
211  this->m_objName.toChar(),
212  port
213  );
214  this->m_pingIn_InputPort[port].setObjName(portName.toChar());
215 #endif
216  }
217 #endif
218 
219 #if !FW_DIRECT_PORT_CALLS
220  // Connect input port run1Hz
221  for (
222  FwIndexType port = 0;
223  port < static_cast<FwIndexType>(this->getNum_run1Hz_InputPorts());
224  port++
225  ) {
226  this->m_run1Hz_InputPort[port].init();
227  this->m_run1Hz_InputPort[port].addCallComp(
228  this,
229  m_p_run1Hz_in
230  );
231  this->m_run1Hz_InputPort[port].setPortNum(port);
232 
233 #if FW_OBJECT_NAMES == 1
234  Fw::ObjectName portName;
235  portName.format(
236  "%s_run1Hz_InputPort[%" PRI_FwIndexType "]",
237  this->m_objName.toChar(),
238  port
239  );
240  this->m_run1Hz_InputPort[port].setObjName(portName.toChar());
241 #endif
242  }
243 #endif
244 
245 #if !FW_DIRECT_PORT_CALLS
246  // Connect output port cmdRegOut
247  for (
248  FwIndexType port = 0;
249  port < static_cast<FwIndexType>(this->getNum_cmdRegOut_OutputPorts());
250  port++
251  ) {
252  this->m_cmdRegOut_OutputPort[port].init();
253 
254 #if FW_OBJECT_NAMES == 1
255  Fw::ObjectName portName;
256  portName.format(
257  "%s_cmdRegOut_OutputPort[%" PRI_FwIndexType "]",
258  this->m_objName.toChar(),
259  port
260  );
261  this->m_cmdRegOut_OutputPort[port].setObjName(portName.toChar());
262 #endif
263  }
264 #endif
265 
266 #if !FW_DIRECT_PORT_CALLS
267  // Connect output port cmdResponseOut
268  for (
269  FwIndexType port = 0;
270  port < static_cast<FwIndexType>(this->getNum_cmdResponseOut_OutputPorts());
271  port++
272  ) {
273  this->m_cmdResponseOut_OutputPort[port].init();
274 
275 #if FW_OBJECT_NAMES == 1
276  Fw::ObjectName portName;
277  portName.format(
278  "%s_cmdResponseOut_OutputPort[%" PRI_FwIndexType "]",
279  this->m_objName.toChar(),
280  port
281  );
282  this->m_cmdResponseOut_OutputPort[port].setObjName(portName.toChar());
283 #endif
284  }
285 #endif
286 
287 #if !FW_DIRECT_PORT_CALLS
288  // Connect output port logOut
289  for (
290  FwIndexType port = 0;
291  port < static_cast<FwIndexType>(this->getNum_logOut_OutputPorts());
292  port++
293  ) {
294  this->m_logOut_OutputPort[port].init();
295 
296 #if FW_OBJECT_NAMES == 1
297  Fw::ObjectName portName;
298  portName.format(
299  "%s_logOut_OutputPort[%" PRI_FwIndexType "]",
300  this->m_objName.toChar(),
301  port
302  );
303  this->m_logOut_OutputPort[port].setObjName(portName.toChar());
304 #endif
305  }
306 #endif
307 
308 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING
309  // Connect output port logTextOut
310  for (
311  FwIndexType port = 0;
312  port < static_cast<FwIndexType>(this->getNum_logTextOut_OutputPorts());
313  port++
314  ) {
315  this->m_logTextOut_OutputPort[port].init();
316 
317 #if FW_OBJECT_NAMES == 1
318  Fw::ObjectName portName;
319  portName.format(
320  "%s_logTextOut_OutputPort[%" PRI_FwIndexType "]",
321  this->m_objName.toChar(),
322  port
323  );
324  this->m_logTextOut_OutputPort[port].setObjName(portName.toChar());
325 #endif
326  }
327 #endif
328 
329 #if !FW_DIRECT_PORT_CALLS
330  // Connect output port prmGetOut
331  for (
332  FwIndexType port = 0;
333  port < static_cast<FwIndexType>(this->getNum_prmGetOut_OutputPorts());
334  port++
335  ) {
336  this->m_prmGetOut_OutputPort[port].init();
337 
338 #if FW_OBJECT_NAMES == 1
339  Fw::ObjectName portName;
340  portName.format(
341  "%s_prmGetOut_OutputPort[%" PRI_FwIndexType "]",
342  this->m_objName.toChar(),
343  port
344  );
345  this->m_prmGetOut_OutputPort[port].setObjName(portName.toChar());
346 #endif
347  }
348 #endif
349 
350 #if !FW_DIRECT_PORT_CALLS
351  // Connect output port prmSetOut
352  for (
353  FwIndexType port = 0;
354  port < static_cast<FwIndexType>(this->getNum_prmSetOut_OutputPorts());
355  port++
356  ) {
357  this->m_prmSetOut_OutputPort[port].init();
358 
359 #if FW_OBJECT_NAMES == 1
360  Fw::ObjectName portName;
361  portName.format(
362  "%s_prmSetOut_OutputPort[%" PRI_FwIndexType "]",
363  this->m_objName.toChar(),
364  port
365  );
366  this->m_prmSetOut_OutputPort[port].setObjName(portName.toChar());
367 #endif
368  }
369 #endif
370 
371 #if !FW_DIRECT_PORT_CALLS
372  // Connect output port timeCaller
373  for (
374  FwIndexType port = 0;
375  port < static_cast<FwIndexType>(this->getNum_timeCaller_OutputPorts());
376  port++
377  ) {
378  this->m_timeCaller_OutputPort[port].init();
379 
380 #if FW_OBJECT_NAMES == 1
381  Fw::ObjectName portName;
382  portName.format(
383  "%s_timeCaller_OutputPort[%" PRI_FwIndexType "]",
384  this->m_objName.toChar(),
385  port
386  );
387  this->m_timeCaller_OutputPort[port].setObjName(portName.toChar());
388 #endif
389  }
390 #endif
391 
392 #if !FW_DIRECT_PORT_CALLS
393  // Connect output port tlmOut
394  for (
395  FwIndexType port = 0;
396  port < static_cast<FwIndexType>(this->getNum_tlmOut_OutputPorts());
397  port++
398  ) {
399  this->m_tlmOut_OutputPort[port].init();
400 
401 #if FW_OBJECT_NAMES == 1
402  Fw::ObjectName portName;
403  portName.format(
404  "%s_tlmOut_OutputPort[%" PRI_FwIndexType "]",
405  this->m_objName.toChar(),
406  port
407  );
408  this->m_tlmOut_OutputPort[port].setObjName(portName.toChar());
409 #endif
410  }
411 #endif
412 
413 #if !FW_DIRECT_PORT_CALLS
414  // Connect output port bufferAllocate
415  for (
416  FwIndexType port = 0;
417  port < static_cast<FwIndexType>(this->getNum_bufferAllocate_OutputPorts());
418  port++
419  ) {
420  this->m_bufferAllocate_OutputPort[port].init();
421 
422 #if FW_OBJECT_NAMES == 1
423  Fw::ObjectName portName;
424  portName.format(
425  "%s_bufferAllocate_OutputPort[%" PRI_FwIndexType "]",
426  this->m_objName.toChar(),
427  port
428  );
429  this->m_bufferAllocate_OutputPort[port].setObjName(portName.toChar());
430 #endif
431  }
432 #endif
433 
434 #if !FW_DIRECT_PORT_CALLS
435  // Connect output port bufferDeallocate
436  for (
437  FwIndexType port = 0;
438  port < static_cast<FwIndexType>(this->getNum_bufferDeallocate_OutputPorts());
439  port++
440  ) {
441  this->m_bufferDeallocate_OutputPort[port].init();
442 
443 #if FW_OBJECT_NAMES == 1
444  Fw::ObjectName portName;
445  portName.format(
446  "%s_bufferDeallocate_OutputPort[%" PRI_FwIndexType "]",
447  this->m_objName.toChar(),
448  port
449  );
450  this->m_bufferDeallocate_OutputPort[port].setObjName(portName.toChar());
451 #endif
452  }
453 #endif
454 
455 #if !FW_DIRECT_PORT_CALLS
456  // Connect output port dataInReturn
457  for (
458  FwIndexType port = 0;
459  port < static_cast<FwIndexType>(this->getNum_dataInReturn_OutputPorts());
460  port++
461  ) {
462  this->m_dataInReturn_OutputPort[port].init();
463 
464 #if FW_OBJECT_NAMES == 1
465  Fw::ObjectName portName;
466  portName.format(
467  "%s_dataInReturn_OutputPort[%" PRI_FwIndexType "]",
468  this->m_objName.toChar(),
469  port
470  );
471  this->m_dataInReturn_OutputPort[port].setObjName(portName.toChar());
472 #endif
473  }
474 #endif
475 
476 #if !FW_DIRECT_PORT_CALLS
477  // Connect output port dataOut
478  for (
479  FwIndexType port = 0;
480  port < static_cast<FwIndexType>(this->getNum_dataOut_OutputPorts());
481  port++
482  ) {
483  this->m_dataOut_OutputPort[port].init();
484 
485 #if FW_OBJECT_NAMES == 1
486  Fw::ObjectName portName;
487  portName.format(
488  "%s_dataOut_OutputPort[%" PRI_FwIndexType "]",
489  this->m_objName.toChar(),
490  port
491  );
492  this->m_dataOut_OutputPort[port].setObjName(portName.toChar());
493 #endif
494  }
495 #endif
496 
497 #if !FW_DIRECT_PORT_CALLS
498  // Connect output port fileDoneOut
499  for (
500  FwIndexType port = 0;
501  port < static_cast<FwIndexType>(this->getNum_fileDoneOut_OutputPorts());
502  port++
503  ) {
504  this->m_fileDoneOut_OutputPort[port].init();
505 
506 #if FW_OBJECT_NAMES == 1
507  Fw::ObjectName portName;
508  portName.format(
509  "%s_fileDoneOut_OutputPort[%" PRI_FwIndexType "]",
510  this->m_objName.toChar(),
511  port
512  );
513  this->m_fileDoneOut_OutputPort[port].setObjName(portName.toChar());
514 #endif
515  }
516 #endif
517 
518 #if !FW_DIRECT_PORT_CALLS
519  // Connect output port pingOut
520  for (
521  FwIndexType port = 0;
522  port < static_cast<FwIndexType>(this->getNum_pingOut_OutputPorts());
523  port++
524  ) {
525  this->m_pingOut_OutputPort[port].init();
526 
527 #if FW_OBJECT_NAMES == 1
528  Fw::ObjectName portName;
529  portName.format(
530  "%s_pingOut_OutputPort[%" PRI_FwIndexType "]",
531  this->m_objName.toChar(),
532  port
533  );
534  this->m_pingOut_OutputPort[port].setObjName(portName.toChar());
535 #endif
536  }
537 #endif
538 
539  // Create the queue
540  Os::Queue::Status qStat = this->createQueue(
541  queueDepth,
542  static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
543  );
544  FW_ASSERT(
545  Os::Queue::Status::OP_OK == qStat,
546  static_cast<FwAssertArgType>(qStat)
547  );
548  }
549 
550 #if !FW_DIRECT_PORT_CALLS
551 
552  // ----------------------------------------------------------------------
553  // Getters for special input ports
554  // ----------------------------------------------------------------------
555 
558  {
559  FW_ASSERT(
560  (0 <= portNum) && (portNum < this->getNum_cmdIn_InputPorts()),
561  static_cast<FwAssertArgType>(portNum)
562  );
563 
564  return &this->m_cmdIn_InputPort[portNum];
565  }
566 
567 #endif
568 
569 #if !FW_DIRECT_PORT_CALLS
570 
571  // ----------------------------------------------------------------------
572  // Getters for typed input ports
573  // ----------------------------------------------------------------------
574 
577  {
578  FW_ASSERT(
579  (0 <= portNum) && (portNum < this->getNum_dataIn_InputPorts()),
580  static_cast<FwAssertArgType>(portNum)
581  );
582 
583  return &this->m_dataIn_InputPort[portNum];
584  }
585 
588  {
589  FW_ASSERT(
590  (0 <= portNum) && (portNum < this->getNum_dataReturnIn_InputPorts()),
591  static_cast<FwAssertArgType>(portNum)
592  );
593 
594  return &this->m_dataReturnIn_InputPort[portNum];
595  }
596 
599  {
600  FW_ASSERT(
601  (0 <= portNum) && (portNum < this->getNum_fileIn_InputPorts()),
602  static_cast<FwAssertArgType>(portNum)
603  );
604 
605  return &this->m_fileIn_InputPort[portNum];
606  }
607 
610  {
611  FW_ASSERT(
612  (0 <= portNum) && (portNum < this->getNum_pingIn_InputPorts()),
613  static_cast<FwAssertArgType>(portNum)
614  );
615 
616  return &this->m_pingIn_InputPort[portNum];
617  }
618 
621  {
622  FW_ASSERT(
623  (0 <= portNum) && (portNum < this->getNum_run1Hz_InputPorts()),
624  static_cast<FwAssertArgType>(portNum)
625  );
626 
627  return &this->m_run1Hz_InputPort[portNum];
628  }
629 
630 #endif
631 
632 #if !FW_DIRECT_PORT_CALLS
633 
634  // ----------------------------------------------------------------------
635  // Connect input ports to special output ports
636  // ----------------------------------------------------------------------
637 
640  FwIndexType portNum,
641  Fw::InputCmdRegPort* port
642  )
643  {
644  FW_ASSERT(
645  (0 <= portNum) && (portNum < this->getNum_cmdRegOut_OutputPorts()),
646  static_cast<FwAssertArgType>(portNum)
647  );
648 
649  this->m_cmdRegOut_OutputPort[portNum].addCallPort(port);
650  }
651 
654  FwIndexType portNum,
656  )
657  {
658  FW_ASSERT(
659  (0 <= portNum) && (portNum < this->getNum_cmdResponseOut_OutputPorts()),
660  static_cast<FwAssertArgType>(portNum)
661  );
662 
663  this->m_cmdResponseOut_OutputPort[portNum].addCallPort(port);
664  }
665 
668  FwIndexType portNum,
669  Fw::InputLogPort* port
670  )
671  {
672  FW_ASSERT(
673  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
674  static_cast<FwAssertArgType>(portNum)
675  );
676 
677  this->m_logOut_OutputPort[portNum].addCallPort(port);
678  }
679 
680 #if FW_ENABLE_TEXT_LOGGING == 1
681 
682  void CfdpManagerComponentBase ::
683  set_logTextOut_OutputPort(
684  FwIndexType portNum,
686  )
687  {
688  FW_ASSERT(
689  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
690  static_cast<FwAssertArgType>(portNum)
691  );
692 
693  this->m_logTextOut_OutputPort[portNum].addCallPort(port);
694  }
695 
696 #endif
697 
700  FwIndexType portNum,
701  Fw::InputPrmGetPort* port
702  )
703  {
704  FW_ASSERT(
705  (0 <= portNum) && (portNum < this->getNum_prmGetOut_OutputPorts()),
706  static_cast<FwAssertArgType>(portNum)
707  );
708 
709  this->m_prmGetOut_OutputPort[portNum].addCallPort(port);
710  }
711 
714  FwIndexType portNum,
715  Fw::InputPrmSetPort* port
716  )
717  {
718  FW_ASSERT(
719  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
720  static_cast<FwAssertArgType>(portNum)
721  );
722 
723  this->m_prmSetOut_OutputPort[portNum].addCallPort(port);
724  }
725 
728  FwIndexType portNum,
729  Fw::InputTimePort* port
730  )
731  {
732  FW_ASSERT(
733  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
734  static_cast<FwAssertArgType>(portNum)
735  );
736 
737  this->m_timeCaller_OutputPort[portNum].addCallPort(port);
738  }
739 
742  FwIndexType portNum,
743  Fw::InputTlmPort* port
744  )
745  {
746  FW_ASSERT(
747  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
748  static_cast<FwAssertArgType>(portNum)
749  );
750 
751  this->m_tlmOut_OutputPort[portNum].addCallPort(port);
752  }
753 
754 #endif
755 
756 #if !FW_DIRECT_PORT_CALLS
757 
758  // ----------------------------------------------------------------------
759  // Connect typed input ports to typed output ports
760  // ----------------------------------------------------------------------
761 
764  FwIndexType portNum,
766  )
767  {
768  FW_ASSERT(
769  (0 <= portNum) && (portNum < this->getNum_bufferAllocate_OutputPorts()),
770  static_cast<FwAssertArgType>(portNum)
771  );
772 
773  this->m_bufferAllocate_OutputPort[portNum].addCallPort(port);
774  }
775 
778  FwIndexType portNum,
780  )
781  {
782  FW_ASSERT(
783  (0 <= portNum) && (portNum < this->getNum_bufferDeallocate_OutputPorts()),
784  static_cast<FwAssertArgType>(portNum)
785  );
786 
787  this->m_bufferDeallocate_OutputPort[portNum].addCallPort(port);
788  }
789 
792  FwIndexType portNum,
794  )
795  {
796  FW_ASSERT(
797  (0 <= portNum) && (portNum < this->getNum_dataInReturn_OutputPorts()),
798  static_cast<FwAssertArgType>(portNum)
799  );
800 
801  this->m_dataInReturn_OutputPort[portNum].addCallPort(port);
802  }
803 
806  FwIndexType portNum,
808  )
809  {
810  FW_ASSERT(
811  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
812  static_cast<FwAssertArgType>(portNum)
813  );
814 
815  this->m_dataOut_OutputPort[portNum].addCallPort(port);
816  }
817 
820  FwIndexType portNum,
822  )
823  {
824  FW_ASSERT(
825  (0 <= portNum) && (portNum < this->getNum_fileDoneOut_OutputPorts()),
826  static_cast<FwAssertArgType>(portNum)
827  );
828 
829  this->m_fileDoneOut_OutputPort[portNum].addCallPort(port);
830  }
831 
834  FwIndexType portNum,
835  Svc::InputPingPort* port
836  )
837  {
838  FW_ASSERT(
839  (0 <= portNum) && (portNum < this->getNum_pingOut_OutputPorts()),
840  static_cast<FwAssertArgType>(portNum)
841  );
842 
843  this->m_pingOut_OutputPort[portNum].addCallPort(port);
844  }
845 
846 #endif
847 
848 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
849 
850  // ----------------------------------------------------------------------
851  // Connect serial input ports to special output ports
852  // ----------------------------------------------------------------------
853 
856  FwIndexType portNum,
857  Fw::InputSerializePort* port
858  )
859  {
860  FW_ASSERT(
861  (0 <= portNum) && (portNum < this->getNum_cmdRegOut_OutputPorts()),
862  static_cast<FwAssertArgType>(portNum)
863  );
864 
865  this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
866  }
867 
870  FwIndexType portNum,
871  Fw::InputSerializePort* port
872  )
873  {
874  FW_ASSERT(
875  (0 <= portNum) && (portNum < this->getNum_cmdResponseOut_OutputPorts()),
876  static_cast<FwAssertArgType>(portNum)
877  );
878 
879  this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
880  }
881 
884  FwIndexType portNum,
885  Fw::InputSerializePort* port
886  )
887  {
888  FW_ASSERT(
889  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
890  static_cast<FwAssertArgType>(portNum)
891  );
892 
893  this->m_logOut_OutputPort[portNum].registerSerialPort(port);
894  }
895 
896 #if FW_ENABLE_TEXT_LOGGING == 1
897 
898  void CfdpManagerComponentBase ::
899  set_logTextOut_OutputPort(
900  FwIndexType portNum,
901  Fw::InputSerializePort* port
902  )
903  {
904  FW_ASSERT(
905  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
906  static_cast<FwAssertArgType>(portNum)
907  );
908 
909  this->m_logTextOut_OutputPort[portNum].registerSerialPort(port);
910  }
911 
912 #endif
913 
916  FwIndexType portNum,
917  Fw::InputSerializePort* port
918  )
919  {
920  FW_ASSERT(
921  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
922  static_cast<FwAssertArgType>(portNum)
923  );
924 
925  this->m_prmSetOut_OutputPort[portNum].registerSerialPort(port);
926  }
927 
930  FwIndexType portNum,
931  Fw::InputSerializePort* port
932  )
933  {
934  FW_ASSERT(
935  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
936  static_cast<FwAssertArgType>(portNum)
937  );
938 
939  this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
940  }
941 
944  FwIndexType portNum,
945  Fw::InputSerializePort* port
946  )
947  {
948  FW_ASSERT(
949  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
950  static_cast<FwAssertArgType>(portNum)
951  );
952 
953  this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
954  }
955 
956 #endif
957 
958 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
959 
960  // ----------------------------------------------------------------------
961  // Connect serial input ports to typed output ports
962  // ----------------------------------------------------------------------
963 
966  FwIndexType portNum,
967  Fw::InputSerializePort* port
968  )
969  {
970  FW_ASSERT(
971  (0 <= portNum) && (portNum < this->getNum_bufferDeallocate_OutputPorts()),
972  static_cast<FwAssertArgType>(portNum)
973  );
974 
975  this->m_bufferDeallocate_OutputPort[portNum].registerSerialPort(port);
976  }
977 
980  FwIndexType portNum,
981  Fw::InputSerializePort* port
982  )
983  {
984  FW_ASSERT(
985  (0 <= portNum) && (portNum < this->getNum_dataInReturn_OutputPorts()),
986  static_cast<FwAssertArgType>(portNum)
987  );
988 
989  this->m_dataInReturn_OutputPort[portNum].registerSerialPort(port);
990  }
991 
994  FwIndexType portNum,
995  Fw::InputSerializePort* port
996  )
997  {
998  FW_ASSERT(
999  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
1000  static_cast<FwAssertArgType>(portNum)
1001  );
1002 
1003  this->m_dataOut_OutputPort[portNum].registerSerialPort(port);
1004  }
1005 
1008  FwIndexType portNum,
1009  Fw::InputSerializePort* port
1010  )
1011  {
1012  FW_ASSERT(
1013  (0 <= portNum) && (portNum < this->getNum_fileDoneOut_OutputPorts()),
1014  static_cast<FwAssertArgType>(portNum)
1015  );
1016 
1017  this->m_fileDoneOut_OutputPort[portNum].registerSerialPort(port);
1018  }
1019 
1022  FwIndexType portNum,
1023  Fw::InputSerializePort* port
1024  )
1025  {
1026  FW_ASSERT(
1027  (0 <= portNum) && (portNum < this->getNum_pingOut_OutputPorts()),
1028  static_cast<FwAssertArgType>(portNum)
1029  );
1030 
1031  this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
1032  }
1033 
1034 #endif
1035 
1036  // ----------------------------------------------------------------------
1037  // Command registration
1038  // ----------------------------------------------------------------------
1039 
1042  {
1044 
1045  this->cmdRegOut_out(
1046  0,
1047  this->getIdBase() + OPCODE_SENDFILE
1048  );
1049 
1050  this->cmdRegOut_out(
1051  0,
1053  );
1054 
1055  this->cmdRegOut_out(
1056  0,
1058  );
1059 
1060  this->cmdRegOut_out(
1061  0,
1063  );
1064 
1065  this->cmdRegOut_out(
1066  0,
1068  );
1069 
1070  this->cmdRegOut_out(
1071  0,
1073  );
1074 
1075  this->cmdRegOut_out(
1076  0,
1078  );
1079 
1080  this->cmdRegOut_out(
1081  0,
1083  );
1084 
1085  this->cmdRegOut_out(
1086  0,
1088  );
1089 
1090  this->cmdRegOut_out(
1091  0,
1092  this->getIdBase() + OPCODE_LOCALEID_SET
1093  );
1094 
1095  this->cmdRegOut_out(
1096  0,
1098  );
1099 
1100  this->cmdRegOut_out(
1101  0,
1103  );
1104 
1105  this->cmdRegOut_out(
1106  0,
1108  );
1109 
1110  this->cmdRegOut_out(
1111  0,
1113  );
1114 
1115  this->cmdRegOut_out(
1116  0,
1118  );
1119 
1120  this->cmdRegOut_out(
1121  0,
1123  );
1124 
1125  this->cmdRegOut_out(
1126  0,
1128  );
1129 
1130  this->cmdRegOut_out(
1131  0,
1133  );
1134 
1135  this->cmdRegOut_out(
1136  0,
1138  );
1139 
1140  this->cmdRegOut_out(
1141  0,
1143  );
1144 
1145  this->cmdRegOut_out(
1146  0,
1148  );
1149 
1150  this->cmdRegOut_out(
1151  0,
1153  );
1154 
1155  this->cmdRegOut_out(
1156  0,
1158  );
1159 
1160  this->cmdRegOut_out(
1161  0,
1163  );
1164 
1165  this->cmdRegOut_out(
1166  0,
1168  );
1169 
1170  this->cmdRegOut_out(
1171  0,
1173  );
1174 
1175  this->cmdRegOut_out(
1176  0,
1178  );
1179 
1180  this->cmdRegOut_out(
1181  0,
1183  );
1184 
1185  this->cmdRegOut_out(
1186  0,
1188  );
1189  }
1190 
1191  // ----------------------------------------------------------------------
1192  // Parameter loading
1193  // ----------------------------------------------------------------------
1194 
1197  {
1199  const FwPrmIdType _baseId = static_cast<FwPrmIdType>(this->getIdBase());
1201 
1202  FwPrmIdType _id{};
1203  Fw::ParamBuffer _paramBuffer;
1204 
1205  _id = _baseId + PARAMID_LOCALEID;
1206 
1207  // Get serialized parameter LocalEid
1208  this->m_param_LocalEid_valid = this->prmGetOut_out(
1209  0,
1210  _id,
1211  _paramBuffer
1212  );
1213 
1214  this->m_paramLock.lock();
1215 
1216  // Deserialize parameter or use default value
1217  if (this->m_param_LocalEid_valid == Fw::ParamValid::VALID) {
1218  _stat = _paramBuffer.deserializeTo(this->m_LocalEid);
1219  if (_stat != Fw::FW_SERIALIZE_OK) {
1220  this->m_param_LocalEid_valid = Fw::ParamValid::DEFAULT;
1221  }
1222  }
1223  else {
1224  this->m_param_LocalEid_valid = Fw::ParamValid::DEFAULT;
1225  }
1226  if (this->m_param_LocalEid_valid == Fw::ParamValid::DEFAULT) {
1227  this->m_LocalEid = 42;
1228  }
1229 
1230  this->m_paramLock.unlock();
1231 
1232  _id = _baseId + PARAMID_OUTGOINGFILECHUNKSIZE;
1233 
1234  // Get serialized parameter OutgoingFileChunkSize
1235  this->m_param_OutgoingFileChunkSize_valid = this->prmGetOut_out(
1236  0,
1237  _id,
1238  _paramBuffer
1239  );
1240 
1241  this->m_paramLock.lock();
1242 
1243  // Deserialize parameter or use default value
1244  if (this->m_param_OutgoingFileChunkSize_valid == Fw::ParamValid::VALID) {
1245  _stat = _paramBuffer.deserializeTo(this->m_OutgoingFileChunkSize);
1246  if (_stat != Fw::FW_SERIALIZE_OK) {
1247  this->m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::DEFAULT;
1248  }
1249  }
1250  else {
1251  this->m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::DEFAULT;
1252  }
1253  if (this->m_param_OutgoingFileChunkSize_valid == Fw::ParamValid::DEFAULT) {
1254  this->m_OutgoingFileChunkSize = 992;
1255  }
1256 
1257  this->m_paramLock.unlock();
1258 
1259  _id = _baseId + PARAMID_RXCRCCALCBYTESPERCYCLE;
1260 
1261  // Get serialized parameter RxCrcCalcBytesPerCycle
1262  this->m_param_RxCrcCalcBytesPerCycle_valid = this->prmGetOut_out(
1263  0,
1264  _id,
1265  _paramBuffer
1266  );
1267 
1268  this->m_paramLock.lock();
1269 
1270  // Deserialize parameter or use default value
1271  if (this->m_param_RxCrcCalcBytesPerCycle_valid == Fw::ParamValid::VALID) {
1272  _stat = _paramBuffer.deserializeTo(this->m_RxCrcCalcBytesPerCycle);
1273  if (_stat != Fw::FW_SERIALIZE_OK) {
1274  this->m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::DEFAULT;
1275  }
1276  }
1277  else {
1278  this->m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::DEFAULT;
1279  }
1280  if (this->m_param_RxCrcCalcBytesPerCycle_valid == Fw::ParamValid::DEFAULT) {
1281  this->m_RxCrcCalcBytesPerCycle = 65536;
1282  }
1283 
1284  this->m_paramLock.unlock();
1285 
1286  _id = _baseId + PARAMID_POSTINACTIVITYSENDRETRIES;
1287 
1288  // Get serialized parameter PostInactivitySendRetries
1289  this->m_param_PostInactivitySendRetries_valid = this->prmGetOut_out(
1290  0,
1291  _id,
1292  _paramBuffer
1293  );
1294 
1295  this->m_paramLock.lock();
1296 
1297  // Deserialize parameter or use default value
1298  if (this->m_param_PostInactivitySendRetries_valid == Fw::ParamValid::VALID) {
1299  _stat = _paramBuffer.deserializeTo(this->m_PostInactivitySendRetries);
1300  if (_stat != Fw::FW_SERIALIZE_OK) {
1301  this->m_param_PostInactivitySendRetries_valid = Fw::ParamValid::DEFAULT;
1302  }
1303  }
1304  else {
1305  this->m_param_PostInactivitySendRetries_valid = Fw::ParamValid::DEFAULT;
1306  }
1307  if (this->m_param_PostInactivitySendRetries_valid == Fw::ParamValid::DEFAULT) {
1308  this->m_PostInactivitySendRetries = 3;
1309  }
1310 
1311  this->m_paramLock.unlock();
1312 
1313  _id = _baseId + PARAMID_FILEINDEFAULTCHANNEL;
1314 
1315  // Get serialized parameter FileInDefaultChannel
1316  this->m_param_FileInDefaultChannel_valid = this->prmGetOut_out(
1317  0,
1318  _id,
1319  _paramBuffer
1320  );
1321 
1322  this->m_paramLock.lock();
1323 
1324  // Deserialize parameter or use default value
1325  if (this->m_param_FileInDefaultChannel_valid == Fw::ParamValid::VALID) {
1326  _stat = _paramBuffer.deserializeTo(this->m_FileInDefaultChannel);
1327  if (_stat != Fw::FW_SERIALIZE_OK) {
1328  this->m_param_FileInDefaultChannel_valid = Fw::ParamValid::DEFAULT;
1329  }
1330  }
1331  else {
1332  this->m_param_FileInDefaultChannel_valid = Fw::ParamValid::DEFAULT;
1333  }
1334  if (this->m_param_FileInDefaultChannel_valid == Fw::ParamValid::DEFAULT) {
1335  this->m_FileInDefaultChannel = 0;
1336  }
1337 
1338  this->m_paramLock.unlock();
1339 
1340  _id = _baseId + PARAMID_FILEINDEFAULTDESTENTITYID;
1341 
1342  // Get serialized parameter FileInDefaultDestEntityId
1343  this->m_param_FileInDefaultDestEntityId_valid = this->prmGetOut_out(
1344  0,
1345  _id,
1346  _paramBuffer
1347  );
1348 
1349  this->m_paramLock.lock();
1350 
1351  // Deserialize parameter or use default value
1352  if (this->m_param_FileInDefaultDestEntityId_valid == Fw::ParamValid::VALID) {
1353  _stat = _paramBuffer.deserializeTo(this->m_FileInDefaultDestEntityId);
1354  if (_stat != Fw::FW_SERIALIZE_OK) {
1355  this->m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::DEFAULT;
1356  }
1357  }
1358  else {
1359  this->m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::DEFAULT;
1360  }
1361  if (this->m_param_FileInDefaultDestEntityId_valid == Fw::ParamValid::DEFAULT) {
1362  this->m_FileInDefaultDestEntityId = 100;
1363  }
1364 
1365  this->m_paramLock.unlock();
1366 
1367  _id = _baseId + PARAMID_FILEINDEFAULTCLASS;
1368 
1369  // Get serialized parameter FileInDefaultClass
1370  this->m_param_FileInDefaultClass_valid = this->prmGetOut_out(
1371  0,
1372  _id,
1373  _paramBuffer
1374  );
1375 
1376  this->m_paramLock.lock();
1377 
1378  // Deserialize parameter or use default value
1379  if (this->m_param_FileInDefaultClass_valid == Fw::ParamValid::VALID) {
1380  _stat = _paramBuffer.deserializeTo(this->m_FileInDefaultClass);
1381  if (_stat != Fw::FW_SERIALIZE_OK) {
1382  this->m_param_FileInDefaultClass_valid = Fw::ParamValid::DEFAULT;
1383  }
1384  }
1385  else {
1386  this->m_param_FileInDefaultClass_valid = Fw::ParamValid::DEFAULT;
1387  }
1388  if (this->m_param_FileInDefaultClass_valid == Fw::ParamValid::DEFAULT) {
1389  this->m_FileInDefaultClass = Svc::Ccsds::Cfdp::Class::CLASS_2;
1390  }
1391 
1392  this->m_paramLock.unlock();
1393 
1394  _id = _baseId + PARAMID_FILEINDEFAULTKEEP;
1395 
1396  // Get serialized parameter FileInDefaultKeep
1397  this->m_param_FileInDefaultKeep_valid = this->prmGetOut_out(
1398  0,
1399  _id,
1400  _paramBuffer
1401  );
1402 
1403  this->m_paramLock.lock();
1404 
1405  // Deserialize parameter or use default value
1406  if (this->m_param_FileInDefaultKeep_valid == Fw::ParamValid::VALID) {
1407  _stat = _paramBuffer.deserializeTo(this->m_FileInDefaultKeep);
1408  if (_stat != Fw::FW_SERIALIZE_OK) {
1409  this->m_param_FileInDefaultKeep_valid = Fw::ParamValid::DEFAULT;
1410  }
1411  }
1412  else {
1413  this->m_param_FileInDefaultKeep_valid = Fw::ParamValid::DEFAULT;
1414  }
1415  if (this->m_param_FileInDefaultKeep_valid == Fw::ParamValid::DEFAULT) {
1416  this->m_FileInDefaultKeep = Svc::Ccsds::Cfdp::Keep::DELETE;
1417  }
1418 
1419  this->m_paramLock.unlock();
1420 
1421  _id = _baseId + PARAMID_FILEINDEFAULTPRIORITY;
1422 
1423  // Get serialized parameter FileInDefaultPriority
1424  this->m_param_FileInDefaultPriority_valid = this->prmGetOut_out(
1425  0,
1426  _id,
1427  _paramBuffer
1428  );
1429 
1430  this->m_paramLock.lock();
1431 
1432  // Deserialize parameter or use default value
1433  if (this->m_param_FileInDefaultPriority_valid == Fw::ParamValid::VALID) {
1434  _stat = _paramBuffer.deserializeTo(this->m_FileInDefaultPriority);
1435  if (_stat != Fw::FW_SERIALIZE_OK) {
1436  this->m_param_FileInDefaultPriority_valid = Fw::ParamValid::DEFAULT;
1437  }
1438  }
1439  else {
1440  this->m_param_FileInDefaultPriority_valid = Fw::ParamValid::DEFAULT;
1441  }
1442  if (this->m_param_FileInDefaultPriority_valid == Fw::ParamValid::DEFAULT) {
1443  this->m_FileInDefaultPriority = 0;
1444  }
1445 
1446  this->m_paramLock.unlock();
1447 
1448  _id = _baseId + PARAMID_CHANNELCONFIG;
1449 
1450  // Get serialized parameter ChannelConfig
1451  this->m_param_ChannelConfig_valid = this->prmGetOut_out(
1452  0,
1453  _id,
1454  _paramBuffer
1455  );
1456 
1457  this->m_paramLock.lock();
1458 
1459  // Deserialize parameter or use default value
1460  if (this->m_param_ChannelConfig_valid == Fw::ParamValid::VALID) {
1461  _stat = _paramBuffer.deserializeTo(this->m_ChannelConfig);
1462  if (_stat != Fw::FW_SERIALIZE_OK) {
1463  this->m_param_ChannelConfig_valid = Fw::ParamValid::DEFAULT;
1464  }
1465  }
1466  else {
1467  this->m_param_ChannelConfig_valid = Fw::ParamValid::DEFAULT;
1468  }
1469  if (this->m_param_ChannelConfig_valid == Fw::ParamValid::DEFAULT) {
1470  this->m_ChannelConfig = Svc::Ccsds::Cfdp::ChannelArrayParams(Svc::Ccsds::Cfdp::ChannelParams(10, 10, 2, 120, Fw::Enabled::ENABLED, Fw::String(""), 64, Fw::String("/tmp"), Fw::String("/fail")));
1471  }
1472 
1473  this->m_paramLock.unlock();
1474 
1475  // Call notifier
1476  this->parametersLoaded();
1477  }
1478 
1479  // ----------------------------------------------------------------------
1480  // Component construction and destruction
1481  // ----------------------------------------------------------------------
1482 
1484  CfdpManagerComponentBase(const char* compName) :
1485  Fw::ActiveComponentBase(compName)
1486  {
1487 
1488  }
1489 
1492  {
1493 
1494  }
1495 
1496 #if !FW_DIRECT_PORT_CALLS
1497 
1498  // ----------------------------------------------------------------------
1499  // Connection status queries for special output ports
1500  // ----------------------------------------------------------------------
1501 
1504  {
1505  FW_ASSERT(
1506  (0 <= portNum) && (portNum < this->getNum_cmdRegOut_OutputPorts()),
1507  static_cast<FwAssertArgType>(portNum)
1508  );
1509 
1510  return this->m_cmdRegOut_OutputPort[portNum].isConnected();
1511  }
1512 
1515  {
1516  FW_ASSERT(
1517  (0 <= portNum) && (portNum < this->getNum_cmdResponseOut_OutputPorts()),
1518  static_cast<FwAssertArgType>(portNum)
1519  );
1520 
1521  return this->m_cmdResponseOut_OutputPort[portNum].isConnected();
1522  }
1523 
1526  {
1527  FW_ASSERT(
1528  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
1529  static_cast<FwAssertArgType>(portNum)
1530  );
1531 
1532  return this->m_logOut_OutputPort[portNum].isConnected();
1533  }
1534 
1535 #if FW_ENABLE_TEXT_LOGGING == 1
1536 
1537  bool CfdpManagerComponentBase ::
1538  isConnected_logTextOut_OutputPort(FwIndexType portNum) const
1539  {
1540  FW_ASSERT(
1541  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
1542  static_cast<FwAssertArgType>(portNum)
1543  );
1544 
1545  return this->m_logTextOut_OutputPort[portNum].isConnected();
1546  }
1547 
1548 #endif
1549 
1552  {
1553  FW_ASSERT(
1554  (0 <= portNum) && (portNum < this->getNum_prmGetOut_OutputPorts()),
1555  static_cast<FwAssertArgType>(portNum)
1556  );
1557 
1558  return this->m_prmGetOut_OutputPort[portNum].isConnected();
1559  }
1560 
1563  {
1564  FW_ASSERT(
1565  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
1566  static_cast<FwAssertArgType>(portNum)
1567  );
1568 
1569  return this->m_prmSetOut_OutputPort[portNum].isConnected();
1570  }
1571 
1574  {
1575  FW_ASSERT(
1576  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
1577  static_cast<FwAssertArgType>(portNum)
1578  );
1579 
1580  return this->m_timeCaller_OutputPort[portNum].isConnected();
1581  }
1582 
1585  {
1586  FW_ASSERT(
1587  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
1588  static_cast<FwAssertArgType>(portNum)
1589  );
1590 
1591  return this->m_tlmOut_OutputPort[portNum].isConnected();
1592  }
1593 
1594 #endif
1595 
1596 #if !FW_DIRECT_PORT_CALLS
1597 
1598  // ----------------------------------------------------------------------
1599  // Connection status queries for typed output ports
1600  // ----------------------------------------------------------------------
1601 
1604  {
1605  FW_ASSERT(
1606  (0 <= portNum) && (portNum < this->getNum_bufferAllocate_OutputPorts()),
1607  static_cast<FwAssertArgType>(portNum)
1608  );
1609 
1610  return this->m_bufferAllocate_OutputPort[portNum].isConnected();
1611  }
1612 
1615  {
1616  FW_ASSERT(
1617  (0 <= portNum) && (portNum < this->getNum_bufferDeallocate_OutputPorts()),
1618  static_cast<FwAssertArgType>(portNum)
1619  );
1620 
1621  return this->m_bufferDeallocate_OutputPort[portNum].isConnected();
1622  }
1623 
1626  {
1627  FW_ASSERT(
1628  (0 <= portNum) && (portNum < this->getNum_dataInReturn_OutputPorts()),
1629  static_cast<FwAssertArgType>(portNum)
1630  );
1631 
1632  return this->m_dataInReturn_OutputPort[portNum].isConnected();
1633  }
1634 
1637  {
1638  FW_ASSERT(
1639  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
1640  static_cast<FwAssertArgType>(portNum)
1641  );
1642 
1643  return this->m_dataOut_OutputPort[portNum].isConnected();
1644  }
1645 
1648  {
1649  FW_ASSERT(
1650  (0 <= portNum) && (portNum < this->getNum_fileDoneOut_OutputPorts()),
1651  static_cast<FwAssertArgType>(portNum)
1652  );
1653 
1654  return this->m_fileDoneOut_OutputPort[portNum].isConnected();
1655  }
1656 
1659  {
1660  FW_ASSERT(
1661  (0 <= portNum) && (portNum < this->getNum_pingOut_OutputPorts()),
1662  static_cast<FwAssertArgType>(portNum)
1663  );
1664 
1665  return this->m_pingOut_OutputPort[portNum].isConnected();
1666  }
1667 
1668 #endif
1669 
1670  // ----------------------------------------------------------------------
1671  // Port handler base-class functions for special input ports
1672  //
1673  // Call these functions directly to bypass the corresponding ports
1674  // ----------------------------------------------------------------------
1675 
1678  FwIndexType portNum,
1679  FwOpcodeType opCode,
1680  U32 cmdSeq,
1681  Fw::CmdArgBuffer& args
1682  )
1683  {
1684 
1685  const U32 idBase = this->getIdBase();
1686  FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
1687 
1688  // Select base class function based on opcode
1689  switch (opCode - idBase) {
1690  case OPCODE_SENDFILE: {
1692  opCode,
1693  cmdSeq,
1694  args
1695  );
1696  break;
1697  }
1698 
1699  case OPCODE_PLAYBACKDIRECTORY: {
1701  opCode,
1702  cmdSeq,
1703  args
1704  );
1705  break;
1706  }
1707 
1708  case OPCODE_POLLDIRECTORY: {
1710  opCode,
1711  cmdSeq,
1712  args
1713  );
1714  break;
1715  }
1716 
1717  case OPCODE_STOPPOLLDIRECTORY: {
1719  opCode,
1720  cmdSeq,
1721  args
1722  );
1723  break;
1724  }
1725 
1726  case OPCODE_SETCHANNELFLOW: {
1728  opCode,
1729  cmdSeq,
1730  args
1731  );
1732  break;
1733  }
1734 
1737  opCode,
1738  cmdSeq,
1739  args
1740  );
1741  break;
1742  }
1743 
1744  case OPCODE_CANCELTRANSACTION: {
1746  opCode,
1747  cmdSeq,
1748  args
1749  );
1750  break;
1751  }
1752 
1755  opCode,
1756  cmdSeq,
1757  args
1758  );
1759  break;
1760  }
1761 
1762  case OPCODE_RESETCOUNTERS: {
1764  opCode,
1765  cmdSeq,
1766  args
1767  );
1768  break;
1769  }
1770 
1771  case OPCODE_LOCALEID_SET: {
1772  Fw::CmdResponse _cstat = this->paramSet_LocalEid(args);
1773  this->cmdResponse_out(
1774  opCode,
1775  cmdSeq,
1776  _cstat
1777  );
1778  break;
1779  }
1780 
1781  case OPCODE_LOCALEID_SAVE: {
1782  Fw::CmdResponse _cstat = this->paramSave_LocalEid();
1783  this->cmdResponse_out(
1784  opCode,
1785  cmdSeq,
1786  _cstat
1787  );
1788  break;
1789  }
1790 
1792  Fw::CmdResponse _cstat = this->paramSet_OutgoingFileChunkSize(args);
1793  this->cmdResponse_out(
1794  opCode,
1795  cmdSeq,
1796  _cstat
1797  );
1798  break;
1799  }
1800 
1802  Fw::CmdResponse _cstat = this->paramSave_OutgoingFileChunkSize();
1803  this->cmdResponse_out(
1804  opCode,
1805  cmdSeq,
1806  _cstat
1807  );
1808  break;
1809  }
1810 
1812  Fw::CmdResponse _cstat = this->paramSet_RxCrcCalcBytesPerCycle(args);
1813  this->cmdResponse_out(
1814  opCode,
1815  cmdSeq,
1816  _cstat
1817  );
1818  break;
1819  }
1820 
1822  Fw::CmdResponse _cstat = this->paramSave_RxCrcCalcBytesPerCycle();
1823  this->cmdResponse_out(
1824  opCode,
1825  cmdSeq,
1826  _cstat
1827  );
1828  break;
1829  }
1830 
1832  Fw::CmdResponse _cstat = this->paramSet_PostInactivitySendRetries(args);
1833  this->cmdResponse_out(
1834  opCode,
1835  cmdSeq,
1836  _cstat
1837  );
1838  break;
1839  }
1840 
1842  Fw::CmdResponse _cstat = this->paramSave_PostInactivitySendRetries();
1843  this->cmdResponse_out(
1844  opCode,
1845  cmdSeq,
1846  _cstat
1847  );
1848  break;
1849  }
1850 
1852  Fw::CmdResponse _cstat = this->paramSet_FileInDefaultChannel(args);
1853  this->cmdResponse_out(
1854  opCode,
1855  cmdSeq,
1856  _cstat
1857  );
1858  break;
1859  }
1860 
1862  Fw::CmdResponse _cstat = this->paramSave_FileInDefaultChannel();
1863  this->cmdResponse_out(
1864  opCode,
1865  cmdSeq,
1866  _cstat
1867  );
1868  break;
1869  }
1870 
1872  Fw::CmdResponse _cstat = this->paramSet_FileInDefaultDestEntityId(args);
1873  this->cmdResponse_out(
1874  opCode,
1875  cmdSeq,
1876  _cstat
1877  );
1878  break;
1879  }
1880 
1882  Fw::CmdResponse _cstat = this->paramSave_FileInDefaultDestEntityId();
1883  this->cmdResponse_out(
1884  opCode,
1885  cmdSeq,
1886  _cstat
1887  );
1888  break;
1889  }
1890 
1892  Fw::CmdResponse _cstat = this->paramSet_FileInDefaultClass(args);
1893  this->cmdResponse_out(
1894  opCode,
1895  cmdSeq,
1896  _cstat
1897  );
1898  break;
1899  }
1900 
1902  Fw::CmdResponse _cstat = this->paramSave_FileInDefaultClass();
1903  this->cmdResponse_out(
1904  opCode,
1905  cmdSeq,
1906  _cstat
1907  );
1908  break;
1909  }
1910 
1912  Fw::CmdResponse _cstat = this->paramSet_FileInDefaultKeep(args);
1913  this->cmdResponse_out(
1914  opCode,
1915  cmdSeq,
1916  _cstat
1917  );
1918  break;
1919  }
1920 
1922  Fw::CmdResponse _cstat = this->paramSave_FileInDefaultKeep();
1923  this->cmdResponse_out(
1924  opCode,
1925  cmdSeq,
1926  _cstat
1927  );
1928  break;
1929  }
1930 
1932  Fw::CmdResponse _cstat = this->paramSet_FileInDefaultPriority(args);
1933  this->cmdResponse_out(
1934  opCode,
1935  cmdSeq,
1936  _cstat
1937  );
1938  break;
1939  }
1940 
1942  Fw::CmdResponse _cstat = this->paramSave_FileInDefaultPriority();
1943  this->cmdResponse_out(
1944  opCode,
1945  cmdSeq,
1946  _cstat
1947  );
1948  break;
1949  }
1950 
1951  case OPCODE_CHANNELCONFIG_SET: {
1952  Fw::CmdResponse _cstat = this->paramSet_ChannelConfig(args);
1953  this->cmdResponse_out(
1954  opCode,
1955  cmdSeq,
1956  _cstat
1957  );
1958  break;
1959  }
1960 
1962  Fw::CmdResponse _cstat = this->paramSave_ChannelConfig();
1963  this->cmdResponse_out(
1964  opCode,
1965  cmdSeq,
1966  _cstat
1967  );
1968  break;
1969  }
1970  default:
1971  // Unknown opcode: ignore it
1972  break;
1973  }
1974  }
1975 
1976  // ----------------------------------------------------------------------
1977  // Port handler base-class functions for typed input ports
1978  //
1979  // Call these functions directly to bypass the corresponding ports
1980  // ----------------------------------------------------------------------
1981 
1984  FwIndexType portNum,
1985  Fw::Buffer& fwBuffer
1986  )
1987  {
1988  // Make sure port number is valid
1989  FW_ASSERT(
1990  (0 <= portNum) && (portNum < this->getNum_dataIn_InputPorts()),
1991  static_cast<FwAssertArgType>(portNum)
1992  );
1993 
1994  // Call pre-message hook
1996  portNum,
1997  fwBuffer
1998  );
1999  ComponentIpcSerializableBuffer msg;
2001 
2002  // Serialize message ID
2003  _status = msg.serializeFrom(
2004  static_cast<FwEnumStoreType>(DATAIN_BUFFERSEND)
2005  );
2006  FW_ASSERT(
2007  _status == Fw::FW_SERIALIZE_OK,
2008  static_cast<FwAssertArgType>(_status)
2009  );
2010 
2011  // Serialize port number
2012  _status = msg.serializeFrom(portNum);
2013  FW_ASSERT(
2014  _status == Fw::FW_SERIALIZE_OK,
2015  static_cast<FwAssertArgType>(_status)
2016  );
2017 
2018  // Serialize argument fwBuffer
2019  _status = msg.serializeFrom(fwBuffer);
2020  FW_ASSERT(
2021  _status == Fw::FW_SERIALIZE_OK,
2022  static_cast<FwAssertArgType>(_status)
2023  );
2024 
2025  // Send message
2027  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2028 
2029  FW_ASSERT(
2030  qStatus == Os::Queue::OP_OK,
2031  static_cast<FwAssertArgType>(qStatus)
2032  );
2033  }
2034 
2037  FwIndexType portNum,
2038  Fw::Buffer& fwBuffer
2039  )
2040  {
2041  // Make sure port number is valid
2042  FW_ASSERT(
2043  (0 <= portNum) && (portNum < this->getNum_dataReturnIn_InputPorts()),
2044  static_cast<FwAssertArgType>(portNum)
2045  );
2046 
2047  // Call pre-message hook
2049  portNum,
2050  fwBuffer
2051  );
2052  ComponentIpcSerializableBuffer msg;
2054 
2055  // Serialize message ID
2056  _status = msg.serializeFrom(
2057  static_cast<FwEnumStoreType>(DATARETURNIN_BUFFERSEND)
2058  );
2059  FW_ASSERT(
2060  _status == Fw::FW_SERIALIZE_OK,
2061  static_cast<FwAssertArgType>(_status)
2062  );
2063 
2064  // Serialize port number
2065  _status = msg.serializeFrom(portNum);
2066  FW_ASSERT(
2067  _status == Fw::FW_SERIALIZE_OK,
2068  static_cast<FwAssertArgType>(_status)
2069  );
2070 
2071  // Serialize argument fwBuffer
2072  _status = msg.serializeFrom(fwBuffer);
2073  FW_ASSERT(
2074  _status == Fw::FW_SERIALIZE_OK,
2075  static_cast<FwAssertArgType>(_status)
2076  );
2077 
2078  // Send message
2080  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2081 
2082  FW_ASSERT(
2083  qStatus == Os::Queue::OP_OK,
2084  static_cast<FwAssertArgType>(qStatus)
2085  );
2086  }
2087 
2090  FwIndexType portNum,
2091  const Fw::StringBase& sourceFileName,
2092  const Fw::StringBase& destFileName,
2093  U32 offset,
2094  U32 length
2095  )
2096  {
2097  // Make sure port number is valid
2098  FW_ASSERT(
2099  (0 <= portNum) && (portNum < this->getNum_fileIn_InputPorts()),
2100  static_cast<FwAssertArgType>(portNum)
2101  );
2102 
2103  Svc::SendFileResponse retVal;
2104 
2105  // Lock guard mutex before calling
2106  this->lock();
2107 
2108  // Call handler function
2109  retVal = this->fileIn_handler(
2110  portNum,
2111  sourceFileName,
2112  destFileName,
2113  offset,
2114  length
2115  );
2116 
2117  // Unlock guard mutex
2118  this->unLock();
2119 
2120  return retVal;
2121  }
2122 
2125  FwIndexType portNum,
2126  U32 key
2127  )
2128  {
2129  // Make sure port number is valid
2130  FW_ASSERT(
2131  (0 <= portNum) && (portNum < this->getNum_pingIn_InputPorts()),
2132  static_cast<FwAssertArgType>(portNum)
2133  );
2134 
2135  // Call pre-message hook
2137  portNum,
2138  key
2139  );
2140  ComponentIpcSerializableBuffer msg;
2142 
2143  // Serialize message ID
2144  _status = msg.serializeFrom(
2145  static_cast<FwEnumStoreType>(PINGIN_PING)
2146  );
2147  FW_ASSERT(
2148  _status == Fw::FW_SERIALIZE_OK,
2149  static_cast<FwAssertArgType>(_status)
2150  );
2151 
2152  // Serialize port number
2153  _status = msg.serializeFrom(portNum);
2154  FW_ASSERT(
2155  _status == Fw::FW_SERIALIZE_OK,
2156  static_cast<FwAssertArgType>(_status)
2157  );
2158 
2159  // Serialize argument key
2160  _status = msg.serializeFrom(key);
2161  FW_ASSERT(
2162  _status == Fw::FW_SERIALIZE_OK,
2163  static_cast<FwAssertArgType>(_status)
2164  );
2165 
2166  // Send message
2168  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2169 
2170  FW_ASSERT(
2171  qStatus == Os::Queue::OP_OK,
2172  static_cast<FwAssertArgType>(qStatus)
2173  );
2174  }
2175 
2178  FwIndexType portNum,
2179  U32 context
2180  )
2181  {
2182  // Make sure port number is valid
2183  FW_ASSERT(
2184  (0 <= portNum) && (portNum < this->getNum_run1Hz_InputPorts()),
2185  static_cast<FwAssertArgType>(portNum)
2186  );
2187 
2188  // Call pre-message hook
2190  portNum,
2191  context
2192  );
2193  ComponentIpcSerializableBuffer msg;
2195 
2196  // Serialize message ID
2197  _status = msg.serializeFrom(
2198  static_cast<FwEnumStoreType>(RUN1HZ_SCHED)
2199  );
2200  FW_ASSERT(
2201  _status == Fw::FW_SERIALIZE_OK,
2202  static_cast<FwAssertArgType>(_status)
2203  );
2204 
2205  // Serialize port number
2206  _status = msg.serializeFrom(portNum);
2207  FW_ASSERT(
2208  _status == Fw::FW_SERIALIZE_OK,
2209  static_cast<FwAssertArgType>(_status)
2210  );
2211 
2212  // Serialize argument context
2213  _status = msg.serializeFrom(context);
2214  FW_ASSERT(
2215  _status == Fw::FW_SERIALIZE_OK,
2216  static_cast<FwAssertArgType>(_status)
2217  );
2218 
2219  // Send message
2221  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2222 
2223  FW_ASSERT(
2224  qStatus == Os::Queue::OP_OK,
2225  static_cast<FwAssertArgType>(qStatus)
2226  );
2227  }
2228 
2229  // ----------------------------------------------------------------------
2230  // Pre-message hooks for typed async input ports
2231  //
2232  // Each of these functions is invoked just before processing a message
2233  // on the corresponding port. By default, they do nothing. You can
2234  // override them to provide specific pre-message behavior.
2235  // ----------------------------------------------------------------------
2236 
2239  FwIndexType portNum,
2240  Fw::Buffer& fwBuffer
2241  )
2242  {
2243  // Default: no-op
2244  }
2245 
2248  FwIndexType portNum,
2249  Fw::Buffer& fwBuffer
2250  )
2251  {
2252  // Default: no-op
2253  }
2254 
2257  FwIndexType portNum,
2258  U32 key
2259  )
2260  {
2261  // Default: no-op
2262  }
2263 
2266  FwIndexType portNum,
2267  U32 context
2268  )
2269  {
2270  // Default: no-op
2271  }
2272 
2273 #if !FW_DIRECT_PORT_CALLS
2274 
2275  // ----------------------------------------------------------------------
2276  // Invocation functions for typed output ports
2277  // ----------------------------------------------------------------------
2278 
2281  FwIndexType portNum,
2282  FwSizeType size
2283  ) const
2284  {
2285  FW_ASSERT(
2286  (0 <= portNum) && (portNum < this->getNum_bufferAllocate_OutputPorts()),
2287  static_cast<FwAssertArgType>(portNum)
2288  );
2289 
2290  FW_ASSERT(
2291  this->m_bufferAllocate_OutputPort[portNum].isConnected(),
2292  static_cast<FwAssertArgType>(portNum)
2293  );
2294  return this->m_bufferAllocate_OutputPort[portNum].invoke(
2295  size
2296  );
2297  }
2298 
2301  FwIndexType portNum,
2302  Fw::Buffer& fwBuffer
2303  ) const
2304  {
2305  FW_ASSERT(
2306  (0 <= portNum) && (portNum < this->getNum_bufferDeallocate_OutputPorts()),
2307  static_cast<FwAssertArgType>(portNum)
2308  );
2309 
2310  FW_ASSERT(
2311  this->m_bufferDeallocate_OutputPort[portNum].isConnected(),
2312  static_cast<FwAssertArgType>(portNum)
2313  );
2314  this->m_bufferDeallocate_OutputPort[portNum].invoke(
2315  fwBuffer
2316  );
2317  }
2318 
2321  FwIndexType portNum,
2322  Fw::Buffer& fwBuffer
2323  ) const
2324  {
2325  FW_ASSERT(
2326  (0 <= portNum) && (portNum < this->getNum_dataInReturn_OutputPorts()),
2327  static_cast<FwAssertArgType>(portNum)
2328  );
2329 
2330  FW_ASSERT(
2331  this->m_dataInReturn_OutputPort[portNum].isConnected(),
2332  static_cast<FwAssertArgType>(portNum)
2333  );
2334  this->m_dataInReturn_OutputPort[portNum].invoke(
2335  fwBuffer
2336  );
2337  }
2338 
2341  FwIndexType portNum,
2342  Fw::Buffer& fwBuffer
2343  ) const
2344  {
2345  FW_ASSERT(
2346  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
2347  static_cast<FwAssertArgType>(portNum)
2348  );
2349 
2350  FW_ASSERT(
2351  this->m_dataOut_OutputPort[portNum].isConnected(),
2352  static_cast<FwAssertArgType>(portNum)
2353  );
2354  this->m_dataOut_OutputPort[portNum].invoke(
2355  fwBuffer
2356  );
2357  }
2358 
2361  FwIndexType portNum,
2362  const Svc::SendFileResponse& resp
2363  ) const
2364  {
2365  FW_ASSERT(
2366  (0 <= portNum) && (portNum < this->getNum_fileDoneOut_OutputPorts()),
2367  static_cast<FwAssertArgType>(portNum)
2368  );
2369 
2370  FW_ASSERT(
2371  this->m_fileDoneOut_OutputPort[portNum].isConnected(),
2372  static_cast<FwAssertArgType>(portNum)
2373  );
2374  this->m_fileDoneOut_OutputPort[portNum].invoke(
2375  resp
2376  );
2377  }
2378 
2381  FwIndexType portNum,
2382  U32 key
2383  ) const
2384  {
2385  FW_ASSERT(
2386  (0 <= portNum) && (portNum < this->getNum_pingOut_OutputPorts()),
2387  static_cast<FwAssertArgType>(portNum)
2388  );
2389 
2390  FW_ASSERT(
2391  this->m_pingOut_OutputPort[portNum].isConnected(),
2392  static_cast<FwAssertArgType>(portNum)
2393  );
2394  this->m_pingOut_OutputPort[portNum].invoke(
2395  key
2396  );
2397  }
2398 
2399 #endif
2400 
2401  // ----------------------------------------------------------------------
2402  // Command response
2403  // ----------------------------------------------------------------------
2404 
2407  FwOpcodeType opCode,
2408  U32 cmdSeq,
2409  Fw::CmdResponse response
2410  )
2411  {
2413  this->cmdResponseOut_out(0, opCode, cmdSeq, response);
2414  }
2415 
2416  // ----------------------------------------------------------------------
2417  // Command handler base-class functions
2418  //
2419  // Call these functions directly to bypass the command input port
2420  // ----------------------------------------------------------------------
2421 
2424  FwOpcodeType opCode,
2425  U32 cmdSeq,
2426  Fw::CmdArgBuffer& args
2427  )
2428  {
2429  // Call pre-message hook
2430  this->SendFile_preMsgHook(opCode,cmdSeq);
2431 
2432  // Defer deserializing arguments to the message dispatcher
2433  // to avoid deserializing and reserializing just for IPC
2434  ComponentIpcSerializableBuffer msg;
2436 
2437  // Serialize for IPC
2438  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SENDFILE));
2439  FW_ASSERT (
2440  _status == Fw::FW_SERIALIZE_OK,
2441  static_cast<FwAssertArgType>(_status)
2442  );
2443 
2444  // Fake port number to make message dequeue work
2445  FwIndexType port = 0;
2446 
2447  _status = msg.serializeFrom(port);
2448  FW_ASSERT (
2449  _status == Fw::FW_SERIALIZE_OK,
2450  static_cast<FwAssertArgType>(_status)
2451  );
2452 
2453  _status = msg.serializeFrom(opCode);
2454  FW_ASSERT (
2455  _status == Fw::FW_SERIALIZE_OK,
2456  static_cast<FwAssertArgType>(_status)
2457  );
2458 
2459  _status = msg.serializeFrom(cmdSeq);
2460  FW_ASSERT (
2461  _status == Fw::FW_SERIALIZE_OK,
2462  static_cast<FwAssertArgType>(_status)
2463  );
2464 
2465  _status = msg.serializeFrom(args);
2466  FW_ASSERT (
2467  _status == Fw::FW_SERIALIZE_OK,
2468  static_cast<FwAssertArgType>(_status)
2469  );
2470 
2471  // Send message
2473  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2474 
2475  FW_ASSERT(
2476  qStatus == Os::Queue::OP_OK,
2477  static_cast<FwAssertArgType>(qStatus)
2478  );
2479  }
2480 
2483  FwOpcodeType opCode,
2484  U32 cmdSeq,
2485  Fw::CmdArgBuffer& args
2486  )
2487  {
2488  // Call pre-message hook
2489  this->PlaybackDirectory_preMsgHook(opCode,cmdSeq);
2490 
2491  // Defer deserializing arguments to the message dispatcher
2492  // to avoid deserializing and reserializing just for IPC
2493  ComponentIpcSerializableBuffer msg;
2495 
2496  // Serialize for IPC
2497  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_PLAYBACKDIRECTORY));
2498  FW_ASSERT (
2499  _status == Fw::FW_SERIALIZE_OK,
2500  static_cast<FwAssertArgType>(_status)
2501  );
2502 
2503  // Fake port number to make message dequeue work
2504  FwIndexType port = 0;
2505 
2506  _status = msg.serializeFrom(port);
2507  FW_ASSERT (
2508  _status == Fw::FW_SERIALIZE_OK,
2509  static_cast<FwAssertArgType>(_status)
2510  );
2511 
2512  _status = msg.serializeFrom(opCode);
2513  FW_ASSERT (
2514  _status == Fw::FW_SERIALIZE_OK,
2515  static_cast<FwAssertArgType>(_status)
2516  );
2517 
2518  _status = msg.serializeFrom(cmdSeq);
2519  FW_ASSERT (
2520  _status == Fw::FW_SERIALIZE_OK,
2521  static_cast<FwAssertArgType>(_status)
2522  );
2523 
2524  _status = msg.serializeFrom(args);
2525  FW_ASSERT (
2526  _status == Fw::FW_SERIALIZE_OK,
2527  static_cast<FwAssertArgType>(_status)
2528  );
2529 
2530  // Send message
2532  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2533 
2534  FW_ASSERT(
2535  qStatus == Os::Queue::OP_OK,
2536  static_cast<FwAssertArgType>(qStatus)
2537  );
2538  }
2539 
2542  FwOpcodeType opCode,
2543  U32 cmdSeq,
2544  Fw::CmdArgBuffer& args
2545  )
2546  {
2547  // Call pre-message hook
2548  this->PollDirectory_preMsgHook(opCode,cmdSeq);
2549 
2550  // Defer deserializing arguments to the message dispatcher
2551  // to avoid deserializing and reserializing just for IPC
2552  ComponentIpcSerializableBuffer msg;
2554 
2555  // Serialize for IPC
2556  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_POLLDIRECTORY));
2557  FW_ASSERT (
2558  _status == Fw::FW_SERIALIZE_OK,
2559  static_cast<FwAssertArgType>(_status)
2560  );
2561 
2562  // Fake port number to make message dequeue work
2563  FwIndexType port = 0;
2564 
2565  _status = msg.serializeFrom(port);
2566  FW_ASSERT (
2567  _status == Fw::FW_SERIALIZE_OK,
2568  static_cast<FwAssertArgType>(_status)
2569  );
2570 
2571  _status = msg.serializeFrom(opCode);
2572  FW_ASSERT (
2573  _status == Fw::FW_SERIALIZE_OK,
2574  static_cast<FwAssertArgType>(_status)
2575  );
2576 
2577  _status = msg.serializeFrom(cmdSeq);
2578  FW_ASSERT (
2579  _status == Fw::FW_SERIALIZE_OK,
2580  static_cast<FwAssertArgType>(_status)
2581  );
2582 
2583  _status = msg.serializeFrom(args);
2584  FW_ASSERT (
2585  _status == Fw::FW_SERIALIZE_OK,
2586  static_cast<FwAssertArgType>(_status)
2587  );
2588 
2589  // Send message
2591  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2592 
2593  FW_ASSERT(
2594  qStatus == Os::Queue::OP_OK,
2595  static_cast<FwAssertArgType>(qStatus)
2596  );
2597  }
2598 
2601  FwOpcodeType opCode,
2602  U32 cmdSeq,
2603  Fw::CmdArgBuffer& args
2604  )
2605  {
2606  // Call pre-message hook
2607  this->StopPollDirectory_preMsgHook(opCode,cmdSeq);
2608 
2609  // Defer deserializing arguments to the message dispatcher
2610  // to avoid deserializing and reserializing just for IPC
2611  ComponentIpcSerializableBuffer msg;
2613 
2614  // Serialize for IPC
2615  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_STOPPOLLDIRECTORY));
2616  FW_ASSERT (
2617  _status == Fw::FW_SERIALIZE_OK,
2618  static_cast<FwAssertArgType>(_status)
2619  );
2620 
2621  // Fake port number to make message dequeue work
2622  FwIndexType port = 0;
2623 
2624  _status = msg.serializeFrom(port);
2625  FW_ASSERT (
2626  _status == Fw::FW_SERIALIZE_OK,
2627  static_cast<FwAssertArgType>(_status)
2628  );
2629 
2630  _status = msg.serializeFrom(opCode);
2631  FW_ASSERT (
2632  _status == Fw::FW_SERIALIZE_OK,
2633  static_cast<FwAssertArgType>(_status)
2634  );
2635 
2636  _status = msg.serializeFrom(cmdSeq);
2637  FW_ASSERT (
2638  _status == Fw::FW_SERIALIZE_OK,
2639  static_cast<FwAssertArgType>(_status)
2640  );
2641 
2642  _status = msg.serializeFrom(args);
2643  FW_ASSERT (
2644  _status == Fw::FW_SERIALIZE_OK,
2645  static_cast<FwAssertArgType>(_status)
2646  );
2647 
2648  // Send message
2650  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2651 
2652  FW_ASSERT(
2653  qStatus == Os::Queue::OP_OK,
2654  static_cast<FwAssertArgType>(qStatus)
2655  );
2656  }
2657 
2660  FwOpcodeType opCode,
2661  U32 cmdSeq,
2662  Fw::CmdArgBuffer& args
2663  )
2664  {
2665  // Call pre-message hook
2666  this->SetChannelFlow_preMsgHook(opCode,cmdSeq);
2667 
2668  // Defer deserializing arguments to the message dispatcher
2669  // to avoid deserializing and reserializing just for IPC
2670  ComponentIpcSerializableBuffer msg;
2672 
2673  // Serialize for IPC
2674  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SETCHANNELFLOW));
2675  FW_ASSERT (
2676  _status == Fw::FW_SERIALIZE_OK,
2677  static_cast<FwAssertArgType>(_status)
2678  );
2679 
2680  // Fake port number to make message dequeue work
2681  FwIndexType port = 0;
2682 
2683  _status = msg.serializeFrom(port);
2684  FW_ASSERT (
2685  _status == Fw::FW_SERIALIZE_OK,
2686  static_cast<FwAssertArgType>(_status)
2687  );
2688 
2689  _status = msg.serializeFrom(opCode);
2690  FW_ASSERT (
2691  _status == Fw::FW_SERIALIZE_OK,
2692  static_cast<FwAssertArgType>(_status)
2693  );
2694 
2695  _status = msg.serializeFrom(cmdSeq);
2696  FW_ASSERT (
2697  _status == Fw::FW_SERIALIZE_OK,
2698  static_cast<FwAssertArgType>(_status)
2699  );
2700 
2701  _status = msg.serializeFrom(args);
2702  FW_ASSERT (
2703  _status == Fw::FW_SERIALIZE_OK,
2704  static_cast<FwAssertArgType>(_status)
2705  );
2706 
2707  // Send message
2709  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2710 
2711  FW_ASSERT(
2712  qStatus == Os::Queue::OP_OK,
2713  static_cast<FwAssertArgType>(qStatus)
2714  );
2715  }
2716 
2719  FwOpcodeType opCode,
2720  U32 cmdSeq,
2721  Fw::CmdArgBuffer& args
2722  )
2723  {
2724  // Call pre-message hook
2725  this->SuspendResumeTransaction_preMsgHook(opCode,cmdSeq);
2726 
2727  // Defer deserializing arguments to the message dispatcher
2728  // to avoid deserializing and reserializing just for IPC
2729  ComponentIpcSerializableBuffer msg;
2731 
2732  // Serialize for IPC
2733  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SUSPENDRESUMETRANSACTION));
2734  FW_ASSERT (
2735  _status == Fw::FW_SERIALIZE_OK,
2736  static_cast<FwAssertArgType>(_status)
2737  );
2738 
2739  // Fake port number to make message dequeue work
2740  FwIndexType port = 0;
2741 
2742  _status = msg.serializeFrom(port);
2743  FW_ASSERT (
2744  _status == Fw::FW_SERIALIZE_OK,
2745  static_cast<FwAssertArgType>(_status)
2746  );
2747 
2748  _status = msg.serializeFrom(opCode);
2749  FW_ASSERT (
2750  _status == Fw::FW_SERIALIZE_OK,
2751  static_cast<FwAssertArgType>(_status)
2752  );
2753 
2754  _status = msg.serializeFrom(cmdSeq);
2755  FW_ASSERT (
2756  _status == Fw::FW_SERIALIZE_OK,
2757  static_cast<FwAssertArgType>(_status)
2758  );
2759 
2760  _status = msg.serializeFrom(args);
2761  FW_ASSERT (
2762  _status == Fw::FW_SERIALIZE_OK,
2763  static_cast<FwAssertArgType>(_status)
2764  );
2765 
2766  // Send message
2768  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2769 
2770  FW_ASSERT(
2771  qStatus == Os::Queue::OP_OK,
2772  static_cast<FwAssertArgType>(qStatus)
2773  );
2774  }
2775 
2778  FwOpcodeType opCode,
2779  U32 cmdSeq,
2780  Fw::CmdArgBuffer& args
2781  )
2782  {
2783  // Call pre-message hook
2784  this->CancelTransaction_preMsgHook(opCode,cmdSeq);
2785 
2786  // Defer deserializing arguments to the message dispatcher
2787  // to avoid deserializing and reserializing just for IPC
2788  ComponentIpcSerializableBuffer msg;
2790 
2791  // Serialize for IPC
2792  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CANCELTRANSACTION));
2793  FW_ASSERT (
2794  _status == Fw::FW_SERIALIZE_OK,
2795  static_cast<FwAssertArgType>(_status)
2796  );
2797 
2798  // Fake port number to make message dequeue work
2799  FwIndexType port = 0;
2800 
2801  _status = msg.serializeFrom(port);
2802  FW_ASSERT (
2803  _status == Fw::FW_SERIALIZE_OK,
2804  static_cast<FwAssertArgType>(_status)
2805  );
2806 
2807  _status = msg.serializeFrom(opCode);
2808  FW_ASSERT (
2809  _status == Fw::FW_SERIALIZE_OK,
2810  static_cast<FwAssertArgType>(_status)
2811  );
2812 
2813  _status = msg.serializeFrom(cmdSeq);
2814  FW_ASSERT (
2815  _status == Fw::FW_SERIALIZE_OK,
2816  static_cast<FwAssertArgType>(_status)
2817  );
2818 
2819  _status = msg.serializeFrom(args);
2820  FW_ASSERT (
2821  _status == Fw::FW_SERIALIZE_OK,
2822  static_cast<FwAssertArgType>(_status)
2823  );
2824 
2825  // Send message
2827  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2828 
2829  FW_ASSERT(
2830  qStatus == Os::Queue::OP_OK,
2831  static_cast<FwAssertArgType>(qStatus)
2832  );
2833  }
2834 
2837  FwOpcodeType opCode,
2838  U32 cmdSeq,
2839  Fw::CmdArgBuffer& args
2840  )
2841  {
2842  // Call pre-message hook
2843  this->AbandonTransaction_preMsgHook(opCode,cmdSeq);
2844 
2845  // Defer deserializing arguments to the message dispatcher
2846  // to avoid deserializing and reserializing just for IPC
2847  ComponentIpcSerializableBuffer msg;
2849 
2850  // Serialize for IPC
2851  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_ABANDONTRANSACTION));
2852  FW_ASSERT (
2853  _status == Fw::FW_SERIALIZE_OK,
2854  static_cast<FwAssertArgType>(_status)
2855  );
2856 
2857  // Fake port number to make message dequeue work
2858  FwIndexType port = 0;
2859 
2860  _status = msg.serializeFrom(port);
2861  FW_ASSERT (
2862  _status == Fw::FW_SERIALIZE_OK,
2863  static_cast<FwAssertArgType>(_status)
2864  );
2865 
2866  _status = msg.serializeFrom(opCode);
2867  FW_ASSERT (
2868  _status == Fw::FW_SERIALIZE_OK,
2869  static_cast<FwAssertArgType>(_status)
2870  );
2871 
2872  _status = msg.serializeFrom(cmdSeq);
2873  FW_ASSERT (
2874  _status == Fw::FW_SERIALIZE_OK,
2875  static_cast<FwAssertArgType>(_status)
2876  );
2877 
2878  _status = msg.serializeFrom(args);
2879  FW_ASSERT (
2880  _status == Fw::FW_SERIALIZE_OK,
2881  static_cast<FwAssertArgType>(_status)
2882  );
2883 
2884  // Send message
2886  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2887 
2888  FW_ASSERT(
2889  qStatus == Os::Queue::OP_OK,
2890  static_cast<FwAssertArgType>(qStatus)
2891  );
2892  }
2893 
2896  FwOpcodeType opCode,
2897  U32 cmdSeq,
2898  Fw::CmdArgBuffer& args
2899  )
2900  {
2901  // Call pre-message hook
2902  this->ResetCounters_preMsgHook(opCode,cmdSeq);
2903 
2904  // Defer deserializing arguments to the message dispatcher
2905  // to avoid deserializing and reserializing just for IPC
2906  ComponentIpcSerializableBuffer msg;
2908 
2909  // Serialize for IPC
2910  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_RESETCOUNTERS));
2911  FW_ASSERT (
2912  _status == Fw::FW_SERIALIZE_OK,
2913  static_cast<FwAssertArgType>(_status)
2914  );
2915 
2916  // Fake port number to make message dequeue work
2917  FwIndexType port = 0;
2918 
2919  _status = msg.serializeFrom(port);
2920  FW_ASSERT (
2921  _status == Fw::FW_SERIALIZE_OK,
2922  static_cast<FwAssertArgType>(_status)
2923  );
2924 
2925  _status = msg.serializeFrom(opCode);
2926  FW_ASSERT (
2927  _status == Fw::FW_SERIALIZE_OK,
2928  static_cast<FwAssertArgType>(_status)
2929  );
2930 
2931  _status = msg.serializeFrom(cmdSeq);
2932  FW_ASSERT (
2933  _status == Fw::FW_SERIALIZE_OK,
2934  static_cast<FwAssertArgType>(_status)
2935  );
2936 
2937  _status = msg.serializeFrom(args);
2938  FW_ASSERT (
2939  _status == Fw::FW_SERIALIZE_OK,
2940  static_cast<FwAssertArgType>(_status)
2941  );
2942 
2943  // Send message
2945  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2946 
2947  FW_ASSERT(
2948  qStatus == Os::Queue::OP_OK,
2949  static_cast<FwAssertArgType>(qStatus)
2950  );
2951  }
2952 
2953  // ----------------------------------------------------------------------
2954  // Pre-message hooks for async commands
2955  //
2956  // Each of these functions is invoked just before processing the
2957  // corresponding command. By default they do nothing. You can
2958  // override them to provide specific pre-command behavior.
2959  // ----------------------------------------------------------------------
2960 
2963  FwOpcodeType opCode,
2964  U32 cmdSeq
2965  )
2966  {
2967  // Defaults to no-op; can be overridden
2968  (void) opCode;
2969  (void) cmdSeq;
2970  }
2971 
2974  FwOpcodeType opCode,
2975  U32 cmdSeq
2976  )
2977  {
2978  // Defaults to no-op; can be overridden
2979  (void) opCode;
2980  (void) cmdSeq;
2981  }
2982 
2985  FwOpcodeType opCode,
2986  U32 cmdSeq
2987  )
2988  {
2989  // Defaults to no-op; can be overridden
2990  (void) opCode;
2991  (void) cmdSeq;
2992  }
2993 
2996  FwOpcodeType opCode,
2997  U32 cmdSeq
2998  )
2999  {
3000  // Defaults to no-op; can be overridden
3001  (void) opCode;
3002  (void) cmdSeq;
3003  }
3004 
3007  FwOpcodeType opCode,
3008  U32 cmdSeq
3009  )
3010  {
3011  // Defaults to no-op; can be overridden
3012  (void) opCode;
3013  (void) cmdSeq;
3014  }
3015 
3018  FwOpcodeType opCode,
3019  U32 cmdSeq
3020  )
3021  {
3022  // Defaults to no-op; can be overridden
3023  (void) opCode;
3024  (void) cmdSeq;
3025  }
3026 
3029  FwOpcodeType opCode,
3030  U32 cmdSeq
3031  )
3032  {
3033  // Defaults to no-op; can be overridden
3034  (void) opCode;
3035  (void) cmdSeq;
3036  }
3037 
3040  FwOpcodeType opCode,
3041  U32 cmdSeq
3042  )
3043  {
3044  // Defaults to no-op; can be overridden
3045  (void) opCode;
3046  (void) cmdSeq;
3047  }
3048 
3051  FwOpcodeType opCode,
3052  U32 cmdSeq
3053  )
3054  {
3055  // Defaults to no-op; can be overridden
3056  (void) opCode;
3057  (void) cmdSeq;
3058  }
3059 
3060  // ----------------------------------------------------------------------
3061  // Event logging functions
3062  // ----------------------------------------------------------------------
3063 
3066  {
3067  // Get the time
3068  Fw::Time _logTime;
3069  if (this->isConnected_timeCaller_OutputPort(0)) {
3070  this->timeCaller_out(0, _logTime);
3071  }
3072 
3073  const FwEventIdType _id = this->getIdBase() + EVENTID_BUFFERSEXHAUSTED;
3074 
3075  // Emit the event on the log port
3076  if (this->isConnected_logOut_OutputPort(0)) {
3077  Fw::LogBuffer _logBuff;
3078 
3079 #if FW_AMPCS_COMPATIBLE
3081  // Serialize the number of arguments
3082  _status = _logBuff.serializeFrom(static_cast<U8>(0));
3083  FW_ASSERT(
3084  _status == Fw::FW_SERIALIZE_OK,
3085  static_cast<FwAssertArgType>(_status)
3086  );
3087 #endif
3088 
3089  this->logOut_out(
3090  0,
3091  _id,
3092  _logTime,
3094  _logBuff
3095  );
3096  }
3097 
3098  // Emit the event on the text log port
3099 #if FW_ENABLE_TEXT_LOGGING
3100  if (this->isConnected_logTextOut_OutputPort(0)) {
3101 #if FW_OBJECT_NAMES == 1
3102  const char* _formatString =
3103  "(%s) %s: Unable to allocate a PDU buffer";
3104 #else
3105  const char* _formatString =
3106  "%s: Unable to allocate a PDU buffer";
3107 #endif
3108 
3109  Fw::TextLogString _logString;
3110  (void) _logString.format(
3111  _formatString,
3112 #if FW_OBJECT_NAMES == 1
3113  this->m_objName.toChar(),
3114 #endif
3115  "BuffersExhausted "
3116  );
3117 
3118  this->logTextOut_out(
3119  0,
3120  _id,
3121  _logTime,
3123  _logString
3124  );
3125  }
3126 #endif
3127  }
3128 
3131  U8 channelId,
3132  U8 maxChannelId
3133  ) const
3134  {
3135  // Get the time
3136  Fw::Time _logTime;
3137  if (this->isConnected_timeCaller_OutputPort(0)) {
3138  this->timeCaller_out(0, _logTime);
3139  }
3140 
3141  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDCHANNEL;
3142 
3143  // Emit the event on the log port
3144  if (this->isConnected_logOut_OutputPort(0)) {
3145  Fw::LogBuffer _logBuff;
3147 
3148 #if FW_AMPCS_COMPATIBLE
3149  // Serialize the number of arguments
3150  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3151  FW_ASSERT(
3152  _status == Fw::FW_SERIALIZE_OK,
3153  static_cast<FwAssertArgType>(_status)
3154  );
3155 #endif
3156 
3157 #if FW_AMPCS_COMPATIBLE
3158  // Serialize the argument size
3159  _status = _logBuff.serializeFrom(
3160  static_cast<U8>(sizeof(U8))
3161  );
3162  FW_ASSERT(
3163  _status == Fw::FW_SERIALIZE_OK,
3164  static_cast<FwAssertArgType>(_status)
3165  );
3166 #endif
3167  _status = _logBuff.serializeFrom(channelId);
3168  FW_ASSERT(
3169  _status == Fw::FW_SERIALIZE_OK,
3170  static_cast<FwAssertArgType>(_status)
3171  );
3172 
3173 #if FW_AMPCS_COMPATIBLE
3174  // Serialize the argument size
3175  _status = _logBuff.serializeFrom(
3176  static_cast<U8>(sizeof(U8))
3177  );
3178  FW_ASSERT(
3179  _status == Fw::FW_SERIALIZE_OK,
3180  static_cast<FwAssertArgType>(_status)
3181  );
3182 #endif
3183  _status = _logBuff.serializeFrom(maxChannelId);
3184  FW_ASSERT(
3185  _status == Fw::FW_SERIALIZE_OK,
3186  static_cast<FwAssertArgType>(_status)
3187  );
3188 
3189  this->logOut_out(
3190  0,
3191  _id,
3192  _logTime,
3194  _logBuff
3195  );
3196  }
3197 
3198  // Emit the event on the text log port
3199 #if FW_ENABLE_TEXT_LOGGING
3200  if (this->isConnected_logTextOut_OutputPort(0)) {
3201 #if FW_OBJECT_NAMES == 1
3202  const char* _formatString =
3203  "(%s) %s: Invalid channel ID %" PRIu8 ", maximum channel ID is %" PRIu8 "";
3204 #else
3205  const char* _formatString =
3206  "%s: Invalid channel ID %" PRIu8 ", maximum channel ID is %" PRIu8 "";
3207 #endif
3208 
3209  Fw::TextLogString _logString;
3210  (void) _logString.format(
3211  _formatString,
3212 #if FW_OBJECT_NAMES == 1
3213  this->m_objName.toChar(),
3214 #endif
3215  "InvalidChannel ",
3216  channelId,
3217  maxChannelId
3218  );
3219 
3220  this->logTextOut_out(
3221  0,
3222  _id,
3223  _logTime,
3225  _logString
3226  );
3227  }
3228 #endif
3229  }
3230 
3233  const Fw::StringBase& sourceFileName,
3234  U32 transactionSeq
3235  ) const
3236  {
3237  // Get the time
3238  Fw::Time _logTime;
3239  if (this->isConnected_timeCaller_OutputPort(0)) {
3240  this->timeCaller_out(0, _logTime);
3241  }
3242 
3243  const FwEventIdType _id = this->getIdBase() + EVENTID_TXFILEQUEUED;
3244 
3245  // Emit the event on the log port
3246  if (this->isConnected_logOut_OutputPort(0)) {
3247  Fw::LogBuffer _logBuff;
3249 
3250 #if FW_AMPCS_COMPATIBLE
3251  // Serialize the number of arguments
3252  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3253  FW_ASSERT(
3254  _status == Fw::FW_SERIALIZE_OK,
3255  static_cast<FwAssertArgType>(_status)
3256  );
3257 #endif
3258 
3259  _status = sourceFileName.serializeTo(
3260  _logBuff,
3261  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3262  );
3263  FW_ASSERT(
3264  _status == Fw::FW_SERIALIZE_OK,
3265  static_cast<FwAssertArgType>(_status)
3266  );
3267 
3268 #if FW_AMPCS_COMPATIBLE
3269  // Serialize the argument size
3270  _status = _logBuff.serializeFrom(
3271  static_cast<U8>(sizeof(U32))
3272  );
3273  FW_ASSERT(
3274  _status == Fw::FW_SERIALIZE_OK,
3275  static_cast<FwAssertArgType>(_status)
3276  );
3277 #endif
3278  _status = _logBuff.serializeFrom(transactionSeq);
3279  FW_ASSERT(
3280  _status == Fw::FW_SERIALIZE_OK,
3281  static_cast<FwAssertArgType>(_status)
3282  );
3283 
3284  this->logOut_out(
3285  0,
3286  _id,
3287  _logTime,
3289  _logBuff
3290  );
3291  }
3292 
3293  // Emit the event on the text log port
3294 #if FW_ENABLE_TEXT_LOGGING
3295  if (this->isConnected_logTextOut_OutputPort(0)) {
3296 #if FW_OBJECT_NAMES == 1
3297  const char* _formatString =
3298  "(%s) %s: TX file queued for %s (transaction %" PRIu32 ")";
3299 #else
3300  const char* _formatString =
3301  "%s: TX file queued for %s (transaction %" PRIu32 ")";
3302 #endif
3303 
3304  Fw::TextLogString _logString;
3305  (void) _logString.format(
3306  _formatString,
3307 #if FW_OBJECT_NAMES == 1
3308  this->m_objName.toChar(),
3309 #endif
3310  "TxFileQueued ",
3311  sourceFileName.toChar(),
3312  transactionSeq
3313  );
3314 
3315  this->logTextOut_out(
3316  0,
3317  _id,
3318  _logTime,
3320  _logString
3321  );
3322  }
3323 #endif
3324  }
3325 
3328  U32 offset,
3329  U32 length
3330  ) const
3331  {
3332  // Get the time
3333  Fw::Time _logTime;
3334  if (this->isConnected_timeCaller_OutputPort(0)) {
3335  this->timeCaller_out(0, _logTime);
3336  }
3337 
3339 
3340  // Emit the event on the log port
3341  if (this->isConnected_logOut_OutputPort(0)) {
3342  Fw::LogBuffer _logBuff;
3344 
3345 #if FW_AMPCS_COMPATIBLE
3346  // Serialize the number of arguments
3347  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3348  FW_ASSERT(
3349  _status == Fw::FW_SERIALIZE_OK,
3350  static_cast<FwAssertArgType>(_status)
3351  );
3352 #endif
3353 
3354 #if FW_AMPCS_COMPATIBLE
3355  // Serialize the argument size
3356  _status = _logBuff.serializeFrom(
3357  static_cast<U8>(sizeof(U32))
3358  );
3359  FW_ASSERT(
3360  _status == Fw::FW_SERIALIZE_OK,
3361  static_cast<FwAssertArgType>(_status)
3362  );
3363 #endif
3364  _status = _logBuff.serializeFrom(offset);
3365  FW_ASSERT(
3366  _status == Fw::FW_SERIALIZE_OK,
3367  static_cast<FwAssertArgType>(_status)
3368  );
3369 
3370 #if FW_AMPCS_COMPATIBLE
3371  // Serialize the argument size
3372  _status = _logBuff.serializeFrom(
3373  static_cast<U8>(sizeof(U32))
3374  );
3375  FW_ASSERT(
3376  _status == Fw::FW_SERIALIZE_OK,
3377  static_cast<FwAssertArgType>(_status)
3378  );
3379 #endif
3380  _status = _logBuff.serializeFrom(length);
3381  FW_ASSERT(
3382  _status == Fw::FW_SERIALIZE_OK,
3383  static_cast<FwAssertArgType>(_status)
3384  );
3385 
3386  this->logOut_out(
3387  0,
3388  _id,
3389  _logTime,
3391  _logBuff
3392  );
3393  }
3394 
3395  // Emit the event on the text log port
3396 #if FW_ENABLE_TEXT_LOGGING
3397  if (this->isConnected_logTextOut_OutputPort(0)) {
3398 #if FW_OBJECT_NAMES == 1
3399  const char* _formatString =
3400  "(%s) %s: Invalid send file port request with offset %" PRIu32 ", length %" PRIu32 "";
3401 #else
3402  const char* _formatString =
3403  "%s: Invalid send file port request with offset %" PRIu32 ", length %" PRIu32 "";
3404 #endif
3405 
3406  Fw::TextLogString _logString;
3407  (void) _logString.format(
3408  _formatString,
3409 #if FW_OBJECT_NAMES == 1
3410  this->m_objName.toChar(),
3411 #endif
3412  "UnsupportedSendFileArguments ",
3413  offset,
3414  length
3415  );
3416 
3417  this->logTextOut_out(
3418  0,
3419  _id,
3420  _logTime,
3422  _logString
3423  );
3424  }
3425 #endif
3426  }
3427 
3430  {
3431  // Get the time
3432  Fw::Time _logTime;
3433  if (this->isConnected_timeCaller_OutputPort(0)) {
3434  this->timeCaller_out(0, _logTime);
3435  }
3436 
3438 
3439  // Emit the event on the log port
3440  if (this->isConnected_logOut_OutputPort(0)) {
3441  Fw::LogBuffer _logBuff;
3443 
3444 #if FW_AMPCS_COMPATIBLE
3445  // Serialize the number of arguments
3446  _status = _logBuff.serializeFrom(static_cast<U8>(1));
3447  FW_ASSERT(
3448  _status == Fw::FW_SERIALIZE_OK,
3449  static_cast<FwAssertArgType>(_status)
3450  );
3451 #endif
3452 
3453  _status = sourceFileName.serializeTo(
3454  _logBuff,
3455  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3456  );
3457  FW_ASSERT(
3458  _status == Fw::FW_SERIALIZE_OK,
3459  static_cast<FwAssertArgType>(_status)
3460  );
3461 
3462  this->logOut_out(
3463  0,
3464  _id,
3465  _logTime,
3467  _logBuff
3468  );
3469  }
3470 
3471  // Emit the event on the text log port
3472 #if FW_ENABLE_TEXT_LOGGING
3473  if (this->isConnected_logTextOut_OutputPort(0)) {
3474 #if FW_OBJECT_NAMES == 1
3475  const char* _formatString =
3476  "(%s) %s: Failed to initiate file send transfer for %s";
3477 #else
3478  const char* _formatString =
3479  "%s: Failed to initiate file send transfer for %s";
3480 #endif
3481 
3482  Fw::TextLogString _logString;
3483  (void) _logString.format(
3484  _formatString,
3485 #if FW_OBJECT_NAMES == 1
3486  this->m_objName.toChar(),
3487 #endif
3488  "SendFileInitiateFail ",
3489  sourceFileName.toChar()
3490  );
3491 
3492  this->logTextOut_out(
3493  0,
3494  _id,
3495  _logTime,
3497  _logString
3498  );
3499  }
3500 #endif
3501  }
3502 
3505  {
3506  // Get the time
3507  Fw::Time _logTime;
3508  if (this->isConnected_timeCaller_OutputPort(0)) {
3509  this->timeCaller_out(0, _logTime);
3510  }
3511 
3512  const FwEventIdType _id = this->getIdBase() + EVENTID_PLAYBACKINITIATED;
3513 
3514  // Emit the event on the log port
3515  if (this->isConnected_logOut_OutputPort(0)) {
3516  Fw::LogBuffer _logBuff;
3518 
3519 #if FW_AMPCS_COMPATIBLE
3520  // Serialize the number of arguments
3521  _status = _logBuff.serializeFrom(static_cast<U8>(1));
3522  FW_ASSERT(
3523  _status == Fw::FW_SERIALIZE_OK,
3524  static_cast<FwAssertArgType>(_status)
3525  );
3526 #endif
3527 
3528  _status = sourceDirectory.serializeTo(
3529  _logBuff,
3530  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3531  );
3532  FW_ASSERT(
3533  _status == Fw::FW_SERIALIZE_OK,
3534  static_cast<FwAssertArgType>(_status)
3535  );
3536 
3537  this->logOut_out(
3538  0,
3539  _id,
3540  _logTime,
3542  _logBuff
3543  );
3544  }
3545 
3546  // Emit the event on the text log port
3547 #if FW_ENABLE_TEXT_LOGGING
3548  if (this->isConnected_logTextOut_OutputPort(0)) {
3549 #if FW_OBJECT_NAMES == 1
3550  const char* _formatString =
3551  "(%s) %s: Successfully initiated directory playback for %s";
3552 #else
3553  const char* _formatString =
3554  "%s: Successfully initiated directory playback for %s";
3555 #endif
3556 
3557  Fw::TextLogString _logString;
3558  (void) _logString.format(
3559  _formatString,
3560 #if FW_OBJECT_NAMES == 1
3561  this->m_objName.toChar(),
3562 #endif
3563  "PlaybackInitiated ",
3564  sourceDirectory.toChar()
3565  );
3566 
3567  this->logTextOut_out(
3568  0,
3569  _id,
3570  _logTime,
3572  _logString
3573  );
3574  }
3575 #endif
3576  }
3577 
3580  const Fw::StringBase& sourceDirectory,
3581  U8 pollId
3582  ) const
3583  {
3584  // Get the time
3585  Fw::Time _logTime;
3586  if (this->isConnected_timeCaller_OutputPort(0)) {
3587  this->timeCaller_out(0, _logTime);
3588  }
3589 
3590  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRINITIATED;
3591 
3592  // Emit the event on the log port
3593  if (this->isConnected_logOut_OutputPort(0)) {
3594  Fw::LogBuffer _logBuff;
3596 
3597 #if FW_AMPCS_COMPATIBLE
3598  // Serialize the number of arguments
3599  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3600  FW_ASSERT(
3601  _status == Fw::FW_SERIALIZE_OK,
3602  static_cast<FwAssertArgType>(_status)
3603  );
3604 #endif
3605 
3606  _status = sourceDirectory.serializeTo(
3607  _logBuff,
3608  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3609  );
3610  FW_ASSERT(
3611  _status == Fw::FW_SERIALIZE_OK,
3612  static_cast<FwAssertArgType>(_status)
3613  );
3614 
3615 #if FW_AMPCS_COMPATIBLE
3616  // Serialize the argument size
3617  _status = _logBuff.serializeFrom(
3618  static_cast<U8>(sizeof(U8))
3619  );
3620  FW_ASSERT(
3621  _status == Fw::FW_SERIALIZE_OK,
3622  static_cast<FwAssertArgType>(_status)
3623  );
3624 #endif
3625  _status = _logBuff.serializeFrom(pollId);
3626  FW_ASSERT(
3627  _status == Fw::FW_SERIALIZE_OK,
3628  static_cast<FwAssertArgType>(_status)
3629  );
3630 
3631  this->logOut_out(
3632  0,
3633  _id,
3634  _logTime,
3636  _logBuff
3637  );
3638  }
3639 
3640  // Emit the event on the text log port
3641 #if FW_ENABLE_TEXT_LOGGING
3642  if (this->isConnected_logTextOut_OutputPort(0)) {
3643 #if FW_OBJECT_NAMES == 1
3644  const char* _formatString =
3645  "(%s) %s: Successfully initiated directory poll for %s (index %" PRIu8 ")";
3646 #else
3647  const char* _formatString =
3648  "%s: Successfully initiated directory poll for %s (index %" PRIu8 ")";
3649 #endif
3650 
3651  Fw::TextLogString _logString;
3652  (void) _logString.format(
3653  _formatString,
3654 #if FW_OBJECT_NAMES == 1
3655  this->m_objName.toChar(),
3656 #endif
3657  "PollDirInitiated ",
3658  sourceDirectory.toChar(),
3659  pollId
3660  );
3661 
3662  this->logTextOut_out(
3663  0,
3664  _id,
3665  _logTime,
3667  _logString
3668  );
3669  }
3670 #endif
3671  }
3672 
3675  U8 channelId,
3676  U8 pollId
3677  ) const
3678  {
3679  // Get the time
3680  Fw::Time _logTime;
3681  if (this->isConnected_timeCaller_OutputPort(0)) {
3682  this->timeCaller_out(0, _logTime);
3683  }
3684 
3685  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRSTOPPED;
3686 
3687  // Emit the event on the log port
3688  if (this->isConnected_logOut_OutputPort(0)) {
3689  Fw::LogBuffer _logBuff;
3691 
3692 #if FW_AMPCS_COMPATIBLE
3693  // Serialize the number of arguments
3694  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3695  FW_ASSERT(
3696  _status == Fw::FW_SERIALIZE_OK,
3697  static_cast<FwAssertArgType>(_status)
3698  );
3699 #endif
3700 
3701 #if FW_AMPCS_COMPATIBLE
3702  // Serialize the argument size
3703  _status = _logBuff.serializeFrom(
3704  static_cast<U8>(sizeof(U8))
3705  );
3706  FW_ASSERT(
3707  _status == Fw::FW_SERIALIZE_OK,
3708  static_cast<FwAssertArgType>(_status)
3709  );
3710 #endif
3711  _status = _logBuff.serializeFrom(channelId);
3712  FW_ASSERT(
3713  _status == Fw::FW_SERIALIZE_OK,
3714  static_cast<FwAssertArgType>(_status)
3715  );
3716 
3717 #if FW_AMPCS_COMPATIBLE
3718  // Serialize the argument size
3719  _status = _logBuff.serializeFrom(
3720  static_cast<U8>(sizeof(U8))
3721  );
3722  FW_ASSERT(
3723  _status == Fw::FW_SERIALIZE_OK,
3724  static_cast<FwAssertArgType>(_status)
3725  );
3726 #endif
3727  _status = _logBuff.serializeFrom(pollId);
3728  FW_ASSERT(
3729  _status == Fw::FW_SERIALIZE_OK,
3730  static_cast<FwAssertArgType>(_status)
3731  );
3732 
3733  this->logOut_out(
3734  0,
3735  _id,
3736  _logTime,
3738  _logBuff
3739  );
3740  }
3741 
3742  // Emit the event on the text log port
3743 #if FW_ENABLE_TEXT_LOGGING
3744  if (this->isConnected_logTextOut_OutputPort(0)) {
3745 #if FW_OBJECT_NAMES == 1
3746  const char* _formatString =
3747  "(%s) %s: Successfully stopped directory poll for channel %" PRIu8 ", index %" PRIu8 "";
3748 #else
3749  const char* _formatString =
3750  "%s: Successfully stopped directory poll for channel %" PRIu8 ", index %" PRIu8 "";
3751 #endif
3752 
3753  Fw::TextLogString _logString;
3754  (void) _logString.format(
3755  _formatString,
3756 #if FW_OBJECT_NAMES == 1
3757  this->m_objName.toChar(),
3758 #endif
3759  "PollDirStopped ",
3760  channelId,
3761  pollId
3762  );
3763 
3764  this->logTextOut_out(
3765  0,
3766  _id,
3767  _logTime,
3769  _logString
3770  );
3771  }
3772 #endif
3773  }
3774 
3777  U8 channelId,
3778  U8 pollId
3779  ) const
3780  {
3781  // Get the time
3782  Fw::Time _logTime;
3783  if (this->isConnected_timeCaller_OutputPort(0)) {
3784  this->timeCaller_out(0, _logTime);
3785  }
3786 
3787  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRBUSY;
3788 
3789  // Emit the event on the log port
3790  if (this->isConnected_logOut_OutputPort(0)) {
3791  Fw::LogBuffer _logBuff;
3793 
3794 #if FW_AMPCS_COMPATIBLE
3795  // Serialize the number of arguments
3796  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3797  FW_ASSERT(
3798  _status == Fw::FW_SERIALIZE_OK,
3799  static_cast<FwAssertArgType>(_status)
3800  );
3801 #endif
3802 
3803 #if FW_AMPCS_COMPATIBLE
3804  // Serialize the argument size
3805  _status = _logBuff.serializeFrom(
3806  static_cast<U8>(sizeof(U8))
3807  );
3808  FW_ASSERT(
3809  _status == Fw::FW_SERIALIZE_OK,
3810  static_cast<FwAssertArgType>(_status)
3811  );
3812 #endif
3813  _status = _logBuff.serializeFrom(channelId);
3814  FW_ASSERT(
3815  _status == Fw::FW_SERIALIZE_OK,
3816  static_cast<FwAssertArgType>(_status)
3817  );
3818 
3819 #if FW_AMPCS_COMPATIBLE
3820  // Serialize the argument size
3821  _status = _logBuff.serializeFrom(
3822  static_cast<U8>(sizeof(U8))
3823  );
3824  FW_ASSERT(
3825  _status == Fw::FW_SERIALIZE_OK,
3826  static_cast<FwAssertArgType>(_status)
3827  );
3828 #endif
3829  _status = _logBuff.serializeFrom(pollId);
3830  FW_ASSERT(
3831  _status == Fw::FW_SERIALIZE_OK,
3832  static_cast<FwAssertArgType>(_status)
3833  );
3834 
3835  this->logOut_out(
3836  0,
3837  _id,
3838  _logTime,
3840  _logBuff
3841  );
3842  }
3843 
3844  // Emit the event on the text log port
3845 #if FW_ENABLE_TEXT_LOGGING
3846  if (this->isConnected_logTextOut_OutputPort(0)) {
3847 #if FW_OBJECT_NAMES == 1
3848  const char* _formatString =
3849  "(%s) %s: Cannot start directory poll - channel %" PRIu8 " poll %" PRIu8 " already in use";
3850 #else
3851  const char* _formatString =
3852  "%s: Cannot start directory poll - channel %" PRIu8 " poll %" PRIu8 " already in use";
3853 #endif
3854 
3855  Fw::TextLogString _logString;
3856  (void) _logString.format(
3857  _formatString,
3858 #if FW_OBJECT_NAMES == 1
3859  this->m_objName.toChar(),
3860 #endif
3861  "PollDirBusy ",
3862  channelId,
3863  pollId
3864  );
3865 
3866  this->logTextOut_out(
3867  0,
3868  _id,
3869  _logTime,
3871  _logString
3872  );
3873  }
3874 #endif
3875  }
3876 
3879  U8 channelId,
3880  U8 pollId
3881  ) const
3882  {
3883  // Get the time
3884  Fw::Time _logTime;
3885  if (this->isConnected_timeCaller_OutputPort(0)) {
3886  this->timeCaller_out(0, _logTime);
3887  }
3888 
3889  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRNOTACTIVE;
3890 
3891  // Emit the event on the log port
3892  if (this->isConnected_logOut_OutputPort(0)) {
3893  Fw::LogBuffer _logBuff;
3895 
3896 #if FW_AMPCS_COMPATIBLE
3897  // Serialize the number of arguments
3898  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3899  FW_ASSERT(
3900  _status == Fw::FW_SERIALIZE_OK,
3901  static_cast<FwAssertArgType>(_status)
3902  );
3903 #endif
3904 
3905 #if FW_AMPCS_COMPATIBLE
3906  // Serialize the argument size
3907  _status = _logBuff.serializeFrom(
3908  static_cast<U8>(sizeof(U8))
3909  );
3910  FW_ASSERT(
3911  _status == Fw::FW_SERIALIZE_OK,
3912  static_cast<FwAssertArgType>(_status)
3913  );
3914 #endif
3915  _status = _logBuff.serializeFrom(channelId);
3916  FW_ASSERT(
3917  _status == Fw::FW_SERIALIZE_OK,
3918  static_cast<FwAssertArgType>(_status)
3919  );
3920 
3921 #if FW_AMPCS_COMPATIBLE
3922  // Serialize the argument size
3923  _status = _logBuff.serializeFrom(
3924  static_cast<U8>(sizeof(U8))
3925  );
3926  FW_ASSERT(
3927  _status == Fw::FW_SERIALIZE_OK,
3928  static_cast<FwAssertArgType>(_status)
3929  );
3930 #endif
3931  _status = _logBuff.serializeFrom(pollId);
3932  FW_ASSERT(
3933  _status == Fw::FW_SERIALIZE_OK,
3934  static_cast<FwAssertArgType>(_status)
3935  );
3936 
3937  this->logOut_out(
3938  0,
3939  _id,
3940  _logTime,
3942  _logBuff
3943  );
3944  }
3945 
3946  // Emit the event on the text log port
3947 #if FW_ENABLE_TEXT_LOGGING
3948  if (this->isConnected_logTextOut_OutputPort(0)) {
3949 #if FW_OBJECT_NAMES == 1
3950  const char* _formatString =
3951  "(%s) %s: Cannot stop directory poll - channel %" PRIu8 " poll %" PRIu8 " is not active";
3952 #else
3953  const char* _formatString =
3954  "%s: Cannot stop directory poll - channel %" PRIu8 " poll %" PRIu8 " is not active";
3955 #endif
3956 
3957  Fw::TextLogString _logString;
3958  (void) _logString.format(
3959  _formatString,
3960 #if FW_OBJECT_NAMES == 1
3961  this->m_objName.toChar(),
3962 #endif
3963  "PollDirNotActive ",
3964  channelId,
3965  pollId
3966  );
3967 
3968  this->logTextOut_out(
3969  0,
3970  _id,
3971  _logTime,
3973  _logString
3974  );
3975  }
3976 #endif
3977  }
3978 
3981  U8 channelId,
3982  const Svc::Ccsds::Cfdp::Flow& flowState
3983  ) const
3984  {
3985  // Get the time
3986  Fw::Time _logTime;
3987  if (this->isConnected_timeCaller_OutputPort(0)) {
3988  this->timeCaller_out(0, _logTime);
3989  }
3990 
3991  const FwEventIdType _id = this->getIdBase() + EVENTID_SETFLOWSTATE;
3992 
3993  // Emit the event on the log port
3994  if (this->isConnected_logOut_OutputPort(0)) {
3995  Fw::LogBuffer _logBuff;
3997 
3998 #if FW_AMPCS_COMPATIBLE
3999  // Serialize the number of arguments
4000  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4001  FW_ASSERT(
4002  _status == Fw::FW_SERIALIZE_OK,
4003  static_cast<FwAssertArgType>(_status)
4004  );
4005 #endif
4006 
4007 #if FW_AMPCS_COMPATIBLE
4008  // Serialize the argument size
4009  _status = _logBuff.serializeFrom(
4010  static_cast<U8>(sizeof(U8))
4011  );
4012  FW_ASSERT(
4013  _status == Fw::FW_SERIALIZE_OK,
4014  static_cast<FwAssertArgType>(_status)
4015  );
4016 #endif
4017  _status = _logBuff.serializeFrom(channelId);
4018  FW_ASSERT(
4019  _status == Fw::FW_SERIALIZE_OK,
4020  static_cast<FwAssertArgType>(_status)
4021  );
4022 
4023 #if FW_AMPCS_COMPATIBLE
4024  // Serialize the argument size
4025  _status = _logBuff.serializeFrom(
4027  );
4028  FW_ASSERT(
4029  _status == Fw::FW_SERIALIZE_OK,
4030  static_cast<FwAssertArgType>(_status)
4031  );
4032 #endif
4033  _status = _logBuff.serializeFrom(flowState);
4034  FW_ASSERT(
4035  _status == Fw::FW_SERIALIZE_OK,
4036  static_cast<FwAssertArgType>(_status)
4037  );
4038 
4039  this->logOut_out(
4040  0,
4041  _id,
4042  _logTime,
4044  _logBuff
4045  );
4046  }
4047 
4048  // Emit the event on the text log port
4049 #if FW_ENABLE_TEXT_LOGGING
4050  if (this->isConnected_logTextOut_OutputPort(0)) {
4051 #if FW_OBJECT_NAMES == 1
4052  const char* _formatString =
4053  "(%s) %s: Set channel %" PRIu8 " to %s";
4054 #else
4055  const char* _formatString =
4056  "%s: Set channel %" PRIu8 " to %s";
4057 #endif
4058 
4059  Fw::String flowStateStr;
4060  flowState.toString(flowStateStr);
4061 
4062  Fw::TextLogString _logString;
4063  (void) _logString.format(
4064  _formatString,
4065 #if FW_OBJECT_NAMES == 1
4066  this->m_objName.toChar(),
4067 #endif
4068  "SetFlowState ",
4069  channelId,
4070  flowStateStr.toChar()
4071  );
4072 
4073  this->logTextOut_out(
4074  0,
4075  _id,
4076  _logTime,
4078  _logString
4079  );
4080  }
4081 #endif
4082  }
4083 
4086  U8 pollId,
4087  U8 maxPollId
4088  ) const
4089  {
4090  // Get the time
4091  Fw::Time _logTime;
4092  if (this->isConnected_timeCaller_OutputPort(0)) {
4093  this->timeCaller_out(0, _logTime);
4094  }
4095 
4096  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDCHANNELPOLL;
4097 
4098  // Emit the event on the log port
4099  if (this->isConnected_logOut_OutputPort(0)) {
4100  Fw::LogBuffer _logBuff;
4102 
4103 #if FW_AMPCS_COMPATIBLE
4104  // Serialize the number of arguments
4105  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4106  FW_ASSERT(
4107  _status == Fw::FW_SERIALIZE_OK,
4108  static_cast<FwAssertArgType>(_status)
4109  );
4110 #endif
4111 
4112 #if FW_AMPCS_COMPATIBLE
4113  // Serialize the argument size
4114  _status = _logBuff.serializeFrom(
4115  static_cast<U8>(sizeof(U8))
4116  );
4117  FW_ASSERT(
4118  _status == Fw::FW_SERIALIZE_OK,
4119  static_cast<FwAssertArgType>(_status)
4120  );
4121 #endif
4122  _status = _logBuff.serializeFrom(pollId);
4123  FW_ASSERT(
4124  _status == Fw::FW_SERIALIZE_OK,
4125  static_cast<FwAssertArgType>(_status)
4126  );
4127 
4128 #if FW_AMPCS_COMPATIBLE
4129  // Serialize the argument size
4130  _status = _logBuff.serializeFrom(
4131  static_cast<U8>(sizeof(U8))
4132  );
4133  FW_ASSERT(
4134  _status == Fw::FW_SERIALIZE_OK,
4135  static_cast<FwAssertArgType>(_status)
4136  );
4137 #endif
4138  _status = _logBuff.serializeFrom(maxPollId);
4139  FW_ASSERT(
4140  _status == Fw::FW_SERIALIZE_OK,
4141  static_cast<FwAssertArgType>(_status)
4142  );
4143 
4144  this->logOut_out(
4145  0,
4146  _id,
4147  _logTime,
4149  _logBuff
4150  );
4151  }
4152 
4153  // Emit the event on the text log port
4154 #if FW_ENABLE_TEXT_LOGGING
4155  if (this->isConnected_logTextOut_OutputPort(0)) {
4156 #if FW_OBJECT_NAMES == 1
4157  const char* _formatString =
4158  "(%s) %s: Invalid poll ID %" PRIu8 ", maximum poll ID is %" PRIu8 "";
4159 #else
4160  const char* _formatString =
4161  "%s: Invalid poll ID %" PRIu8 ", maximum poll ID is %" PRIu8 "";
4162 #endif
4163 
4164  Fw::TextLogString _logString;
4165  (void) _logString.format(
4166  _formatString,
4167 #if FW_OBJECT_NAMES == 1
4168  this->m_objName.toChar(),
4169 #endif
4170  "InvalidChannelPoll ",
4171  pollId,
4172  maxPollId
4173  );
4174 
4175  this->logTextOut_out(
4176  0,
4177  _id,
4178  _logTime,
4180  _logString
4181  );
4182  }
4183 #endif
4184  }
4185 
4188  {
4189  // Get the time
4190  Fw::Time _logTime;
4191  if (this->isConnected_timeCaller_OutputPort(0)) {
4192  this->timeCaller_out(0, _logTime);
4193  }
4194 
4195  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDPOLLINTERVAL;
4196 
4197  // Emit the event on the log port
4198  if (this->isConnected_logOut_OutputPort(0)) {
4199  Fw::LogBuffer _logBuff;
4201 
4202 #if FW_AMPCS_COMPATIBLE
4203  // Serialize the number of arguments
4204  _status = _logBuff.serializeFrom(static_cast<U8>(1));
4205  FW_ASSERT(
4206  _status == Fw::FW_SERIALIZE_OK,
4207  static_cast<FwAssertArgType>(_status)
4208  );
4209 #endif
4210 
4211 #if FW_AMPCS_COMPATIBLE
4212  // Serialize the argument size
4213  _status = _logBuff.serializeFrom(
4214  static_cast<U8>(sizeof(U32))
4215  );
4216  FW_ASSERT(
4217  _status == Fw::FW_SERIALIZE_OK,
4218  static_cast<FwAssertArgType>(_status)
4219  );
4220 #endif
4221  _status = _logBuff.serializeFrom(interval);
4222  FW_ASSERT(
4223  _status == Fw::FW_SERIALIZE_OK,
4224  static_cast<FwAssertArgType>(_status)
4225  );
4226 
4227  this->logOut_out(
4228  0,
4229  _id,
4230  _logTime,
4232  _logBuff
4233  );
4234  }
4235 
4236  // Emit the event on the text log port
4237 #if FW_ENABLE_TEXT_LOGGING
4238  if (this->isConnected_logTextOut_OutputPort(0)) {
4239 #if FW_OBJECT_NAMES == 1
4240  const char* _formatString =
4241  "(%s) %s: Invalid poll interval %" PRIu32 " seconds, must be non-zero";
4242 #else
4243  const char* _formatString =
4244  "%s: Invalid poll interval %" PRIu32 " seconds, must be non-zero";
4245 #endif
4246 
4247  Fw::TextLogString _logString;
4248  (void) _logString.format(
4249  _formatString,
4250 #if FW_OBJECT_NAMES == 1
4251  this->m_objName.toChar(),
4252 #endif
4253  "InvalidPollInterval ",
4254  interval
4255  );
4256 
4257  this->logTextOut_out(
4258  0,
4259  _id,
4260  _logTime,
4262  _logString
4263  );
4264  }
4265 #endif
4266  }
4267 
4270  const Fw::StringBase& srcFile,
4271  const Fw::StringBase& moveDir,
4272  I32 status
4273  ) const
4274  {
4275  // Get the time
4276  Fw::Time _logTime;
4277  if (this->isConnected_timeCaller_OutputPort(0)) {
4278  this->timeCaller_out(0, _logTime);
4279  }
4280 
4281  const FwEventIdType _id = this->getIdBase() + EVENTID_FAILKEEPFILEMOVE;
4282 
4283  // Emit the event on the log port
4284  if (this->isConnected_logOut_OutputPort(0)) {
4285  Fw::LogBuffer _logBuff;
4287 
4288 #if FW_AMPCS_COMPATIBLE
4289  // Serialize the number of arguments
4290  _status = _logBuff.serializeFrom(static_cast<U8>(3));
4291  FW_ASSERT(
4292  _status == Fw::FW_SERIALIZE_OK,
4293  static_cast<FwAssertArgType>(_status)
4294  );
4295 #endif
4296 
4297  _status = srcFile.serializeTo(
4298  _logBuff,
4299  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4300  );
4301  FW_ASSERT(
4302  _status == Fw::FW_SERIALIZE_OK,
4303  static_cast<FwAssertArgType>(_status)
4304  );
4305 
4306  _status = moveDir.serializeTo(
4307  _logBuff,
4308  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4309  );
4310  FW_ASSERT(
4311  _status == Fw::FW_SERIALIZE_OK,
4312  static_cast<FwAssertArgType>(_status)
4313  );
4314 
4315 #if FW_AMPCS_COMPATIBLE
4316  // Serialize the argument size
4317  _status = _logBuff.serializeFrom(
4318  static_cast<U8>(sizeof(I32))
4319  );
4320  FW_ASSERT(
4321  _status == Fw::FW_SERIALIZE_OK,
4322  static_cast<FwAssertArgType>(_status)
4323  );
4324 #endif
4325  _status = _logBuff.serializeFrom(status);
4326  FW_ASSERT(
4327  _status == Fw::FW_SERIALIZE_OK,
4328  static_cast<FwAssertArgType>(_status)
4329  );
4330 
4331  this->logOut_out(
4332  0,
4333  _id,
4334  _logTime,
4336  _logBuff
4337  );
4338  }
4339 
4340  // Emit the event on the text log port
4341 #if FW_ENABLE_TEXT_LOGGING
4342  if (this->isConnected_logTextOut_OutputPort(0)) {
4343 #if FW_OBJECT_NAMES == 1
4344  const char* _formatString =
4345  "(%s) %s: Failed to move %s to %s error %" PRIi32 "";
4346 #else
4347  const char* _formatString =
4348  "%s: Failed to move %s to %s error %" PRIi32 "";
4349 #endif
4350 
4351  Fw::TextLogString _logString;
4352  (void) _logString.format(
4353  _formatString,
4354 #if FW_OBJECT_NAMES == 1
4355  this->m_objName.toChar(),
4356 #endif
4357  "FailKeepFileMove ",
4358  srcFile.toChar(),
4359  moveDir.toChar(),
4360  status
4361  );
4362 
4363  this->logTextOut_out(
4364  0,
4365  _id,
4366  _logTime,
4368  _logString
4369  );
4370  }
4371 #endif
4372  }
4373 
4376  const Fw::StringBase& srcFile,
4377  const Fw::StringBase& failDir,
4378  I32 status
4379  ) const
4380  {
4381  // Get the time
4382  Fw::Time _logTime;
4383  if (this->isConnected_timeCaller_OutputPort(0)) {
4384  this->timeCaller_out(0, _logTime);
4385  }
4386 
4387  const FwEventIdType _id = this->getIdBase() + EVENTID_FAILPOLLFILEMOVE;
4388 
4389  // Emit the event on the log port
4390  if (this->isConnected_logOut_OutputPort(0)) {
4391  Fw::LogBuffer _logBuff;
4393 
4394 #if FW_AMPCS_COMPATIBLE
4395  // Serialize the number of arguments
4396  _status = _logBuff.serializeFrom(static_cast<U8>(3));
4397  FW_ASSERT(
4398  _status == Fw::FW_SERIALIZE_OK,
4399  static_cast<FwAssertArgType>(_status)
4400  );
4401 #endif
4402 
4403  _status = srcFile.serializeTo(
4404  _logBuff,
4405  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4406  );
4407  FW_ASSERT(
4408  _status == Fw::FW_SERIALIZE_OK,
4409  static_cast<FwAssertArgType>(_status)
4410  );
4411 
4412  _status = failDir.serializeTo(
4413  _logBuff,
4414  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4415  );
4416  FW_ASSERT(
4417  _status == Fw::FW_SERIALIZE_OK,
4418  static_cast<FwAssertArgType>(_status)
4419  );
4420 
4421 #if FW_AMPCS_COMPATIBLE
4422  // Serialize the argument size
4423  _status = _logBuff.serializeFrom(
4424  static_cast<U8>(sizeof(I32))
4425  );
4426  FW_ASSERT(
4427  _status == Fw::FW_SERIALIZE_OK,
4428  static_cast<FwAssertArgType>(_status)
4429  );
4430 #endif
4431  _status = _logBuff.serializeFrom(status);
4432  FW_ASSERT(
4433  _status == Fw::FW_SERIALIZE_OK,
4434  static_cast<FwAssertArgType>(_status)
4435  );
4436 
4437  this->logOut_out(
4438  0,
4439  _id,
4440  _logTime,
4442  _logBuff
4443  );
4444  }
4445 
4446  // Emit the event on the text log port
4447 #if FW_ENABLE_TEXT_LOGGING
4448  if (this->isConnected_logTextOut_OutputPort(0)) {
4449 #if FW_OBJECT_NAMES == 1
4450  const char* _formatString =
4451  "(%s) %s: Failed to move %s to %s error %" PRIi32 "";
4452 #else
4453  const char* _formatString =
4454  "%s: Failed to move %s to %s error %" PRIi32 "";
4455 #endif
4456 
4457  Fw::TextLogString _logString;
4458  (void) _logString.format(
4459  _formatString,
4460 #if FW_OBJECT_NAMES == 1
4461  this->m_objName.toChar(),
4462 #endif
4463  "FailPollFileMove ",
4464  srcFile.toChar(),
4465  failDir.toChar(),
4466  status
4467  );
4468 
4469  this->logTextOut_out(
4470  0,
4471  _id,
4472  _logTime,
4474  _logString
4475  );
4476  }
4477 #endif
4478  }
4479 
4482  U8 channelId,
4483  I32 status
4484  ) const
4485  {
4486  // Get the time
4487  Fw::Time _logTime;
4488  if (this->isConnected_timeCaller_OutputPort(0)) {
4489  this->timeCaller_out(0, _logTime);
4490  }
4491 
4493 
4494  // Emit the event on the log port
4495  if (this->isConnected_logOut_OutputPort(0)) {
4496  Fw::LogBuffer _logBuff;
4498 
4499 #if FW_AMPCS_COMPATIBLE
4500  // Serialize the number of arguments
4501  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4502  FW_ASSERT(
4503  _status == Fw::FW_SERIALIZE_OK,
4504  static_cast<FwAssertArgType>(_status)
4505  );
4506 #endif
4507 
4508 #if FW_AMPCS_COMPATIBLE
4509  // Serialize the argument size
4510  _status = _logBuff.serializeFrom(
4511  static_cast<U8>(sizeof(U8))
4512  );
4513  FW_ASSERT(
4514  _status == Fw::FW_SERIALIZE_OK,
4515  static_cast<FwAssertArgType>(_status)
4516  );
4517 #endif
4518  _status = _logBuff.serializeFrom(channelId);
4519  FW_ASSERT(
4520  _status == Fw::FW_SERIALIZE_OK,
4521  static_cast<FwAssertArgType>(_status)
4522  );
4523 
4524 #if FW_AMPCS_COMPATIBLE
4525  // Serialize the argument size
4526  _status = _logBuff.serializeFrom(
4527  static_cast<U8>(sizeof(I32))
4528  );
4529  FW_ASSERT(
4530  _status == Fw::FW_SERIALIZE_OK,
4531  static_cast<FwAssertArgType>(_status)
4532  );
4533 #endif
4534  _status = _logBuff.serializeFrom(status);
4535  FW_ASSERT(
4536  _status == Fw::FW_SERIALIZE_OK,
4537  static_cast<FwAssertArgType>(_status)
4538  );
4539 
4540  this->logOut_out(
4541  0,
4542  _id,
4543  _logTime,
4545  _logBuff
4546  );
4547  }
4548 
4549  // Emit the event on the text log port
4550 #if FW_ENABLE_TEXT_LOGGING
4551  if (this->isConnected_logTextOut_OutputPort(0)) {
4552 #if FW_OBJECT_NAMES == 1
4553  const char* _formatString =
4554  "(%s) %s: Failed to deserialize PDU header on channel %" PRIu8 ", status %" PRIi32 "";
4555 #else
4556  const char* _formatString =
4557  "%s: Failed to deserialize PDU header on channel %" PRIu8 ", status %" PRIi32 "";
4558 #endif
4559 
4560  Fw::TextLogString _logString;
4561  (void) _logString.format(
4562  _formatString,
4563 #if FW_OBJECT_NAMES == 1
4564  this->m_objName.toChar(),
4565 #endif
4566  "FailPduHeaderDeserialization ",
4567  channelId,
4568  status
4569  );
4570 
4571  this->logTextOut_out(
4572  0,
4573  _id,
4574  _logTime,
4576  _logString
4577  );
4578  }
4579 #endif
4580  }
4581 
4584  U8 channelId,
4585  const Svc::Ccsds::Cfdp::PduTypeEnum& pduType,
4586  I32 status
4587  ) const
4588  {
4589  // Get the time
4590  Fw::Time _logTime;
4591  if (this->isConnected_timeCaller_OutputPort(0)) {
4592  this->timeCaller_out(0, _logTime);
4593  }
4594 
4596 
4597  // Emit the event on the log port
4598  if (this->isConnected_logOut_OutputPort(0)) {
4599  Fw::LogBuffer _logBuff;
4601 
4602 #if FW_AMPCS_COMPATIBLE
4603  // Serialize the number of arguments
4604  _status = _logBuff.serializeFrom(static_cast<U8>(3));
4605  FW_ASSERT(
4606  _status == Fw::FW_SERIALIZE_OK,
4607  static_cast<FwAssertArgType>(_status)
4608  );
4609 #endif
4610 
4611 #if FW_AMPCS_COMPATIBLE
4612  // Serialize the argument size
4613  _status = _logBuff.serializeFrom(
4614  static_cast<U8>(sizeof(U8))
4615  );
4616  FW_ASSERT(
4617  _status == Fw::FW_SERIALIZE_OK,
4618  static_cast<FwAssertArgType>(_status)
4619  );
4620 #endif
4621  _status = _logBuff.serializeFrom(channelId);
4622  FW_ASSERT(
4623  _status == Fw::FW_SERIALIZE_OK,
4624  static_cast<FwAssertArgType>(_status)
4625  );
4626 
4627 #if FW_AMPCS_COMPATIBLE
4628  // Serialize the argument size
4629  _status = _logBuff.serializeFrom(
4631  );
4632  FW_ASSERT(
4633  _status == Fw::FW_SERIALIZE_OK,
4634  static_cast<FwAssertArgType>(_status)
4635  );
4636 #endif
4637  _status = _logBuff.serializeFrom(pduType);
4638  FW_ASSERT(
4639  _status == Fw::FW_SERIALIZE_OK,
4640  static_cast<FwAssertArgType>(_status)
4641  );
4642 
4643 #if FW_AMPCS_COMPATIBLE
4644  // Serialize the argument size
4645  _status = _logBuff.serializeFrom(
4646  static_cast<U8>(sizeof(I32))
4647  );
4648  FW_ASSERT(
4649  _status == Fw::FW_SERIALIZE_OK,
4650  static_cast<FwAssertArgType>(_status)
4651  );
4652 #endif
4653  _status = _logBuff.serializeFrom(status);
4654  FW_ASSERT(
4655  _status == Fw::FW_SERIALIZE_OK,
4656  static_cast<FwAssertArgType>(_status)
4657  );
4658 
4659  this->logOut_out(
4660  0,
4661  _id,
4662  _logTime,
4664  _logBuff
4665  );
4666  }
4667 
4668  // Emit the event on the text log port
4669 #if FW_ENABLE_TEXT_LOGGING
4670  if (this->isConnected_logTextOut_OutputPort(0)) {
4671 #if FW_OBJECT_NAMES == 1
4672  const char* _formatString =
4673  "(%s) %s: Failed to serialize %" PRIu8 " PDU on channel %s, status %" PRIi32 "";
4674 #else
4675  const char* _formatString =
4676  "%s: Failed to serialize %" PRIu8 " PDU on channel %s, status %" PRIi32 "";
4677 #endif
4678 
4679  Fw::String pduTypeStr;
4680  pduType.toString(pduTypeStr);
4681 
4682  Fw::TextLogString _logString;
4683  (void) _logString.format(
4684  _formatString,
4685 #if FW_OBJECT_NAMES == 1
4686  this->m_objName.toChar(),
4687 #endif
4688  "FailPduSerialization ",
4689  channelId,
4690  pduTypeStr.toChar(),
4691  status
4692  );
4693 
4694  this->logTextOut_out(
4695  0,
4696  _id,
4697  _logTime,
4699  _logString
4700  );
4701  }
4702 #endif
4703  }
4704 
4707  U8 channelId,
4708  I32 status
4709  ) const
4710  {
4711  // Get the time
4712  Fw::Time _logTime;
4713  if (this->isConnected_timeCaller_OutputPort(0)) {
4714  this->timeCaller_out(0, _logTime);
4715  }
4716 
4718 
4719  // Emit the event on the log port
4720  if (this->isConnected_logOut_OutputPort(0)) {
4721  Fw::LogBuffer _logBuff;
4723 
4724 #if FW_AMPCS_COMPATIBLE
4725  // Serialize the number of arguments
4726  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4727  FW_ASSERT(
4728  _status == Fw::FW_SERIALIZE_OK,
4729  static_cast<FwAssertArgType>(_status)
4730  );
4731 #endif
4732 
4733 #if FW_AMPCS_COMPATIBLE
4734  // Serialize the argument size
4735  _status = _logBuff.serializeFrom(
4736  static_cast<U8>(sizeof(U8))
4737  );
4738  FW_ASSERT(
4739  _status == Fw::FW_SERIALIZE_OK,
4740  static_cast<FwAssertArgType>(_status)
4741  );
4742 #endif
4743  _status = _logBuff.serializeFrom(channelId);
4744  FW_ASSERT(
4745  _status == Fw::FW_SERIALIZE_OK,
4746  static_cast<FwAssertArgType>(_status)
4747  );
4748 
4749 #if FW_AMPCS_COMPATIBLE
4750  // Serialize the argument size
4751  _status = _logBuff.serializeFrom(
4752  static_cast<U8>(sizeof(I32))
4753  );
4754  FW_ASSERT(
4755  _status == Fw::FW_SERIALIZE_OK,
4756  static_cast<FwAssertArgType>(_status)
4757  );
4758 #endif
4759  _status = _logBuff.serializeFrom(status);
4760  FW_ASSERT(
4761  _status == Fw::FW_SERIALIZE_OK,
4762  static_cast<FwAssertArgType>(_status)
4763  );
4764 
4765  this->logOut_out(
4766  0,
4767  _id,
4768  _logTime,
4770  _logBuff
4771  );
4772  }
4773 
4774  // Emit the event on the text log port
4775 #if FW_ENABLE_TEXT_LOGGING
4776  if (this->isConnected_logTextOut_OutputPort(0)) {
4777 #if FW_OBJECT_NAMES == 1
4778  const char* _formatString =
4779  "(%s) %s: Failed to deserialize Metadata PDU on channel %" PRIu8 ", status %" PRIi32 "";
4780 #else
4781  const char* _formatString =
4782  "%s: Failed to deserialize Metadata PDU on channel %" PRIu8 ", status %" PRIi32 "";
4783 #endif
4784 
4785  Fw::TextLogString _logString;
4786  (void) _logString.format(
4787  _formatString,
4788 #if FW_OBJECT_NAMES == 1
4789  this->m_objName.toChar(),
4790 #endif
4791  "FailMetadataPduDeserialization ",
4792  channelId,
4793  status
4794  );
4795 
4796  this->logTextOut_out(
4797  0,
4798  _id,
4799  _logTime,
4801  _logString
4802  );
4803  }
4804 #endif
4805  }
4806 
4809  U8 channelId,
4810  I32 status
4811  ) const
4812  {
4813  // Get the time
4814  Fw::Time _logTime;
4815  if (this->isConnected_timeCaller_OutputPort(0)) {
4816  this->timeCaller_out(0, _logTime);
4817  }
4818 
4820 
4821  // Emit the event on the log port
4822  if (this->isConnected_logOut_OutputPort(0)) {
4823  Fw::LogBuffer _logBuff;
4825 
4826 #if FW_AMPCS_COMPATIBLE
4827  // Serialize the number of arguments
4828  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4829  FW_ASSERT(
4830  _status == Fw::FW_SERIALIZE_OK,
4831  static_cast<FwAssertArgType>(_status)
4832  );
4833 #endif
4834 
4835 #if FW_AMPCS_COMPATIBLE
4836  // Serialize the argument size
4837  _status = _logBuff.serializeFrom(
4838  static_cast<U8>(sizeof(U8))
4839  );
4840  FW_ASSERT(
4841  _status == Fw::FW_SERIALIZE_OK,
4842  static_cast<FwAssertArgType>(_status)
4843  );
4844 #endif
4845  _status = _logBuff.serializeFrom(channelId);
4846  FW_ASSERT(
4847  _status == Fw::FW_SERIALIZE_OK,
4848  static_cast<FwAssertArgType>(_status)
4849  );
4850 
4851 #if FW_AMPCS_COMPATIBLE
4852  // Serialize the argument size
4853  _status = _logBuff.serializeFrom(
4854  static_cast<U8>(sizeof(I32))
4855  );
4856  FW_ASSERT(
4857  _status == Fw::FW_SERIALIZE_OK,
4858  static_cast<FwAssertArgType>(_status)
4859  );
4860 #endif
4861  _status = _logBuff.serializeFrom(status);
4862  FW_ASSERT(
4863  _status == Fw::FW_SERIALIZE_OK,
4864  static_cast<FwAssertArgType>(_status)
4865  );
4866 
4867  this->logOut_out(
4868  0,
4869  _id,
4870  _logTime,
4872  _logBuff
4873  );
4874  }
4875 
4876  // Emit the event on the text log port
4877 #if FW_ENABLE_TEXT_LOGGING
4878  if (this->isConnected_logTextOut_OutputPort(0)) {
4879 #if FW_OBJECT_NAMES == 1
4880  const char* _formatString =
4881  "(%s) %s: Failed to deserialize File Data PDU on channel %" PRIu8 ", status %" PRIi32 "";
4882 #else
4883  const char* _formatString =
4884  "%s: Failed to deserialize File Data PDU on channel %" PRIu8 ", status %" PRIi32 "";
4885 #endif
4886 
4887  Fw::TextLogString _logString;
4888  (void) _logString.format(
4889  _formatString,
4890 #if FW_OBJECT_NAMES == 1
4891  this->m_objName.toChar(),
4892 #endif
4893  "FailFileDataPduDeserialization ",
4894  channelId,
4895  status
4896  );
4897 
4898  this->logTextOut_out(
4899  0,
4900  _id,
4901  _logTime,
4903  _logString
4904  );
4905  }
4906 #endif
4907  }
4908 
4911  U8 channelId,
4912  I32 status
4913  ) const
4914  {
4915  // Get the time
4916  Fw::Time _logTime;
4917  if (this->isConnected_timeCaller_OutputPort(0)) {
4918  this->timeCaller_out(0, _logTime);
4919  }
4920 
4922 
4923  // Emit the event on the log port
4924  if (this->isConnected_logOut_OutputPort(0)) {
4925  Fw::LogBuffer _logBuff;
4927 
4928 #if FW_AMPCS_COMPATIBLE
4929  // Serialize the number of arguments
4930  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4931  FW_ASSERT(
4932  _status == Fw::FW_SERIALIZE_OK,
4933  static_cast<FwAssertArgType>(_status)
4934  );
4935 #endif
4936 
4937 #if FW_AMPCS_COMPATIBLE
4938  // Serialize the argument size
4939  _status = _logBuff.serializeFrom(
4940  static_cast<U8>(sizeof(U8))
4941  );
4942  FW_ASSERT(
4943  _status == Fw::FW_SERIALIZE_OK,
4944  static_cast<FwAssertArgType>(_status)
4945  );
4946 #endif
4947  _status = _logBuff.serializeFrom(channelId);
4948  FW_ASSERT(
4949  _status == Fw::FW_SERIALIZE_OK,
4950  static_cast<FwAssertArgType>(_status)
4951  );
4952 
4953 #if FW_AMPCS_COMPATIBLE
4954  // Serialize the argument size
4955  _status = _logBuff.serializeFrom(
4956  static_cast<U8>(sizeof(I32))
4957  );
4958  FW_ASSERT(
4959  _status == Fw::FW_SERIALIZE_OK,
4960  static_cast<FwAssertArgType>(_status)
4961  );
4962 #endif
4963  _status = _logBuff.serializeFrom(status);
4964  FW_ASSERT(
4965  _status == Fw::FW_SERIALIZE_OK,
4966  static_cast<FwAssertArgType>(_status)
4967  );
4968 
4969  this->logOut_out(
4970  0,
4971  _id,
4972  _logTime,
4974  _logBuff
4975  );
4976  }
4977 
4978  // Emit the event on the text log port
4979 #if FW_ENABLE_TEXT_LOGGING
4980  if (this->isConnected_logTextOut_OutputPort(0)) {
4981 #if FW_OBJECT_NAMES == 1
4982  const char* _formatString =
4983  "(%s) %s: Failed to deserialize EOF PDU on channel %" PRIu8 ", status %" PRIi32 "";
4984 #else
4985  const char* _formatString =
4986  "%s: Failed to deserialize EOF PDU on channel %" PRIu8 ", status %" PRIi32 "";
4987 #endif
4988 
4989  Fw::TextLogString _logString;
4990  (void) _logString.format(
4991  _formatString,
4992 #if FW_OBJECT_NAMES == 1
4993  this->m_objName.toChar(),
4994 #endif
4995  "FailEofPduDeserialization ",
4996  channelId,
4997  status
4998  );
4999 
5000  this->logTextOut_out(
5001  0,
5002  _id,
5003  _logTime,
5005  _logString
5006  );
5007  }
5008 #endif
5009  }
5010 
5013  U8 channelId,
5014  I32 status
5015  ) const
5016  {
5017  // Get the time
5018  Fw::Time _logTime;
5019  if (this->isConnected_timeCaller_OutputPort(0)) {
5020  this->timeCaller_out(0, _logTime);
5021  }
5022 
5024 
5025  // Emit the event on the log port
5026  if (this->isConnected_logOut_OutputPort(0)) {
5027  Fw::LogBuffer _logBuff;
5029 
5030 #if FW_AMPCS_COMPATIBLE
5031  // Serialize the number of arguments
5032  _status = _logBuff.serializeFrom(static_cast<U8>(2));
5033  FW_ASSERT(
5034  _status == Fw::FW_SERIALIZE_OK,
5035  static_cast<FwAssertArgType>(_status)
5036  );
5037 #endif
5038 
5039 #if FW_AMPCS_COMPATIBLE
5040  // Serialize the argument size
5041  _status = _logBuff.serializeFrom(
5042  static_cast<U8>(sizeof(U8))
5043  );
5044  FW_ASSERT(
5045  _status == Fw::FW_SERIALIZE_OK,
5046  static_cast<FwAssertArgType>(_status)
5047  );
5048 #endif
5049  _status = _logBuff.serializeFrom(channelId);
5050  FW_ASSERT(
5051  _status == Fw::FW_SERIALIZE_OK,
5052  static_cast<FwAssertArgType>(_status)
5053  );
5054 
5055 #if FW_AMPCS_COMPATIBLE
5056  // Serialize the argument size
5057  _status = _logBuff.serializeFrom(
5058  static_cast<U8>(sizeof(I32))
5059  );
5060  FW_ASSERT(
5061  _status == Fw::FW_SERIALIZE_OK,
5062  static_cast<FwAssertArgType>(_status)
5063  );
5064 #endif
5065  _status = _logBuff.serializeFrom(status);
5066  FW_ASSERT(
5067  _status == Fw::FW_SERIALIZE_OK,
5068  static_cast<FwAssertArgType>(_status)
5069  );
5070 
5071  this->logOut_out(
5072  0,
5073  _id,
5074  _logTime,
5076  _logBuff
5077  );
5078  }
5079 
5080  // Emit the event on the text log port
5081 #if FW_ENABLE_TEXT_LOGGING
5082  if (this->isConnected_logTextOut_OutputPort(0)) {
5083 #if FW_OBJECT_NAMES == 1
5084  const char* _formatString =
5085  "(%s) %s: Failed to deserialize ACK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5086 #else
5087  const char* _formatString =
5088  "%s: Failed to deserialize ACK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5089 #endif
5090 
5091  Fw::TextLogString _logString;
5092  (void) _logString.format(
5093  _formatString,
5094 #if FW_OBJECT_NAMES == 1
5095  this->m_objName.toChar(),
5096 #endif
5097  "FailAckPduDeserialization ",
5098  channelId,
5099  status
5100  );
5101 
5102  this->logTextOut_out(
5103  0,
5104  _id,
5105  _logTime,
5107  _logString
5108  );
5109  }
5110 #endif
5111  }
5112 
5115  U8 channelId,
5116  I32 status
5117  ) const
5118  {
5119  // Get the time
5120  Fw::Time _logTime;
5121  if (this->isConnected_timeCaller_OutputPort(0)) {
5122  this->timeCaller_out(0, _logTime);
5123  }
5124 
5126 
5127  // Emit the event on the log port
5128  if (this->isConnected_logOut_OutputPort(0)) {
5129  Fw::LogBuffer _logBuff;
5131 
5132 #if FW_AMPCS_COMPATIBLE
5133  // Serialize the number of arguments
5134  _status = _logBuff.serializeFrom(static_cast<U8>(2));
5135  FW_ASSERT(
5136  _status == Fw::FW_SERIALIZE_OK,
5137  static_cast<FwAssertArgType>(_status)
5138  );
5139 #endif
5140 
5141 #if FW_AMPCS_COMPATIBLE
5142  // Serialize the argument size
5143  _status = _logBuff.serializeFrom(
5144  static_cast<U8>(sizeof(U8))
5145  );
5146  FW_ASSERT(
5147  _status == Fw::FW_SERIALIZE_OK,
5148  static_cast<FwAssertArgType>(_status)
5149  );
5150 #endif
5151  _status = _logBuff.serializeFrom(channelId);
5152  FW_ASSERT(
5153  _status == Fw::FW_SERIALIZE_OK,
5154  static_cast<FwAssertArgType>(_status)
5155  );
5156 
5157 #if FW_AMPCS_COMPATIBLE
5158  // Serialize the argument size
5159  _status = _logBuff.serializeFrom(
5160  static_cast<U8>(sizeof(I32))
5161  );
5162  FW_ASSERT(
5163  _status == Fw::FW_SERIALIZE_OK,
5164  static_cast<FwAssertArgType>(_status)
5165  );
5166 #endif
5167  _status = _logBuff.serializeFrom(status);
5168  FW_ASSERT(
5169  _status == Fw::FW_SERIALIZE_OK,
5170  static_cast<FwAssertArgType>(_status)
5171  );
5172 
5173  this->logOut_out(
5174  0,
5175  _id,
5176  _logTime,
5178  _logBuff
5179  );
5180  }
5181 
5182  // Emit the event on the text log port
5183 #if FW_ENABLE_TEXT_LOGGING
5184  if (this->isConnected_logTextOut_OutputPort(0)) {
5185 #if FW_OBJECT_NAMES == 1
5186  const char* _formatString =
5187  "(%s) %s: Failed to deserialize FIN PDU on channel %" PRIu8 ", status %" PRIi32 "";
5188 #else
5189  const char* _formatString =
5190  "%s: Failed to deserialize FIN PDU on channel %" PRIu8 ", status %" PRIi32 "";
5191 #endif
5192 
5193  Fw::TextLogString _logString;
5194  (void) _logString.format(
5195  _formatString,
5196 #if FW_OBJECT_NAMES == 1
5197  this->m_objName.toChar(),
5198 #endif
5199  "FailFinPduDeserialization ",
5200  channelId,
5201  status
5202  );
5203 
5204  this->logTextOut_out(
5205  0,
5206  _id,
5207  _logTime,
5209  _logString
5210  );
5211  }
5212 #endif
5213  }
5214 
5217  U8 channelId,
5218  I32 status
5219  ) const
5220  {
5221  // Get the time
5222  Fw::Time _logTime;
5223  if (this->isConnected_timeCaller_OutputPort(0)) {
5224  this->timeCaller_out(0, _logTime);
5225  }
5226 
5228 
5229  // Emit the event on the log port
5230  if (this->isConnected_logOut_OutputPort(0)) {
5231  Fw::LogBuffer _logBuff;
5233 
5234 #if FW_AMPCS_COMPATIBLE
5235  // Serialize the number of arguments
5236  _status = _logBuff.serializeFrom(static_cast<U8>(2));
5237  FW_ASSERT(
5238  _status == Fw::FW_SERIALIZE_OK,
5239  static_cast<FwAssertArgType>(_status)
5240  );
5241 #endif
5242 
5243 #if FW_AMPCS_COMPATIBLE
5244  // Serialize the argument size
5245  _status = _logBuff.serializeFrom(
5246  static_cast<U8>(sizeof(U8))
5247  );
5248  FW_ASSERT(
5249  _status == Fw::FW_SERIALIZE_OK,
5250  static_cast<FwAssertArgType>(_status)
5251  );
5252 #endif
5253  _status = _logBuff.serializeFrom(channelId);
5254  FW_ASSERT(
5255  _status == Fw::FW_SERIALIZE_OK,
5256  static_cast<FwAssertArgType>(_status)
5257  );
5258 
5259 #if FW_AMPCS_COMPATIBLE
5260  // Serialize the argument size
5261  _status = _logBuff.serializeFrom(
5262  static_cast<U8>(sizeof(I32))
5263  );
5264  FW_ASSERT(
5265  _status == Fw::FW_SERIALIZE_OK,
5266  static_cast<FwAssertArgType>(_status)
5267  );
5268 #endif
5269  _status = _logBuff.serializeFrom(status);
5270  FW_ASSERT(
5271  _status == Fw::FW_SERIALIZE_OK,
5272  static_cast<FwAssertArgType>(_status)
5273  );
5274 
5275  this->logOut_out(
5276  0,
5277  _id,
5278  _logTime,
5280  _logBuff
5281  );
5282  }
5283 
5284  // Emit the event on the text log port
5285 #if FW_ENABLE_TEXT_LOGGING
5286  if (this->isConnected_logTextOut_OutputPort(0)) {
5287 #if FW_OBJECT_NAMES == 1
5288  const char* _formatString =
5289  "(%s) %s: Failed to deserialize NAK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5290 #else
5291  const char* _formatString =
5292  "%s: Failed to deserialize NAK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5293 #endif
5294 
5295  Fw::TextLogString _logString;
5296  (void) _logString.format(
5297  _formatString,
5298 #if FW_OBJECT_NAMES == 1
5299  this->m_objName.toChar(),
5300 #endif
5301  "FailNakPduDeserialization ",
5302  channelId,
5303  status
5304  );
5305 
5306  this->logTextOut_out(
5307  0,
5308  _id,
5309  _logTime,
5311  _logString
5312  );
5313  }
5314 #endif
5315  }
5316 
5319  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5320  U32 srcEid,
5321  U32 seqNum
5322  ) const
5323  {
5324  // Get the time
5325  Fw::Time _logTime;
5326  if (this->isConnected_timeCaller_OutputPort(0)) {
5327  this->timeCaller_out(0, _logTime);
5328  }
5329 
5330  const FwEventIdType _id = this->getIdBase() + EVENTID_RXACKLIMITREACHED;
5331 
5332  // Emit the event on the log port
5333  if (this->isConnected_logOut_OutputPort(0)) {
5334  Fw::LogBuffer _logBuff;
5336 
5337 #if FW_AMPCS_COMPATIBLE
5338  // Serialize the number of arguments
5339  _status = _logBuff.serializeFrom(static_cast<U8>(3));
5340  FW_ASSERT(
5341  _status == Fw::FW_SERIALIZE_OK,
5342  static_cast<FwAssertArgType>(_status)
5343  );
5344 #endif
5345 
5346 #if FW_AMPCS_COMPATIBLE
5347  // Serialize the argument size
5348  _status = _logBuff.serializeFrom(
5350  );
5351  FW_ASSERT(
5352  _status == Fw::FW_SERIALIZE_OK,
5353  static_cast<FwAssertArgType>(_status)
5354  );
5355 #endif
5356  _status = _logBuff.serializeFrom(cfdpClass);
5357  FW_ASSERT(
5358  _status == Fw::FW_SERIALIZE_OK,
5359  static_cast<FwAssertArgType>(_status)
5360  );
5361 
5362 #if FW_AMPCS_COMPATIBLE
5363  // Serialize the argument size
5364  _status = _logBuff.serializeFrom(
5365  static_cast<U8>(sizeof(U32))
5366  );
5367  FW_ASSERT(
5368  _status == Fw::FW_SERIALIZE_OK,
5369  static_cast<FwAssertArgType>(_status)
5370  );
5371 #endif
5372  _status = _logBuff.serializeFrom(srcEid);
5373  FW_ASSERT(
5374  _status == Fw::FW_SERIALIZE_OK,
5375  static_cast<FwAssertArgType>(_status)
5376  );
5377 
5378 #if FW_AMPCS_COMPATIBLE
5379  // Serialize the argument size
5380  _status = _logBuff.serializeFrom(
5381  static_cast<U8>(sizeof(U32))
5382  );
5383  FW_ASSERT(
5384  _status == Fw::FW_SERIALIZE_OK,
5385  static_cast<FwAssertArgType>(_status)
5386  );
5387 #endif
5388  _status = _logBuff.serializeFrom(seqNum);
5389  FW_ASSERT(
5390  _status == Fw::FW_SERIALIZE_OK,
5391  static_cast<FwAssertArgType>(_status)
5392  );
5393 
5394  this->logOut_out(
5395  0,
5396  _id,
5397  _logTime,
5399  _logBuff
5400  );
5401  }
5402 
5403  // Emit the event on the text log port
5404 #if FW_ENABLE_TEXT_LOGGING
5405  if (this->isConnected_logTextOut_OutputPort(0)) {
5406 #if FW_OBJECT_NAMES == 1
5407  const char* _formatString =
5408  "(%s) %s: RX class %s ACK limit reached for transaction %" PRIu32 ":%" PRIu32 ", no fin-ack sent";
5409 #else
5410  const char* _formatString =
5411  "%s: RX class %s ACK limit reached for transaction %" PRIu32 ":%" PRIu32 ", no fin-ack sent";
5412 #endif
5413 
5414  Fw::String cfdpClassStr;
5415  cfdpClass.toString(cfdpClassStr);
5416 
5417  Fw::TextLogString _logString;
5418  (void) _logString.format(
5419  _formatString,
5420 #if FW_OBJECT_NAMES == 1
5421  this->m_objName.toChar(),
5422 #endif
5423  "RxAckLimitReached ",
5424  cfdpClassStr.toChar(),
5425  srcEid,
5426  seqNum
5427  );
5428 
5429  this->logTextOut_out(
5430  0,
5431  _id,
5432  _logTime,
5434  _logString
5435  );
5436  }
5437 #endif
5438  }
5439 
5442  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5443  U32 srcEid,
5444  U32 seqNum,
5445  const Fw::StringBase& filename
5446  ) const
5447  {
5448  // Get the time
5449  Fw::Time _logTime;
5450  if (this->isConnected_timeCaller_OutputPort(0)) {
5451  this->timeCaller_out(0, _logTime);
5452  }
5453 
5454  const FwEventIdType _id = this->getIdBase() + EVENTID_RXTEMPFILECREATED;
5455 
5456  // Emit the event on the log port
5457  if (this->isConnected_logOut_OutputPort(0)) {
5458  Fw::LogBuffer _logBuff;
5460 
5461 #if FW_AMPCS_COMPATIBLE
5462  // Serialize the number of arguments
5463  _status = _logBuff.serializeFrom(static_cast<U8>(4));
5464  FW_ASSERT(
5465  _status == Fw::FW_SERIALIZE_OK,
5466  static_cast<FwAssertArgType>(_status)
5467  );
5468 #endif
5469 
5470 #if FW_AMPCS_COMPATIBLE
5471  // Serialize the argument size
5472  _status = _logBuff.serializeFrom(
5474  );
5475  FW_ASSERT(
5476  _status == Fw::FW_SERIALIZE_OK,
5477  static_cast<FwAssertArgType>(_status)
5478  );
5479 #endif
5480  _status = _logBuff.serializeFrom(cfdpClass);
5481  FW_ASSERT(
5482  _status == Fw::FW_SERIALIZE_OK,
5483  static_cast<FwAssertArgType>(_status)
5484  );
5485 
5486 #if FW_AMPCS_COMPATIBLE
5487  // Serialize the argument size
5488  _status = _logBuff.serializeFrom(
5489  static_cast<U8>(sizeof(U32))
5490  );
5491  FW_ASSERT(
5492  _status == Fw::FW_SERIALIZE_OK,
5493  static_cast<FwAssertArgType>(_status)
5494  );
5495 #endif
5496  _status = _logBuff.serializeFrom(srcEid);
5497  FW_ASSERT(
5498  _status == Fw::FW_SERIALIZE_OK,
5499  static_cast<FwAssertArgType>(_status)
5500  );
5501 
5502 #if FW_AMPCS_COMPATIBLE
5503  // Serialize the argument size
5504  _status = _logBuff.serializeFrom(
5505  static_cast<U8>(sizeof(U32))
5506  );
5507  FW_ASSERT(
5508  _status == Fw::FW_SERIALIZE_OK,
5509  static_cast<FwAssertArgType>(_status)
5510  );
5511 #endif
5512  _status = _logBuff.serializeFrom(seqNum);
5513  FW_ASSERT(
5514  _status == Fw::FW_SERIALIZE_OK,
5515  static_cast<FwAssertArgType>(_status)
5516  );
5517 
5518  _status = filename.serializeTo(
5519  _logBuff,
5520  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
5521  );
5522  FW_ASSERT(
5523  _status == Fw::FW_SERIALIZE_OK,
5524  static_cast<FwAssertArgType>(_status)
5525  );
5526 
5527  this->logOut_out(
5528  0,
5529  _id,
5530  _logTime,
5532  _logBuff
5533  );
5534  }
5535 
5536  // Emit the event on the text log port
5537 #if FW_ENABLE_TEXT_LOGGING
5538  if (this->isConnected_logTextOut_OutputPort(0)) {
5539 #if FW_OBJECT_NAMES == 1
5540  const char* _formatString =
5541  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " creating temp file %s without metadata";
5542 #else
5543  const char* _formatString =
5544  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " creating temp file %s without metadata";
5545 #endif
5546 
5547  Fw::String cfdpClassStr;
5548  cfdpClass.toString(cfdpClassStr);
5549 
5550  Fw::TextLogString _logString;
5551  (void) _logString.format(
5552  _formatString,
5553 #if FW_OBJECT_NAMES == 1
5554  this->m_objName.toChar(),
5555 #endif
5556  "RxTempFileCreated ",
5557  cfdpClassStr.toChar(),
5558  srcEid,
5559  seqNum,
5560  filename.toChar()
5561  );
5562 
5563  this->logTextOut_out(
5564  0,
5565  _id,
5566  _logTime,
5568  _logString
5569  );
5570  }
5571 #endif
5572  }
5573 
5576  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5577  U32 srcEid,
5578  U32 seqNum,
5579  const Fw::StringBase& filename,
5580  I32 status
5581  ) const
5582  {
5583  // Get the time
5584  Fw::Time _logTime;
5585  if (this->isConnected_timeCaller_OutputPort(0)) {
5586  this->timeCaller_out(0, _logTime);
5587  }
5588 
5589  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILECREATEFAILED;
5590 
5591  // Emit the event on the log port
5592  if (this->isConnected_logOut_OutputPort(0)) {
5593  Fw::LogBuffer _logBuff;
5595 
5596 #if FW_AMPCS_COMPATIBLE
5597  // Serialize the number of arguments
5598  _status = _logBuff.serializeFrom(static_cast<U8>(5));
5599  FW_ASSERT(
5600  _status == Fw::FW_SERIALIZE_OK,
5601  static_cast<FwAssertArgType>(_status)
5602  );
5603 #endif
5604 
5605 #if FW_AMPCS_COMPATIBLE
5606  // Serialize the argument size
5607  _status = _logBuff.serializeFrom(
5609  );
5610  FW_ASSERT(
5611  _status == Fw::FW_SERIALIZE_OK,
5612  static_cast<FwAssertArgType>(_status)
5613  );
5614 #endif
5615  _status = _logBuff.serializeFrom(cfdpClass);
5616  FW_ASSERT(
5617  _status == Fw::FW_SERIALIZE_OK,
5618  static_cast<FwAssertArgType>(_status)
5619  );
5620 
5621 #if FW_AMPCS_COMPATIBLE
5622  // Serialize the argument size
5623  _status = _logBuff.serializeFrom(
5624  static_cast<U8>(sizeof(U32))
5625  );
5626  FW_ASSERT(
5627  _status == Fw::FW_SERIALIZE_OK,
5628  static_cast<FwAssertArgType>(_status)
5629  );
5630 #endif
5631  _status = _logBuff.serializeFrom(srcEid);
5632  FW_ASSERT(
5633  _status == Fw::FW_SERIALIZE_OK,
5634  static_cast<FwAssertArgType>(_status)
5635  );
5636 
5637 #if FW_AMPCS_COMPATIBLE
5638  // Serialize the argument size
5639  _status = _logBuff.serializeFrom(
5640  static_cast<U8>(sizeof(U32))
5641  );
5642  FW_ASSERT(
5643  _status == Fw::FW_SERIALIZE_OK,
5644  static_cast<FwAssertArgType>(_status)
5645  );
5646 #endif
5647  _status = _logBuff.serializeFrom(seqNum);
5648  FW_ASSERT(
5649  _status == Fw::FW_SERIALIZE_OK,
5650  static_cast<FwAssertArgType>(_status)
5651  );
5652 
5653  _status = filename.serializeTo(
5654  _logBuff,
5655  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
5656  );
5657  FW_ASSERT(
5658  _status == Fw::FW_SERIALIZE_OK,
5659  static_cast<FwAssertArgType>(_status)
5660  );
5661 
5662 #if FW_AMPCS_COMPATIBLE
5663  // Serialize the argument size
5664  _status = _logBuff.serializeFrom(
5665  static_cast<U8>(sizeof(I32))
5666  );
5667  FW_ASSERT(
5668  _status == Fw::FW_SERIALIZE_OK,
5669  static_cast<FwAssertArgType>(_status)
5670  );
5671 #endif
5672  _status = _logBuff.serializeFrom(status);
5673  FW_ASSERT(
5674  _status == Fw::FW_SERIALIZE_OK,
5675  static_cast<FwAssertArgType>(_status)
5676  );
5677 
5678  this->logOut_out(
5679  0,
5680  _id,
5681  _logTime,
5683  _logBuff
5684  );
5685  }
5686 
5687  // Emit the event on the text log port
5688 #if FW_ENABLE_TEXT_LOGGING
5689  if (this->isConnected_logTextOut_OutputPort(0)) {
5690 #if FW_OBJECT_NAMES == 1
5691  const char* _formatString =
5692  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to create file %s, error=%" PRIi32 "";
5693 #else
5694  const char* _formatString =
5695  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to create file %s, error=%" PRIi32 "";
5696 #endif
5697 
5698  Fw::String cfdpClassStr;
5699  cfdpClass.toString(cfdpClassStr);
5700 
5701  Fw::TextLogString _logString;
5702  (void) _logString.format(
5703  _formatString,
5704 #if FW_OBJECT_NAMES == 1
5705  this->m_objName.toChar(),
5706 #endif
5707  "RxFileCreateFailed ",
5708  cfdpClassStr.toChar(),
5709  srcEid,
5710  seqNum,
5711  filename.toChar(),
5712  status
5713  );
5714 
5715  this->logTextOut_out(
5716  0,
5717  _id,
5718  _logTime,
5720  _logString
5721  );
5722  }
5723 #endif
5724  }
5725 
5728  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5729  U32 srcEid,
5730  U32 seqNum,
5731  U32 expected,
5732  U32 actual
5733  ) const
5734  {
5735  // Get the time
5736  Fw::Time _logTime;
5737  if (this->isConnected_timeCaller_OutputPort(0)) {
5738  this->timeCaller_out(0, _logTime);
5739  }
5740 
5741  const FwEventIdType _id = this->getIdBase() + EVENTID_RXCRCMISMATCH;
5742 
5743  // Emit the event on the log port
5744  if (this->isConnected_logOut_OutputPort(0)) {
5745  Fw::LogBuffer _logBuff;
5747 
5748 #if FW_AMPCS_COMPATIBLE
5749  // Serialize the number of arguments
5750  _status = _logBuff.serializeFrom(static_cast<U8>(5));
5751  FW_ASSERT(
5752  _status == Fw::FW_SERIALIZE_OK,
5753  static_cast<FwAssertArgType>(_status)
5754  );
5755 #endif
5756 
5757 #if FW_AMPCS_COMPATIBLE
5758  // Serialize the argument size
5759  _status = _logBuff.serializeFrom(
5761  );
5762  FW_ASSERT(
5763  _status == Fw::FW_SERIALIZE_OK,
5764  static_cast<FwAssertArgType>(_status)
5765  );
5766 #endif
5767  _status = _logBuff.serializeFrom(cfdpClass);
5768  FW_ASSERT(
5769  _status == Fw::FW_SERIALIZE_OK,
5770  static_cast<FwAssertArgType>(_status)
5771  );
5772 
5773 #if FW_AMPCS_COMPATIBLE
5774  // Serialize the argument size
5775  _status = _logBuff.serializeFrom(
5776  static_cast<U8>(sizeof(U32))
5777  );
5778  FW_ASSERT(
5779  _status == Fw::FW_SERIALIZE_OK,
5780  static_cast<FwAssertArgType>(_status)
5781  );
5782 #endif
5783  _status = _logBuff.serializeFrom(srcEid);
5784  FW_ASSERT(
5785  _status == Fw::FW_SERIALIZE_OK,
5786  static_cast<FwAssertArgType>(_status)
5787  );
5788 
5789 #if FW_AMPCS_COMPATIBLE
5790  // Serialize the argument size
5791  _status = _logBuff.serializeFrom(
5792  static_cast<U8>(sizeof(U32))
5793  );
5794  FW_ASSERT(
5795  _status == Fw::FW_SERIALIZE_OK,
5796  static_cast<FwAssertArgType>(_status)
5797  );
5798 #endif
5799  _status = _logBuff.serializeFrom(seqNum);
5800  FW_ASSERT(
5801  _status == Fw::FW_SERIALIZE_OK,
5802  static_cast<FwAssertArgType>(_status)
5803  );
5804 
5805 #if FW_AMPCS_COMPATIBLE
5806  // Serialize the argument size
5807  _status = _logBuff.serializeFrom(
5808  static_cast<U8>(sizeof(U32))
5809  );
5810  FW_ASSERT(
5811  _status == Fw::FW_SERIALIZE_OK,
5812  static_cast<FwAssertArgType>(_status)
5813  );
5814 #endif
5815  _status = _logBuff.serializeFrom(expected);
5816  FW_ASSERT(
5817  _status == Fw::FW_SERIALIZE_OK,
5818  static_cast<FwAssertArgType>(_status)
5819  );
5820 
5821 #if FW_AMPCS_COMPATIBLE
5822  // Serialize the argument size
5823  _status = _logBuff.serializeFrom(
5824  static_cast<U8>(sizeof(U32))
5825  );
5826  FW_ASSERT(
5827  _status == Fw::FW_SERIALIZE_OK,
5828  static_cast<FwAssertArgType>(_status)
5829  );
5830 #endif
5831  _status = _logBuff.serializeFrom(actual);
5832  FW_ASSERT(
5833  _status == Fw::FW_SERIALIZE_OK,
5834  static_cast<FwAssertArgType>(_status)
5835  );
5836 
5837  this->logOut_out(
5838  0,
5839  _id,
5840  _logTime,
5842  _logBuff
5843  );
5844  }
5845 
5846  // Emit the event on the text log port
5847 #if FW_ENABLE_TEXT_LOGGING
5848  if (this->isConnected_logTextOut_OutputPort(0)) {
5849 #if FW_OBJECT_NAMES == 1
5850  const char* _formatString =
5851  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " CRC mismatch: expected 0x%" PRIx32 " actual 0x%" PRIx32 "";
5852 #else
5853  const char* _formatString =
5854  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " CRC mismatch: expected 0x%" PRIx32 " actual 0x%" PRIx32 "";
5855 #endif
5856 
5857  Fw::String cfdpClassStr;
5858  cfdpClass.toString(cfdpClassStr);
5859 
5860  Fw::TextLogString _logString;
5861  (void) _logString.format(
5862  _formatString,
5863 #if FW_OBJECT_NAMES == 1
5864  this->m_objName.toChar(),
5865 #endif
5866  "RxCrcMismatch ",
5867  cfdpClassStr.toChar(),
5868  srcEid,
5869  seqNum,
5870  expected,
5871  actual
5872  );
5873 
5874  this->logTextOut_out(
5875  0,
5876  _id,
5877  _logTime,
5879  _logString
5880  );
5881  }
5882 #endif
5883  }
5884 
5887  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5888  U32 srcEid,
5889  U32 seqNum
5890  ) const
5891  {
5892  // Get the time
5893  Fw::Time _logTime;
5894  if (this->isConnected_timeCaller_OutputPort(0)) {
5895  this->timeCaller_out(0, _logTime);
5896  }
5897 
5898  const FwEventIdType _id = this->getIdBase() + EVENTID_RXNAKLIMITREACHED;
5899 
5900  // Emit the event on the log port
5901  if (this->isConnected_logOut_OutputPort(0)) {
5902  Fw::LogBuffer _logBuff;
5904 
5905 #if FW_AMPCS_COMPATIBLE
5906  // Serialize the number of arguments
5907  _status = _logBuff.serializeFrom(static_cast<U8>(3));
5908  FW_ASSERT(
5909  _status == Fw::FW_SERIALIZE_OK,
5910  static_cast<FwAssertArgType>(_status)
5911  );
5912 #endif
5913 
5914 #if FW_AMPCS_COMPATIBLE
5915  // Serialize the argument size
5916  _status = _logBuff.serializeFrom(
5918  );
5919  FW_ASSERT(
5920  _status == Fw::FW_SERIALIZE_OK,
5921  static_cast<FwAssertArgType>(_status)
5922  );
5923 #endif
5924  _status = _logBuff.serializeFrom(cfdpClass);
5925  FW_ASSERT(
5926  _status == Fw::FW_SERIALIZE_OK,
5927  static_cast<FwAssertArgType>(_status)
5928  );
5929 
5930 #if FW_AMPCS_COMPATIBLE
5931  // Serialize the argument size
5932  _status = _logBuff.serializeFrom(
5933  static_cast<U8>(sizeof(U32))
5934  );
5935  FW_ASSERT(
5936  _status == Fw::FW_SERIALIZE_OK,
5937  static_cast<FwAssertArgType>(_status)
5938  );
5939 #endif
5940  _status = _logBuff.serializeFrom(srcEid);
5941  FW_ASSERT(
5942  _status == Fw::FW_SERIALIZE_OK,
5943  static_cast<FwAssertArgType>(_status)
5944  );
5945 
5946 #if FW_AMPCS_COMPATIBLE
5947  // Serialize the argument size
5948  _status = _logBuff.serializeFrom(
5949  static_cast<U8>(sizeof(U32))
5950  );
5951  FW_ASSERT(
5952  _status == Fw::FW_SERIALIZE_OK,
5953  static_cast<FwAssertArgType>(_status)
5954  );
5955 #endif
5956  _status = _logBuff.serializeFrom(seqNum);
5957  FW_ASSERT(
5958  _status == Fw::FW_SERIALIZE_OK,
5959  static_cast<FwAssertArgType>(_status)
5960  );
5961 
5962  this->logOut_out(
5963  0,
5964  _id,
5965  _logTime,
5967  _logBuff
5968  );
5969  }
5970 
5971  // Emit the event on the text log port
5972 #if FW_ENABLE_TEXT_LOGGING
5973  if (this->isConnected_logTextOut_OutputPort(0)) {
5974 #if FW_OBJECT_NAMES == 1
5975  const char* _formatString =
5976  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " NAK limit reached";
5977 #else
5978  const char* _formatString =
5979  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " NAK limit reached";
5980 #endif
5981 
5982  Fw::String cfdpClassStr;
5983  cfdpClass.toString(cfdpClassStr);
5984 
5985  Fw::TextLogString _logString;
5986  (void) _logString.format(
5987  _formatString,
5988 #if FW_OBJECT_NAMES == 1
5989  this->m_objName.toChar(),
5990 #endif
5991  "RxNakLimitReached ",
5992  cfdpClassStr.toChar(),
5993  srcEid,
5994  seqNum
5995  );
5996 
5997  this->logTextOut_out(
5998  0,
5999  _id,
6000  _logTime,
6002  _logString
6003  );
6004  }
6005 #endif
6006  }
6007 
6010  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6011  U32 srcEid,
6012  U32 seqNum,
6013  U32 offset,
6014  I32 status
6015  ) const
6016  {
6017  // Get the time
6018  Fw::Time _logTime;
6019  if (this->isConnected_timeCaller_OutputPort(0)) {
6020  this->timeCaller_out(0, _logTime);
6021  }
6022 
6023  const FwEventIdType _id = this->getIdBase() + EVENTID_RXSEEKFAILED;
6024 
6025  // Emit the event on the log port
6026  if (this->isConnected_logOut_OutputPort(0)) {
6027  Fw::LogBuffer _logBuff;
6029 
6030 #if FW_AMPCS_COMPATIBLE
6031  // Serialize the number of arguments
6032  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6033  FW_ASSERT(
6034  _status == Fw::FW_SERIALIZE_OK,
6035  static_cast<FwAssertArgType>(_status)
6036  );
6037 #endif
6038 
6039 #if FW_AMPCS_COMPATIBLE
6040  // Serialize the argument size
6041  _status = _logBuff.serializeFrom(
6043  );
6044  FW_ASSERT(
6045  _status == Fw::FW_SERIALIZE_OK,
6046  static_cast<FwAssertArgType>(_status)
6047  );
6048 #endif
6049  _status = _logBuff.serializeFrom(cfdpClass);
6050  FW_ASSERT(
6051  _status == Fw::FW_SERIALIZE_OK,
6052  static_cast<FwAssertArgType>(_status)
6053  );
6054 
6055 #if FW_AMPCS_COMPATIBLE
6056  // Serialize the argument size
6057  _status = _logBuff.serializeFrom(
6058  static_cast<U8>(sizeof(U32))
6059  );
6060  FW_ASSERT(
6061  _status == Fw::FW_SERIALIZE_OK,
6062  static_cast<FwAssertArgType>(_status)
6063  );
6064 #endif
6065  _status = _logBuff.serializeFrom(srcEid);
6066  FW_ASSERT(
6067  _status == Fw::FW_SERIALIZE_OK,
6068  static_cast<FwAssertArgType>(_status)
6069  );
6070 
6071 #if FW_AMPCS_COMPATIBLE
6072  // Serialize the argument size
6073  _status = _logBuff.serializeFrom(
6074  static_cast<U8>(sizeof(U32))
6075  );
6076  FW_ASSERT(
6077  _status == Fw::FW_SERIALIZE_OK,
6078  static_cast<FwAssertArgType>(_status)
6079  );
6080 #endif
6081  _status = _logBuff.serializeFrom(seqNum);
6082  FW_ASSERT(
6083  _status == Fw::FW_SERIALIZE_OK,
6084  static_cast<FwAssertArgType>(_status)
6085  );
6086 
6087 #if FW_AMPCS_COMPATIBLE
6088  // Serialize the argument size
6089  _status = _logBuff.serializeFrom(
6090  static_cast<U8>(sizeof(U32))
6091  );
6092  FW_ASSERT(
6093  _status == Fw::FW_SERIALIZE_OK,
6094  static_cast<FwAssertArgType>(_status)
6095  );
6096 #endif
6097  _status = _logBuff.serializeFrom(offset);
6098  FW_ASSERT(
6099  _status == Fw::FW_SERIALIZE_OK,
6100  static_cast<FwAssertArgType>(_status)
6101  );
6102 
6103 #if FW_AMPCS_COMPATIBLE
6104  // Serialize the argument size
6105  _status = _logBuff.serializeFrom(
6106  static_cast<U8>(sizeof(I32))
6107  );
6108  FW_ASSERT(
6109  _status == Fw::FW_SERIALIZE_OK,
6110  static_cast<FwAssertArgType>(_status)
6111  );
6112 #endif
6113  _status = _logBuff.serializeFrom(status);
6114  FW_ASSERT(
6115  _status == Fw::FW_SERIALIZE_OK,
6116  static_cast<FwAssertArgType>(_status)
6117  );
6118 
6119  this->logOut_out(
6120  0,
6121  _id,
6122  _logTime,
6124  _logBuff
6125  );
6126  }
6127 
6128  // Emit the event on the text log port
6129 #if FW_ENABLE_TEXT_LOGGING
6130  if (this->isConnected_logTextOut_OutputPort(0)) {
6131 #if FW_OBJECT_NAMES == 1
6132  const char* _formatString =
6133  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to offset %" PRIu32 ", error=%" PRIi32 "";
6134 #else
6135  const char* _formatString =
6136  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to offset %" PRIu32 ", error=%" PRIi32 "";
6137 #endif
6138 
6139  Fw::String cfdpClassStr;
6140  cfdpClass.toString(cfdpClassStr);
6141 
6142  Fw::TextLogString _logString;
6143  (void) _logString.format(
6144  _formatString,
6145 #if FW_OBJECT_NAMES == 1
6146  this->m_objName.toChar(),
6147 #endif
6148  "RxSeekFailed ",
6149  cfdpClassStr.toChar(),
6150  srcEid,
6151  seqNum,
6152  offset,
6153  status
6154  );
6155 
6156  this->logTextOut_out(
6157  0,
6158  _id,
6159  _logTime,
6161  _logString
6162  );
6163  }
6164 #endif
6165  }
6166 
6169  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6170  U32 srcEid,
6171  U32 seqNum,
6172  U32 expected,
6173  I32 actual
6174  ) const
6175  {
6176  // Get the time
6177  Fw::Time _logTime;
6178  if (this->isConnected_timeCaller_OutputPort(0)) {
6179  this->timeCaller_out(0, _logTime);
6180  }
6181 
6182  const FwEventIdType _id = this->getIdBase() + EVENTID_RXWRITEFAILED;
6183 
6184  // Emit the event on the log port
6185  if (this->isConnected_logOut_OutputPort(0)) {
6186  Fw::LogBuffer _logBuff;
6188 
6189 #if FW_AMPCS_COMPATIBLE
6190  // Serialize the number of arguments
6191  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6192  FW_ASSERT(
6193  _status == Fw::FW_SERIALIZE_OK,
6194  static_cast<FwAssertArgType>(_status)
6195  );
6196 #endif
6197 
6198 #if FW_AMPCS_COMPATIBLE
6199  // Serialize the argument size
6200  _status = _logBuff.serializeFrom(
6202  );
6203  FW_ASSERT(
6204  _status == Fw::FW_SERIALIZE_OK,
6205  static_cast<FwAssertArgType>(_status)
6206  );
6207 #endif
6208  _status = _logBuff.serializeFrom(cfdpClass);
6209  FW_ASSERT(
6210  _status == Fw::FW_SERIALIZE_OK,
6211  static_cast<FwAssertArgType>(_status)
6212  );
6213 
6214 #if FW_AMPCS_COMPATIBLE
6215  // Serialize the argument size
6216  _status = _logBuff.serializeFrom(
6217  static_cast<U8>(sizeof(U32))
6218  );
6219  FW_ASSERT(
6220  _status == Fw::FW_SERIALIZE_OK,
6221  static_cast<FwAssertArgType>(_status)
6222  );
6223 #endif
6224  _status = _logBuff.serializeFrom(srcEid);
6225  FW_ASSERT(
6226  _status == Fw::FW_SERIALIZE_OK,
6227  static_cast<FwAssertArgType>(_status)
6228  );
6229 
6230 #if FW_AMPCS_COMPATIBLE
6231  // Serialize the argument size
6232  _status = _logBuff.serializeFrom(
6233  static_cast<U8>(sizeof(U32))
6234  );
6235  FW_ASSERT(
6236  _status == Fw::FW_SERIALIZE_OK,
6237  static_cast<FwAssertArgType>(_status)
6238  );
6239 #endif
6240  _status = _logBuff.serializeFrom(seqNum);
6241  FW_ASSERT(
6242  _status == Fw::FW_SERIALIZE_OK,
6243  static_cast<FwAssertArgType>(_status)
6244  );
6245 
6246 #if FW_AMPCS_COMPATIBLE
6247  // Serialize the argument size
6248  _status = _logBuff.serializeFrom(
6249  static_cast<U8>(sizeof(U32))
6250  );
6251  FW_ASSERT(
6252  _status == Fw::FW_SERIALIZE_OK,
6253  static_cast<FwAssertArgType>(_status)
6254  );
6255 #endif
6256  _status = _logBuff.serializeFrom(expected);
6257  FW_ASSERT(
6258  _status == Fw::FW_SERIALIZE_OK,
6259  static_cast<FwAssertArgType>(_status)
6260  );
6261 
6262 #if FW_AMPCS_COMPATIBLE
6263  // Serialize the argument size
6264  _status = _logBuff.serializeFrom(
6265  static_cast<U8>(sizeof(I32))
6266  );
6267  FW_ASSERT(
6268  _status == Fw::FW_SERIALIZE_OK,
6269  static_cast<FwAssertArgType>(_status)
6270  );
6271 #endif
6272  _status = _logBuff.serializeFrom(actual);
6273  FW_ASSERT(
6274  _status == Fw::FW_SERIALIZE_OK,
6275  static_cast<FwAssertArgType>(_status)
6276  );
6277 
6278  this->logOut_out(
6279  0,
6280  _id,
6281  _logTime,
6283  _logBuff
6284  );
6285  }
6286 
6287  // Emit the event on the text log port
6288 #if FW_ENABLE_TEXT_LOGGING
6289  if (this->isConnected_logTextOut_OutputPort(0)) {
6290 #if FW_OBJECT_NAMES == 1
6291  const char* _formatString =
6292  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " write failed: expected %" PRIu32 " bytes, got %" PRIi32 "";
6293 #else
6294  const char* _formatString =
6295  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " write failed: expected %" PRIu32 " bytes, got %" PRIi32 "";
6296 #endif
6297 
6298  Fw::String cfdpClassStr;
6299  cfdpClass.toString(cfdpClassStr);
6300 
6301  Fw::TextLogString _logString;
6302  (void) _logString.format(
6303  _formatString,
6304 #if FW_OBJECT_NAMES == 1
6305  this->m_objName.toChar(),
6306 #endif
6307  "RxWriteFailed ",
6308  cfdpClassStr.toChar(),
6309  srcEid,
6310  seqNum,
6311  expected,
6312  actual
6313  );
6314 
6315  this->logTextOut_out(
6316  0,
6317  _id,
6318  _logTime,
6320  _logString
6321  );
6322  }
6323 #endif
6324  }
6325 
6328  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6329  U32 srcEid,
6330  U32 seqNum,
6331  U32 offset,
6332  U32 dataSize,
6333  U32 fileSize
6334  ) const
6335  {
6336  // Get the time
6337  Fw::Time _logTime;
6338  if (this->isConnected_timeCaller_OutputPort(0)) {
6339  this->timeCaller_out(0, _logTime);
6340  }
6341 
6343 
6344  // Emit the event on the log port
6345  if (this->isConnected_logOut_OutputPort(0)) {
6346  Fw::LogBuffer _logBuff;
6348 
6349 #if FW_AMPCS_COMPATIBLE
6350  // Serialize the number of arguments
6351  _status = _logBuff.serializeFrom(static_cast<U8>(6));
6352  FW_ASSERT(
6353  _status == Fw::FW_SERIALIZE_OK,
6354  static_cast<FwAssertArgType>(_status)
6355  );
6356 #endif
6357 
6358 #if FW_AMPCS_COMPATIBLE
6359  // Serialize the argument size
6360  _status = _logBuff.serializeFrom(
6362  );
6363  FW_ASSERT(
6364  _status == Fw::FW_SERIALIZE_OK,
6365  static_cast<FwAssertArgType>(_status)
6366  );
6367 #endif
6368  _status = _logBuff.serializeFrom(cfdpClass);
6369  FW_ASSERT(
6370  _status == Fw::FW_SERIALIZE_OK,
6371  static_cast<FwAssertArgType>(_status)
6372  );
6373 
6374 #if FW_AMPCS_COMPATIBLE
6375  // Serialize the argument size
6376  _status = _logBuff.serializeFrom(
6377  static_cast<U8>(sizeof(U32))
6378  );
6379  FW_ASSERT(
6380  _status == Fw::FW_SERIALIZE_OK,
6381  static_cast<FwAssertArgType>(_status)
6382  );
6383 #endif
6384  _status = _logBuff.serializeFrom(srcEid);
6385  FW_ASSERT(
6386  _status == Fw::FW_SERIALIZE_OK,
6387  static_cast<FwAssertArgType>(_status)
6388  );
6389 
6390 #if FW_AMPCS_COMPATIBLE
6391  // Serialize the argument size
6392  _status = _logBuff.serializeFrom(
6393  static_cast<U8>(sizeof(U32))
6394  );
6395  FW_ASSERT(
6396  _status == Fw::FW_SERIALIZE_OK,
6397  static_cast<FwAssertArgType>(_status)
6398  );
6399 #endif
6400  _status = _logBuff.serializeFrom(seqNum);
6401  FW_ASSERT(
6402  _status == Fw::FW_SERIALIZE_OK,
6403  static_cast<FwAssertArgType>(_status)
6404  );
6405 
6406 #if FW_AMPCS_COMPATIBLE
6407  // Serialize the argument size
6408  _status = _logBuff.serializeFrom(
6409  static_cast<U8>(sizeof(U32))
6410  );
6411  FW_ASSERT(
6412  _status == Fw::FW_SERIALIZE_OK,
6413  static_cast<FwAssertArgType>(_status)
6414  );
6415 #endif
6416  _status = _logBuff.serializeFrom(offset);
6417  FW_ASSERT(
6418  _status == Fw::FW_SERIALIZE_OK,
6419  static_cast<FwAssertArgType>(_status)
6420  );
6421 
6422 #if FW_AMPCS_COMPATIBLE
6423  // Serialize the argument size
6424  _status = _logBuff.serializeFrom(
6425  static_cast<U8>(sizeof(U32))
6426  );
6427  FW_ASSERT(
6428  _status == Fw::FW_SERIALIZE_OK,
6429  static_cast<FwAssertArgType>(_status)
6430  );
6431 #endif
6432  _status = _logBuff.serializeFrom(dataSize);
6433  FW_ASSERT(
6434  _status == Fw::FW_SERIALIZE_OK,
6435  static_cast<FwAssertArgType>(_status)
6436  );
6437 
6438 #if FW_AMPCS_COMPATIBLE
6439  // Serialize the argument size
6440  _status = _logBuff.serializeFrom(
6441  static_cast<U8>(sizeof(U32))
6442  );
6443  FW_ASSERT(
6444  _status == Fw::FW_SERIALIZE_OK,
6445  static_cast<FwAssertArgType>(_status)
6446  );
6447 #endif
6448  _status = _logBuff.serializeFrom(fileSize);
6449  FW_ASSERT(
6450  _status == Fw::FW_SERIALIZE_OK,
6451  static_cast<FwAssertArgType>(_status)
6452  );
6453 
6454  this->logOut_out(
6455  0,
6456  _id,
6457  _logTime,
6459  _logBuff
6460  );
6461  }
6462 
6463  // Emit the event on the text log port
6464 #if FW_ENABLE_TEXT_LOGGING
6465  if (this->isConnected_logTextOut_OutputPort(0)) {
6466 #if FW_OBJECT_NAMES == 1
6467  const char* _formatString =
6468  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " file data [%" PRIu32 ", +%" PRIu32 "] exceeds file size bound %" PRIu32 ", PDU rejected";
6469 #else
6470  const char* _formatString =
6471  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " file data [%" PRIu32 ", +%" PRIu32 "] exceeds file size bound %" PRIu32 ", PDU rejected";
6472 #endif
6473 
6474  Fw::String cfdpClassStr;
6475  cfdpClass.toString(cfdpClassStr);
6476 
6477  Fw::TextLogString _logString;
6478  (void) _logString.format(
6479  _formatString,
6480 #if FW_OBJECT_NAMES == 1
6481  this->m_objName.toChar(),
6482 #endif
6483  "RxFileDataOutOfBounds ",
6484  cfdpClassStr.toChar(),
6485  srcEid,
6486  seqNum,
6487  offset,
6488  dataSize,
6489  fileSize
6490  );
6491 
6492  this->logTextOut_out(
6493  0,
6494  _id,
6495  _logTime,
6497  _logString
6498  );
6499  }
6500 #endif
6501  }
6502 
6505  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6506  U32 srcEid,
6507  U32 seqNum,
6508  U32 expected,
6509  U32 actual
6510  ) const
6511  {
6512  // Get the time
6513  Fw::Time _logTime;
6514  if (this->isConnected_timeCaller_OutputPort(0)) {
6515  this->timeCaller_out(0, _logTime);
6516  }
6517 
6518  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILESIZEMISMATCH;
6519 
6520  // Emit the event on the log port
6521  if (this->isConnected_logOut_OutputPort(0)) {
6522  Fw::LogBuffer _logBuff;
6524 
6525 #if FW_AMPCS_COMPATIBLE
6526  // Serialize the number of arguments
6527  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6528  FW_ASSERT(
6529  _status == Fw::FW_SERIALIZE_OK,
6530  static_cast<FwAssertArgType>(_status)
6531  );
6532 #endif
6533 
6534 #if FW_AMPCS_COMPATIBLE
6535  // Serialize the argument size
6536  _status = _logBuff.serializeFrom(
6538  );
6539  FW_ASSERT(
6540  _status == Fw::FW_SERIALIZE_OK,
6541  static_cast<FwAssertArgType>(_status)
6542  );
6543 #endif
6544  _status = _logBuff.serializeFrom(cfdpClass);
6545  FW_ASSERT(
6546  _status == Fw::FW_SERIALIZE_OK,
6547  static_cast<FwAssertArgType>(_status)
6548  );
6549 
6550 #if FW_AMPCS_COMPATIBLE
6551  // Serialize the argument size
6552  _status = _logBuff.serializeFrom(
6553  static_cast<U8>(sizeof(U32))
6554  );
6555  FW_ASSERT(
6556  _status == Fw::FW_SERIALIZE_OK,
6557  static_cast<FwAssertArgType>(_status)
6558  );
6559 #endif
6560  _status = _logBuff.serializeFrom(srcEid);
6561  FW_ASSERT(
6562  _status == Fw::FW_SERIALIZE_OK,
6563  static_cast<FwAssertArgType>(_status)
6564  );
6565 
6566 #if FW_AMPCS_COMPATIBLE
6567  // Serialize the argument size
6568  _status = _logBuff.serializeFrom(
6569  static_cast<U8>(sizeof(U32))
6570  );
6571  FW_ASSERT(
6572  _status == Fw::FW_SERIALIZE_OK,
6573  static_cast<FwAssertArgType>(_status)
6574  );
6575 #endif
6576  _status = _logBuff.serializeFrom(seqNum);
6577  FW_ASSERT(
6578  _status == Fw::FW_SERIALIZE_OK,
6579  static_cast<FwAssertArgType>(_status)
6580  );
6581 
6582 #if FW_AMPCS_COMPATIBLE
6583  // Serialize the argument size
6584  _status = _logBuff.serializeFrom(
6585  static_cast<U8>(sizeof(U32))
6586  );
6587  FW_ASSERT(
6588  _status == Fw::FW_SERIALIZE_OK,
6589  static_cast<FwAssertArgType>(_status)
6590  );
6591 #endif
6592  _status = _logBuff.serializeFrom(expected);
6593  FW_ASSERT(
6594  _status == Fw::FW_SERIALIZE_OK,
6595  static_cast<FwAssertArgType>(_status)
6596  );
6597 
6598 #if FW_AMPCS_COMPATIBLE
6599  // Serialize the argument size
6600  _status = _logBuff.serializeFrom(
6601  static_cast<U8>(sizeof(U32))
6602  );
6603  FW_ASSERT(
6604  _status == Fw::FW_SERIALIZE_OK,
6605  static_cast<FwAssertArgType>(_status)
6606  );
6607 #endif
6608  _status = _logBuff.serializeFrom(actual);
6609  FW_ASSERT(
6610  _status == Fw::FW_SERIALIZE_OK,
6611  static_cast<FwAssertArgType>(_status)
6612  );
6613 
6614  this->logOut_out(
6615  0,
6616  _id,
6617  _logTime,
6619  _logBuff
6620  );
6621  }
6622 
6623  // Emit the event on the text log port
6624 #if FW_ENABLE_TEXT_LOGGING
6625  if (this->isConnected_logTextOut_OutputPort(0)) {
6626 #if FW_OBJECT_NAMES == 1
6627  const char* _formatString =
6628  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF file size mismatch: expected %" PRIu32 " got %" PRIu32 "";
6629 #else
6630  const char* _formatString =
6631  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF file size mismatch: expected %" PRIu32 " got %" PRIu32 "";
6632 #endif
6633 
6634  Fw::String cfdpClassStr;
6635  cfdpClass.toString(cfdpClassStr);
6636 
6637  Fw::TextLogString _logString;
6638  (void) _logString.format(
6639  _formatString,
6640 #if FW_OBJECT_NAMES == 1
6641  this->m_objName.toChar(),
6642 #endif
6643  "RxFileSizeMismatch ",
6644  cfdpClassStr.toChar(),
6645  srcEid,
6646  seqNum,
6647  expected,
6648  actual
6649  );
6650 
6651  this->logTextOut_out(
6652  0,
6653  _id,
6654  _logTime,
6656  _logString
6657  );
6658  }
6659 #endif
6660  }
6661 
6664  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6665  U32 srcEid,
6666  U32 seqNum
6667  ) const
6668  {
6669  // Get the time
6670  Fw::Time _logTime;
6671  if (this->isConnected_timeCaller_OutputPort(0)) {
6672  this->timeCaller_out(0, _logTime);
6673  }
6674 
6675  const FwEventIdType _id = this->getIdBase() + EVENTID_RXEOFCANCELRECEIVED;
6676 
6677  // Emit the event on the log port
6678  if (this->isConnected_logOut_OutputPort(0)) {
6679  Fw::LogBuffer _logBuff;
6681 
6682 #if FW_AMPCS_COMPATIBLE
6683  // Serialize the number of arguments
6684  _status = _logBuff.serializeFrom(static_cast<U8>(3));
6685  FW_ASSERT(
6686  _status == Fw::FW_SERIALIZE_OK,
6687  static_cast<FwAssertArgType>(_status)
6688  );
6689 #endif
6690 
6691 #if FW_AMPCS_COMPATIBLE
6692  // Serialize the argument size
6693  _status = _logBuff.serializeFrom(
6695  );
6696  FW_ASSERT(
6697  _status == Fw::FW_SERIALIZE_OK,
6698  static_cast<FwAssertArgType>(_status)
6699  );
6700 #endif
6701  _status = _logBuff.serializeFrom(cfdpClass);
6702  FW_ASSERT(
6703  _status == Fw::FW_SERIALIZE_OK,
6704  static_cast<FwAssertArgType>(_status)
6705  );
6706 
6707 #if FW_AMPCS_COMPATIBLE
6708  // Serialize the argument size
6709  _status = _logBuff.serializeFrom(
6710  static_cast<U8>(sizeof(U32))
6711  );
6712  FW_ASSERT(
6713  _status == Fw::FW_SERIALIZE_OK,
6714  static_cast<FwAssertArgType>(_status)
6715  );
6716 #endif
6717  _status = _logBuff.serializeFrom(srcEid);
6718  FW_ASSERT(
6719  _status == Fw::FW_SERIALIZE_OK,
6720  static_cast<FwAssertArgType>(_status)
6721  );
6722 
6723 #if FW_AMPCS_COMPATIBLE
6724  // Serialize the argument size
6725  _status = _logBuff.serializeFrom(
6726  static_cast<U8>(sizeof(U32))
6727  );
6728  FW_ASSERT(
6729  _status == Fw::FW_SERIALIZE_OK,
6730  static_cast<FwAssertArgType>(_status)
6731  );
6732 #endif
6733  _status = _logBuff.serializeFrom(seqNum);
6734  FW_ASSERT(
6735  _status == Fw::FW_SERIALIZE_OK,
6736  static_cast<FwAssertArgType>(_status)
6737  );
6738 
6739  this->logOut_out(
6740  0,
6741  _id,
6742  _logTime,
6744  _logBuff
6745  );
6746  }
6747 
6748  // Emit the event on the text log port
6749 #if FW_ENABLE_TEXT_LOGGING
6750  if (this->isConnected_logTextOut_OutputPort(0)) {
6751 #if FW_OBJECT_NAMES == 1
6752  const char* _formatString =
6753  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " cancelled by sender";
6754 #else
6755  const char* _formatString =
6756  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " cancelled by sender";
6757 #endif
6758 
6759  Fw::String cfdpClassStr;
6760  cfdpClass.toString(cfdpClassStr);
6761 
6762  Fw::TextLogString _logString;
6763  (void) _logString.format(
6764  _formatString,
6765 #if FW_OBJECT_NAMES == 1
6766  this->m_objName.toChar(),
6767 #endif
6768  "RxEofCancelReceived ",
6769  cfdpClassStr.toChar(),
6770  srcEid,
6771  seqNum
6772  );
6773 
6774  this->logTextOut_out(
6775  0,
6776  _id,
6777  _logTime,
6779  _logString
6780  );
6781  }
6782 #endif
6783  }
6784 
6787  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6788  U32 srcEid,
6789  U32 seqNum,
6790  U8 conditionCode
6791  ) const
6792  {
6793  // Get the time
6794  Fw::Time _logTime;
6795  if (this->isConnected_timeCaller_OutputPort(0)) {
6796  this->timeCaller_out(0, _logTime);
6797  }
6798 
6799  const FwEventIdType _id = this->getIdBase() + EVENTID_RXEOFWITHERROR;
6800 
6801  // Emit the event on the log port
6802  if (this->isConnected_logOut_OutputPort(0)) {
6803  Fw::LogBuffer _logBuff;
6805 
6806 #if FW_AMPCS_COMPATIBLE
6807  // Serialize the number of arguments
6808  _status = _logBuff.serializeFrom(static_cast<U8>(4));
6809  FW_ASSERT(
6810  _status == Fw::FW_SERIALIZE_OK,
6811  static_cast<FwAssertArgType>(_status)
6812  );
6813 #endif
6814 
6815 #if FW_AMPCS_COMPATIBLE
6816  // Serialize the argument size
6817  _status = _logBuff.serializeFrom(
6819  );
6820  FW_ASSERT(
6821  _status == Fw::FW_SERIALIZE_OK,
6822  static_cast<FwAssertArgType>(_status)
6823  );
6824 #endif
6825  _status = _logBuff.serializeFrom(cfdpClass);
6826  FW_ASSERT(
6827  _status == Fw::FW_SERIALIZE_OK,
6828  static_cast<FwAssertArgType>(_status)
6829  );
6830 
6831 #if FW_AMPCS_COMPATIBLE
6832  // Serialize the argument size
6833  _status = _logBuff.serializeFrom(
6834  static_cast<U8>(sizeof(U32))
6835  );
6836  FW_ASSERT(
6837  _status == Fw::FW_SERIALIZE_OK,
6838  static_cast<FwAssertArgType>(_status)
6839  );
6840 #endif
6841  _status = _logBuff.serializeFrom(srcEid);
6842  FW_ASSERT(
6843  _status == Fw::FW_SERIALIZE_OK,
6844  static_cast<FwAssertArgType>(_status)
6845  );
6846 
6847 #if FW_AMPCS_COMPATIBLE
6848  // Serialize the argument size
6849  _status = _logBuff.serializeFrom(
6850  static_cast<U8>(sizeof(U32))
6851  );
6852  FW_ASSERT(
6853  _status == Fw::FW_SERIALIZE_OK,
6854  static_cast<FwAssertArgType>(_status)
6855  );
6856 #endif
6857  _status = _logBuff.serializeFrom(seqNum);
6858  FW_ASSERT(
6859  _status == Fw::FW_SERIALIZE_OK,
6860  static_cast<FwAssertArgType>(_status)
6861  );
6862 
6863 #if FW_AMPCS_COMPATIBLE
6864  // Serialize the argument size
6865  _status = _logBuff.serializeFrom(
6866  static_cast<U8>(sizeof(U8))
6867  );
6868  FW_ASSERT(
6869  _status == Fw::FW_SERIALIZE_OK,
6870  static_cast<FwAssertArgType>(_status)
6871  );
6872 #endif
6873  _status = _logBuff.serializeFrom(conditionCode);
6874  FW_ASSERT(
6875  _status == Fw::FW_SERIALIZE_OK,
6876  static_cast<FwAssertArgType>(_status)
6877  );
6878 
6879  this->logOut_out(
6880  0,
6881  _id,
6882  _logTime,
6884  _logBuff
6885  );
6886  }
6887 
6888  // Emit the event on the text log port
6889 #if FW_ENABLE_TEXT_LOGGING
6890  if (this->isConnected_logTextOut_OutputPort(0)) {
6891 #if FW_OBJECT_NAMES == 1
6892  const char* _formatString =
6893  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received EOF with error condition code %" PRIu8 "";
6894 #else
6895  const char* _formatString =
6896  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received EOF with error condition code %" PRIu8 "";
6897 #endif
6898 
6899  Fw::String cfdpClassStr;
6900  cfdpClass.toString(cfdpClassStr);
6901 
6902  Fw::TextLogString _logString;
6903  (void) _logString.format(
6904  _formatString,
6905 #if FW_OBJECT_NAMES == 1
6906  this->m_objName.toChar(),
6907 #endif
6908  "RxEofWithError ",
6909  cfdpClassStr.toChar(),
6910  srcEid,
6911  seqNum,
6912  conditionCode
6913  );
6914 
6915  this->logTextOut_out(
6916  0,
6917  _id,
6918  _logTime,
6920  _logString
6921  );
6922  }
6923 #endif
6924  }
6925 
6928  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6929  U32 srcEid,
6930  U32 seqNum,
6931  U32 offset,
6932  I32 status
6933  ) const
6934  {
6935  // Get the time
6936  Fw::Time _logTime;
6937  if (this->isConnected_timeCaller_OutputPort(0)) {
6938  this->timeCaller_out(0, _logTime);
6939  }
6940 
6941  const FwEventIdType _id = this->getIdBase() + EVENTID_RXSEEKCRCFAILED;
6942 
6943  // Emit the event on the log port
6944  if (this->isConnected_logOut_OutputPort(0)) {
6945  Fw::LogBuffer _logBuff;
6947 
6948 #if FW_AMPCS_COMPATIBLE
6949  // Serialize the number of arguments
6950  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6951  FW_ASSERT(
6952  _status == Fw::FW_SERIALIZE_OK,
6953  static_cast<FwAssertArgType>(_status)
6954  );
6955 #endif
6956 
6957 #if FW_AMPCS_COMPATIBLE
6958  // Serialize the argument size
6959  _status = _logBuff.serializeFrom(
6961  );
6962  FW_ASSERT(
6963  _status == Fw::FW_SERIALIZE_OK,
6964  static_cast<FwAssertArgType>(_status)
6965  );
6966 #endif
6967  _status = _logBuff.serializeFrom(cfdpClass);
6968  FW_ASSERT(
6969  _status == Fw::FW_SERIALIZE_OK,
6970  static_cast<FwAssertArgType>(_status)
6971  );
6972 
6973 #if FW_AMPCS_COMPATIBLE
6974  // Serialize the argument size
6975  _status = _logBuff.serializeFrom(
6976  static_cast<U8>(sizeof(U32))
6977  );
6978  FW_ASSERT(
6979  _status == Fw::FW_SERIALIZE_OK,
6980  static_cast<FwAssertArgType>(_status)
6981  );
6982 #endif
6983  _status = _logBuff.serializeFrom(srcEid);
6984  FW_ASSERT(
6985  _status == Fw::FW_SERIALIZE_OK,
6986  static_cast<FwAssertArgType>(_status)
6987  );
6988 
6989 #if FW_AMPCS_COMPATIBLE
6990  // Serialize the argument size
6991  _status = _logBuff.serializeFrom(
6992  static_cast<U8>(sizeof(U32))
6993  );
6994  FW_ASSERT(
6995  _status == Fw::FW_SERIALIZE_OK,
6996  static_cast<FwAssertArgType>(_status)
6997  );
6998 #endif
6999  _status = _logBuff.serializeFrom(seqNum);
7000  FW_ASSERT(
7001  _status == Fw::FW_SERIALIZE_OK,
7002  static_cast<FwAssertArgType>(_status)
7003  );
7004 
7005 #if FW_AMPCS_COMPATIBLE
7006  // Serialize the argument size
7007  _status = _logBuff.serializeFrom(
7008  static_cast<U8>(sizeof(U32))
7009  );
7010  FW_ASSERT(
7011  _status == Fw::FW_SERIALIZE_OK,
7012  static_cast<FwAssertArgType>(_status)
7013  );
7014 #endif
7015  _status = _logBuff.serializeFrom(offset);
7016  FW_ASSERT(
7017  _status == Fw::FW_SERIALIZE_OK,
7018  static_cast<FwAssertArgType>(_status)
7019  );
7020 
7021 #if FW_AMPCS_COMPATIBLE
7022  // Serialize the argument size
7023  _status = _logBuff.serializeFrom(
7024  static_cast<U8>(sizeof(I32))
7025  );
7026  FW_ASSERT(
7027  _status == Fw::FW_SERIALIZE_OK,
7028  static_cast<FwAssertArgType>(_status)
7029  );
7030 #endif
7031  _status = _logBuff.serializeFrom(status);
7032  FW_ASSERT(
7033  _status == Fw::FW_SERIALIZE_OK,
7034  static_cast<FwAssertArgType>(_status)
7035  );
7036 
7037  this->logOut_out(
7038  0,
7039  _id,
7040  _logTime,
7042  _logBuff
7043  );
7044  }
7045 
7046  // Emit the event on the text log port
7047 #if FW_ENABLE_TEXT_LOGGING
7048  if (this->isConnected_logTextOut_OutputPort(0)) {
7049 #if FW_OBJECT_NAMES == 1
7050  const char* _formatString =
7051  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek offset %" PRIu32 " during CRC calculation, error=%" PRIi32 "";
7052 #else
7053  const char* _formatString =
7054  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek offset %" PRIu32 " during CRC calculation, error=%" PRIi32 "";
7055 #endif
7056 
7057  Fw::String cfdpClassStr;
7058  cfdpClass.toString(cfdpClassStr);
7059 
7060  Fw::TextLogString _logString;
7061  (void) _logString.format(
7062  _formatString,
7063 #if FW_OBJECT_NAMES == 1
7064  this->m_objName.toChar(),
7065 #endif
7066  "RxSeekCrcFailed ",
7067  cfdpClassStr.toChar(),
7068  srcEid,
7069  seqNum,
7070  offset,
7071  status
7072  );
7073 
7074  this->logTextOut_out(
7075  0,
7076  _id,
7077  _logTime,
7079  _logString
7080  );
7081  }
7082 #endif
7083  }
7084 
7087  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7088  U32 srcEid,
7089  U32 seqNum,
7090  U32 expected,
7091  I32 actual
7092  ) const
7093  {
7094  // Get the time
7095  Fw::Time _logTime;
7096  if (this->isConnected_timeCaller_OutputPort(0)) {
7097  this->timeCaller_out(0, _logTime);
7098  }
7099 
7100  const FwEventIdType _id = this->getIdBase() + EVENTID_RXREADCRCFAILED;
7101 
7102  // Emit the event on the log port
7103  if (this->isConnected_logOut_OutputPort(0)) {
7104  Fw::LogBuffer _logBuff;
7106 
7107 #if FW_AMPCS_COMPATIBLE
7108  // Serialize the number of arguments
7109  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7110  FW_ASSERT(
7111  _status == Fw::FW_SERIALIZE_OK,
7112  static_cast<FwAssertArgType>(_status)
7113  );
7114 #endif
7115 
7116 #if FW_AMPCS_COMPATIBLE
7117  // Serialize the argument size
7118  _status = _logBuff.serializeFrom(
7120  );
7121  FW_ASSERT(
7122  _status == Fw::FW_SERIALIZE_OK,
7123  static_cast<FwAssertArgType>(_status)
7124  );
7125 #endif
7126  _status = _logBuff.serializeFrom(cfdpClass);
7127  FW_ASSERT(
7128  _status == Fw::FW_SERIALIZE_OK,
7129  static_cast<FwAssertArgType>(_status)
7130  );
7131 
7132 #if FW_AMPCS_COMPATIBLE
7133  // Serialize the argument size
7134  _status = _logBuff.serializeFrom(
7135  static_cast<U8>(sizeof(U32))
7136  );
7137  FW_ASSERT(
7138  _status == Fw::FW_SERIALIZE_OK,
7139  static_cast<FwAssertArgType>(_status)
7140  );
7141 #endif
7142  _status = _logBuff.serializeFrom(srcEid);
7143  FW_ASSERT(
7144  _status == Fw::FW_SERIALIZE_OK,
7145  static_cast<FwAssertArgType>(_status)
7146  );
7147 
7148 #if FW_AMPCS_COMPATIBLE
7149  // Serialize the argument size
7150  _status = _logBuff.serializeFrom(
7151  static_cast<U8>(sizeof(U32))
7152  );
7153  FW_ASSERT(
7154  _status == Fw::FW_SERIALIZE_OK,
7155  static_cast<FwAssertArgType>(_status)
7156  );
7157 #endif
7158  _status = _logBuff.serializeFrom(seqNum);
7159  FW_ASSERT(
7160  _status == Fw::FW_SERIALIZE_OK,
7161  static_cast<FwAssertArgType>(_status)
7162  );
7163 
7164 #if FW_AMPCS_COMPATIBLE
7165  // Serialize the argument size
7166  _status = _logBuff.serializeFrom(
7167  static_cast<U8>(sizeof(U32))
7168  );
7169  FW_ASSERT(
7170  _status == Fw::FW_SERIALIZE_OK,
7171  static_cast<FwAssertArgType>(_status)
7172  );
7173 #endif
7174  _status = _logBuff.serializeFrom(expected);
7175  FW_ASSERT(
7176  _status == Fw::FW_SERIALIZE_OK,
7177  static_cast<FwAssertArgType>(_status)
7178  );
7179 
7180 #if FW_AMPCS_COMPATIBLE
7181  // Serialize the argument size
7182  _status = _logBuff.serializeFrom(
7183  static_cast<U8>(sizeof(I32))
7184  );
7185  FW_ASSERT(
7186  _status == Fw::FW_SERIALIZE_OK,
7187  static_cast<FwAssertArgType>(_status)
7188  );
7189 #endif
7190  _status = _logBuff.serializeFrom(actual);
7191  FW_ASSERT(
7192  _status == Fw::FW_SERIALIZE_OK,
7193  static_cast<FwAssertArgType>(_status)
7194  );
7195 
7196  this->logOut_out(
7197  0,
7198  _id,
7199  _logTime,
7201  _logBuff
7202  );
7203  }
7204 
7205  // Emit the event on the text log port
7206 #if FW_ENABLE_TEXT_LOGGING
7207  if (this->isConnected_logTextOut_OutputPort(0)) {
7208 #if FW_OBJECT_NAMES == 1
7209  const char* _formatString =
7210  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to read during CRC calculation: expected %" PRIu32 " bytes, got %" PRIi32 "";
7211 #else
7212  const char* _formatString =
7213  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to read during CRC calculation: expected %" PRIu32 " bytes, got %" PRIi32 "";
7214 #endif
7215 
7216  Fw::String cfdpClassStr;
7217  cfdpClass.toString(cfdpClassStr);
7218 
7219  Fw::TextLogString _logString;
7220  (void) _logString.format(
7221  _formatString,
7222 #if FW_OBJECT_NAMES == 1
7223  this->m_objName.toChar(),
7224 #endif
7225  "RxReadCrcFailed ",
7226  cfdpClassStr.toChar(),
7227  srcEid,
7228  seqNum,
7229  expected,
7230  actual
7231  );
7232 
7233  this->logTextOut_out(
7234  0,
7235  _id,
7236  _logTime,
7238  _logString
7239  );
7240  }
7241 #endif
7242  }
7243 
7246  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7247  U32 srcEid,
7248  U32 seqNum,
7249  U32 mdSize,
7250  U32 eofSize
7251  ) const
7252  {
7253  // Get the time
7254  Fw::Time _logTime;
7255  if (this->isConnected_timeCaller_OutputPort(0)) {
7256  this->timeCaller_out(0, _logTime);
7257  }
7258 
7259  const FwEventIdType _id = this->getIdBase() + EVENTID_RXEOFMDSIZEMISMATCH;
7260 
7261  // Emit the event on the log port
7262  if (this->isConnected_logOut_OutputPort(0)) {
7263  Fw::LogBuffer _logBuff;
7265 
7266 #if FW_AMPCS_COMPATIBLE
7267  // Serialize the number of arguments
7268  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7269  FW_ASSERT(
7270  _status == Fw::FW_SERIALIZE_OK,
7271  static_cast<FwAssertArgType>(_status)
7272  );
7273 #endif
7274 
7275 #if FW_AMPCS_COMPATIBLE
7276  // Serialize the argument size
7277  _status = _logBuff.serializeFrom(
7279  );
7280  FW_ASSERT(
7281  _status == Fw::FW_SERIALIZE_OK,
7282  static_cast<FwAssertArgType>(_status)
7283  );
7284 #endif
7285  _status = _logBuff.serializeFrom(cfdpClass);
7286  FW_ASSERT(
7287  _status == Fw::FW_SERIALIZE_OK,
7288  static_cast<FwAssertArgType>(_status)
7289  );
7290 
7291 #if FW_AMPCS_COMPATIBLE
7292  // Serialize the argument size
7293  _status = _logBuff.serializeFrom(
7294  static_cast<U8>(sizeof(U32))
7295  );
7296  FW_ASSERT(
7297  _status == Fw::FW_SERIALIZE_OK,
7298  static_cast<FwAssertArgType>(_status)
7299  );
7300 #endif
7301  _status = _logBuff.serializeFrom(srcEid);
7302  FW_ASSERT(
7303  _status == Fw::FW_SERIALIZE_OK,
7304  static_cast<FwAssertArgType>(_status)
7305  );
7306 
7307 #if FW_AMPCS_COMPATIBLE
7308  // Serialize the argument size
7309  _status = _logBuff.serializeFrom(
7310  static_cast<U8>(sizeof(U32))
7311  );
7312  FW_ASSERT(
7313  _status == Fw::FW_SERIALIZE_OK,
7314  static_cast<FwAssertArgType>(_status)
7315  );
7316 #endif
7317  _status = _logBuff.serializeFrom(seqNum);
7318  FW_ASSERT(
7319  _status == Fw::FW_SERIALIZE_OK,
7320  static_cast<FwAssertArgType>(_status)
7321  );
7322 
7323 #if FW_AMPCS_COMPATIBLE
7324  // Serialize the argument size
7325  _status = _logBuff.serializeFrom(
7326  static_cast<U8>(sizeof(U32))
7327  );
7328  FW_ASSERT(
7329  _status == Fw::FW_SERIALIZE_OK,
7330  static_cast<FwAssertArgType>(_status)
7331  );
7332 #endif
7333  _status = _logBuff.serializeFrom(mdSize);
7334  FW_ASSERT(
7335  _status == Fw::FW_SERIALIZE_OK,
7336  static_cast<FwAssertArgType>(_status)
7337  );
7338 
7339 #if FW_AMPCS_COMPATIBLE
7340  // Serialize the argument size
7341  _status = _logBuff.serializeFrom(
7342  static_cast<U8>(sizeof(U32))
7343  );
7344  FW_ASSERT(
7345  _status == Fw::FW_SERIALIZE_OK,
7346  static_cast<FwAssertArgType>(_status)
7347  );
7348 #endif
7349  _status = _logBuff.serializeFrom(eofSize);
7350  FW_ASSERT(
7351  _status == Fw::FW_SERIALIZE_OK,
7352  static_cast<FwAssertArgType>(_status)
7353  );
7354 
7355  this->logOut_out(
7356  0,
7357  _id,
7358  _logTime,
7360  _logBuff
7361  );
7362  }
7363 
7364  // Emit the event on the text log port
7365 #if FW_ENABLE_TEXT_LOGGING
7366  if (this->isConnected_logTextOut_OutputPort(0)) {
7367 #if FW_OBJECT_NAMES == 1
7368  const char* _formatString =
7369  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF/metadata size mismatch: metadata=%" PRIu32 ", EOF=%" PRIu32 "";
7370 #else
7371  const char* _formatString =
7372  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF/metadata size mismatch: metadata=%" PRIu32 ", EOF=%" PRIu32 "";
7373 #endif
7374 
7375  Fw::String cfdpClassStr;
7376  cfdpClass.toString(cfdpClassStr);
7377 
7378  Fw::TextLogString _logString;
7379  (void) _logString.format(
7380  _formatString,
7381 #if FW_OBJECT_NAMES == 1
7382  this->m_objName.toChar(),
7383 #endif
7384  "RxEofMdSizeMismatch ",
7385  cfdpClassStr.toChar(),
7386  srcEid,
7387  seqNum,
7388  mdSize,
7389  eofSize
7390  );
7391 
7392  this->logTextOut_out(
7393  0,
7394  _id,
7395  _logTime,
7397  _logString
7398  );
7399  }
7400 #endif
7401  }
7402 
7405  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7406  U32 srcEid,
7407  U32 seqNum,
7408  const Fw::StringBase& tempFile,
7409  const Fw::StringBase& finalFile,
7410  I32 status
7411  ) const
7412  {
7413  // Get the time
7414  Fw::Time _logTime;
7415  if (this->isConnected_timeCaller_OutputPort(0)) {
7416  this->timeCaller_out(0, _logTime);
7417  }
7418 
7419  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILERENAMEFAILED;
7420 
7421  // Emit the event on the log port
7422  if (this->isConnected_logOut_OutputPort(0)) {
7423  Fw::LogBuffer _logBuff;
7425 
7426 #if FW_AMPCS_COMPATIBLE
7427  // Serialize the number of arguments
7428  _status = _logBuff.serializeFrom(static_cast<U8>(6));
7429  FW_ASSERT(
7430  _status == Fw::FW_SERIALIZE_OK,
7431  static_cast<FwAssertArgType>(_status)
7432  );
7433 #endif
7434 
7435 #if FW_AMPCS_COMPATIBLE
7436  // Serialize the argument size
7437  _status = _logBuff.serializeFrom(
7439  );
7440  FW_ASSERT(
7441  _status == Fw::FW_SERIALIZE_OK,
7442  static_cast<FwAssertArgType>(_status)
7443  );
7444 #endif
7445  _status = _logBuff.serializeFrom(cfdpClass);
7446  FW_ASSERT(
7447  _status == Fw::FW_SERIALIZE_OK,
7448  static_cast<FwAssertArgType>(_status)
7449  );
7450 
7451 #if FW_AMPCS_COMPATIBLE
7452  // Serialize the argument size
7453  _status = _logBuff.serializeFrom(
7454  static_cast<U8>(sizeof(U32))
7455  );
7456  FW_ASSERT(
7457  _status == Fw::FW_SERIALIZE_OK,
7458  static_cast<FwAssertArgType>(_status)
7459  );
7460 #endif
7461  _status = _logBuff.serializeFrom(srcEid);
7462  FW_ASSERT(
7463  _status == Fw::FW_SERIALIZE_OK,
7464  static_cast<FwAssertArgType>(_status)
7465  );
7466 
7467 #if FW_AMPCS_COMPATIBLE
7468  // Serialize the argument size
7469  _status = _logBuff.serializeFrom(
7470  static_cast<U8>(sizeof(U32))
7471  );
7472  FW_ASSERT(
7473  _status == Fw::FW_SERIALIZE_OK,
7474  static_cast<FwAssertArgType>(_status)
7475  );
7476 #endif
7477  _status = _logBuff.serializeFrom(seqNum);
7478  FW_ASSERT(
7479  _status == Fw::FW_SERIALIZE_OK,
7480  static_cast<FwAssertArgType>(_status)
7481  );
7482 
7483  _status = tempFile.serializeTo(
7484  _logBuff,
7485  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
7486  );
7487  FW_ASSERT(
7488  _status == Fw::FW_SERIALIZE_OK,
7489  static_cast<FwAssertArgType>(_status)
7490  );
7491 
7492  _status = finalFile.serializeTo(
7493  _logBuff,
7494  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
7495  );
7496  FW_ASSERT(
7497  _status == Fw::FW_SERIALIZE_OK,
7498  static_cast<FwAssertArgType>(_status)
7499  );
7500 
7501 #if FW_AMPCS_COMPATIBLE
7502  // Serialize the argument size
7503  _status = _logBuff.serializeFrom(
7504  static_cast<U8>(sizeof(I32))
7505  );
7506  FW_ASSERT(
7507  _status == Fw::FW_SERIALIZE_OK,
7508  static_cast<FwAssertArgType>(_status)
7509  );
7510 #endif
7511  _status = _logBuff.serializeFrom(status);
7512  FW_ASSERT(
7513  _status == Fw::FW_SERIALIZE_OK,
7514  static_cast<FwAssertArgType>(_status)
7515  );
7516 
7517  this->logOut_out(
7518  0,
7519  _id,
7520  _logTime,
7522  _logBuff
7523  );
7524  }
7525 
7526  // Emit the event on the text log port
7527 #if FW_ENABLE_TEXT_LOGGING
7528  if (this->isConnected_logTextOut_OutputPort(0)) {
7529 #if FW_OBJECT_NAMES == 1
7530  const char* _formatString =
7531  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to rename %s to %s, error=%" PRIi32 "";
7532 #else
7533  const char* _formatString =
7534  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to rename %s to %s, error=%" PRIi32 "";
7535 #endif
7536 
7537  Fw::String cfdpClassStr;
7538  cfdpClass.toString(cfdpClassStr);
7539 
7540  Fw::TextLogString _logString;
7541  (void) _logString.format(
7542  _formatString,
7543 #if FW_OBJECT_NAMES == 1
7544  this->m_objName.toChar(),
7545 #endif
7546  "RxFileRenameFailed ",
7547  cfdpClassStr.toChar(),
7548  srcEid,
7549  seqNum,
7550  tempFile.toChar(),
7551  finalFile.toChar(),
7552  status
7553  );
7554 
7555  this->logTextOut_out(
7556  0,
7557  _id,
7558  _logTime,
7560  _logString
7561  );
7562  }
7563 #endif
7564  }
7565 
7568  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7569  U32 srcEid,
7570  U32 seqNum,
7571  const Fw::StringBase& filename,
7572  I32 status
7573  ) const
7574  {
7575  // Get the time
7576  Fw::Time _logTime;
7577  if (this->isConnected_timeCaller_OutputPort(0)) {
7578  this->timeCaller_out(0, _logTime);
7579  }
7580 
7581  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILEREOPENFAILED;
7582 
7583  // Emit the event on the log port
7584  if (this->isConnected_logOut_OutputPort(0)) {
7585  Fw::LogBuffer _logBuff;
7587 
7588 #if FW_AMPCS_COMPATIBLE
7589  // Serialize the number of arguments
7590  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7591  FW_ASSERT(
7592  _status == Fw::FW_SERIALIZE_OK,
7593  static_cast<FwAssertArgType>(_status)
7594  );
7595 #endif
7596 
7597 #if FW_AMPCS_COMPATIBLE
7598  // Serialize the argument size
7599  _status = _logBuff.serializeFrom(
7601  );
7602  FW_ASSERT(
7603  _status == Fw::FW_SERIALIZE_OK,
7604  static_cast<FwAssertArgType>(_status)
7605  );
7606 #endif
7607  _status = _logBuff.serializeFrom(cfdpClass);
7608  FW_ASSERT(
7609  _status == Fw::FW_SERIALIZE_OK,
7610  static_cast<FwAssertArgType>(_status)
7611  );
7612 
7613 #if FW_AMPCS_COMPATIBLE
7614  // Serialize the argument size
7615  _status = _logBuff.serializeFrom(
7616  static_cast<U8>(sizeof(U32))
7617  );
7618  FW_ASSERT(
7619  _status == Fw::FW_SERIALIZE_OK,
7620  static_cast<FwAssertArgType>(_status)
7621  );
7622 #endif
7623  _status = _logBuff.serializeFrom(srcEid);
7624  FW_ASSERT(
7625  _status == Fw::FW_SERIALIZE_OK,
7626  static_cast<FwAssertArgType>(_status)
7627  );
7628 
7629 #if FW_AMPCS_COMPATIBLE
7630  // Serialize the argument size
7631  _status = _logBuff.serializeFrom(
7632  static_cast<U8>(sizeof(U32))
7633  );
7634  FW_ASSERT(
7635  _status == Fw::FW_SERIALIZE_OK,
7636  static_cast<FwAssertArgType>(_status)
7637  );
7638 #endif
7639  _status = _logBuff.serializeFrom(seqNum);
7640  FW_ASSERT(
7641  _status == Fw::FW_SERIALIZE_OK,
7642  static_cast<FwAssertArgType>(_status)
7643  );
7644 
7645  _status = filename.serializeTo(
7646  _logBuff,
7647  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
7648  );
7649  FW_ASSERT(
7650  _status == Fw::FW_SERIALIZE_OK,
7651  static_cast<FwAssertArgType>(_status)
7652  );
7653 
7654 #if FW_AMPCS_COMPATIBLE
7655  // Serialize the argument size
7656  _status = _logBuff.serializeFrom(
7657  static_cast<U8>(sizeof(I32))
7658  );
7659  FW_ASSERT(
7660  _status == Fw::FW_SERIALIZE_OK,
7661  static_cast<FwAssertArgType>(_status)
7662  );
7663 #endif
7664  _status = _logBuff.serializeFrom(status);
7665  FW_ASSERT(
7666  _status == Fw::FW_SERIALIZE_OK,
7667  static_cast<FwAssertArgType>(_status)
7668  );
7669 
7670  this->logOut_out(
7671  0,
7672  _id,
7673  _logTime,
7675  _logBuff
7676  );
7677  }
7678 
7679  // Emit the event on the text log port
7680 #if FW_ENABLE_TEXT_LOGGING
7681  if (this->isConnected_logTextOut_OutputPort(0)) {
7682 #if FW_OBJECT_NAMES == 1
7683  const char* _formatString =
7684  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to reopen file %s after rename, error=%" PRIi32 "";
7685 #else
7686  const char* _formatString =
7687  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to reopen file %s after rename, error=%" PRIi32 "";
7688 #endif
7689 
7690  Fw::String cfdpClassStr;
7691  cfdpClass.toString(cfdpClassStr);
7692 
7693  Fw::TextLogString _logString;
7694  (void) _logString.format(
7695  _formatString,
7696 #if FW_OBJECT_NAMES == 1
7697  this->m_objName.toChar(),
7698 #endif
7699  "RxFileReopenFailed ",
7700  cfdpClassStr.toChar(),
7701  srcEid,
7702  seqNum,
7703  filename.toChar(),
7704  status
7705  );
7706 
7707  this->logTextOut_out(
7708  0,
7709  _id,
7710  _logTime,
7712  _logString
7713  );
7714  }
7715 #endif
7716  }
7717 
7720  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7721  U32 srcEid,
7722  U32 seqNum
7723  ) const
7724  {
7725  // Get the time
7726  Fw::Time _logTime;
7727  if (this->isConnected_timeCaller_OutputPort(0)) {
7728  this->timeCaller_out(0, _logTime);
7729  }
7730 
7731  const FwEventIdType _id = this->getIdBase() + EVENTID_RXINACTIVITYTIMEOUT;
7732 
7733  // Emit the event on the log port
7734  if (this->isConnected_logOut_OutputPort(0)) {
7735  Fw::LogBuffer _logBuff;
7737 
7738 #if FW_AMPCS_COMPATIBLE
7739  // Serialize the number of arguments
7740  _status = _logBuff.serializeFrom(static_cast<U8>(3));
7741  FW_ASSERT(
7742  _status == Fw::FW_SERIALIZE_OK,
7743  static_cast<FwAssertArgType>(_status)
7744  );
7745 #endif
7746 
7747 #if FW_AMPCS_COMPATIBLE
7748  // Serialize the argument size
7749  _status = _logBuff.serializeFrom(
7751  );
7752  FW_ASSERT(
7753  _status == Fw::FW_SERIALIZE_OK,
7754  static_cast<FwAssertArgType>(_status)
7755  );
7756 #endif
7757  _status = _logBuff.serializeFrom(cfdpClass);
7758  FW_ASSERT(
7759  _status == Fw::FW_SERIALIZE_OK,
7760  static_cast<FwAssertArgType>(_status)
7761  );
7762 
7763 #if FW_AMPCS_COMPATIBLE
7764  // Serialize the argument size
7765  _status = _logBuff.serializeFrom(
7766  static_cast<U8>(sizeof(U32))
7767  );
7768  FW_ASSERT(
7769  _status == Fw::FW_SERIALIZE_OK,
7770  static_cast<FwAssertArgType>(_status)
7771  );
7772 #endif
7773  _status = _logBuff.serializeFrom(srcEid);
7774  FW_ASSERT(
7775  _status == Fw::FW_SERIALIZE_OK,
7776  static_cast<FwAssertArgType>(_status)
7777  );
7778 
7779 #if FW_AMPCS_COMPATIBLE
7780  // Serialize the argument size
7781  _status = _logBuff.serializeFrom(
7782  static_cast<U8>(sizeof(U32))
7783  );
7784  FW_ASSERT(
7785  _status == Fw::FW_SERIALIZE_OK,
7786  static_cast<FwAssertArgType>(_status)
7787  );
7788 #endif
7789  _status = _logBuff.serializeFrom(seqNum);
7790  FW_ASSERT(
7791  _status == Fw::FW_SERIALIZE_OK,
7792  static_cast<FwAssertArgType>(_status)
7793  );
7794 
7795  this->logOut_out(
7796  0,
7797  _id,
7798  _logTime,
7800  _logBuff
7801  );
7802  }
7803 
7804  // Emit the event on the text log port
7805 #if FW_ENABLE_TEXT_LOGGING
7806  if (this->isConnected_logTextOut_OutputPort(0)) {
7807 #if FW_OBJECT_NAMES == 1
7808  const char* _formatString =
7809  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
7810 #else
7811  const char* _formatString =
7812  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
7813 #endif
7814 
7815  Fw::String cfdpClassStr;
7816  cfdpClass.toString(cfdpClassStr);
7817 
7818  Fw::TextLogString _logString;
7819  (void) _logString.format(
7820  _formatString,
7821 #if FW_OBJECT_NAMES == 1
7822  this->m_objName.toChar(),
7823 #endif
7824  "RxInactivityTimeout ",
7825  cfdpClassStr.toChar(),
7826  srcEid,
7827  seqNum
7828  );
7829 
7830  this->logTextOut_out(
7831  0,
7832  _id,
7833  _logTime,
7835  _logString
7836  );
7837  }
7838 #endif
7839  }
7840 
7843  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7844  U32 srcEid,
7845  U32 seqNum,
7846  U8 directiveCode,
7847  U8 substate
7848  ) const
7849  {
7850  // Get the time
7851  Fw::Time _logTime;
7852  if (this->isConnected_timeCaller_OutputPort(0)) {
7853  this->timeCaller_out(0, _logTime);
7854  }
7855 
7857 
7858  // Emit the event on the log port
7859  if (this->isConnected_logOut_OutputPort(0)) {
7860  Fw::LogBuffer _logBuff;
7862 
7863 #if FW_AMPCS_COMPATIBLE
7864  // Serialize the number of arguments
7865  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7866  FW_ASSERT(
7867  _status == Fw::FW_SERIALIZE_OK,
7868  static_cast<FwAssertArgType>(_status)
7869  );
7870 #endif
7871 
7872 #if FW_AMPCS_COMPATIBLE
7873  // Serialize the argument size
7874  _status = _logBuff.serializeFrom(
7876  );
7877  FW_ASSERT(
7878  _status == Fw::FW_SERIALIZE_OK,
7879  static_cast<FwAssertArgType>(_status)
7880  );
7881 #endif
7882  _status = _logBuff.serializeFrom(cfdpClass);
7883  FW_ASSERT(
7884  _status == Fw::FW_SERIALIZE_OK,
7885  static_cast<FwAssertArgType>(_status)
7886  );
7887 
7888 #if FW_AMPCS_COMPATIBLE
7889  // Serialize the argument size
7890  _status = _logBuff.serializeFrom(
7891  static_cast<U8>(sizeof(U32))
7892  );
7893  FW_ASSERT(
7894  _status == Fw::FW_SERIALIZE_OK,
7895  static_cast<FwAssertArgType>(_status)
7896  );
7897 #endif
7898  _status = _logBuff.serializeFrom(srcEid);
7899  FW_ASSERT(
7900  _status == Fw::FW_SERIALIZE_OK,
7901  static_cast<FwAssertArgType>(_status)
7902  );
7903 
7904 #if FW_AMPCS_COMPATIBLE
7905  // Serialize the argument size
7906  _status = _logBuff.serializeFrom(
7907  static_cast<U8>(sizeof(U32))
7908  );
7909  FW_ASSERT(
7910  _status == Fw::FW_SERIALIZE_OK,
7911  static_cast<FwAssertArgType>(_status)
7912  );
7913 #endif
7914  _status = _logBuff.serializeFrom(seqNum);
7915  FW_ASSERT(
7916  _status == Fw::FW_SERIALIZE_OK,
7917  static_cast<FwAssertArgType>(_status)
7918  );
7919 
7920 #if FW_AMPCS_COMPATIBLE
7921  // Serialize the argument size
7922  _status = _logBuff.serializeFrom(
7923  static_cast<U8>(sizeof(U8))
7924  );
7925  FW_ASSERT(
7926  _status == Fw::FW_SERIALIZE_OK,
7927  static_cast<FwAssertArgType>(_status)
7928  );
7929 #endif
7930  _status = _logBuff.serializeFrom(directiveCode);
7931  FW_ASSERT(
7932  _status == Fw::FW_SERIALIZE_OK,
7933  static_cast<FwAssertArgType>(_status)
7934  );
7935 
7936 #if FW_AMPCS_COMPATIBLE
7937  // Serialize the argument size
7938  _status = _logBuff.serializeFrom(
7939  static_cast<U8>(sizeof(U8))
7940  );
7941  FW_ASSERT(
7942  _status == Fw::FW_SERIALIZE_OK,
7943  static_cast<FwAssertArgType>(_status)
7944  );
7945 #endif
7946  _status = _logBuff.serializeFrom(substate);
7947  FW_ASSERT(
7948  _status == Fw::FW_SERIALIZE_OK,
7949  static_cast<FwAssertArgType>(_status)
7950  );
7951 
7952  this->logOut_out(
7953  0,
7954  _id,
7955  _logTime,
7957  _logBuff
7958  );
7959  }
7960 
7961  // Emit the event on the text log port
7962 #if FW_ENABLE_TEXT_LOGGING
7963  if (this->isConnected_logTextOut_OutputPort(0)) {
7964 #if FW_OBJECT_NAMES == 1
7965  const char* _formatString =
7966  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
7967 #else
7968  const char* _formatString =
7969  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
7970 #endif
7971 
7972  Fw::String cfdpClassStr;
7973  cfdpClass.toString(cfdpClassStr);
7974 
7975  Fw::TextLogString _logString;
7976  (void) _logString.format(
7977  _formatString,
7978 #if FW_OBJECT_NAMES == 1
7979  this->m_objName.toChar(),
7980 #endif
7981  "RxInvalidDirectiveCode ",
7982  cfdpClassStr.toChar(),
7983  srcEid,
7984  seqNum,
7985  directiveCode,
7986  substate
7987  );
7988 
7989  this->logTextOut_out(
7990  0,
7991  _id,
7992  _logTime,
7994  _logString
7995  );
7996  }
7997 #endif
7998  }
7999 
8002  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8003  U32 srcEid,
8004  U32 seqNum
8005  ) const
8006  {
8007  // Get the time
8008  Fw::Time _logTime;
8009  if (this->isConnected_timeCaller_OutputPort(0)) {
8010  this->timeCaller_out(0, _logTime);
8011  }
8012 
8013  const FwEventIdType _id = this->getIdBase() + EVENTID_TXACKLIMITREACHED;
8014 
8015  // Emit the event on the log port
8016  if (this->isConnected_logOut_OutputPort(0)) {
8017  Fw::LogBuffer _logBuff;
8019 
8020 #if FW_AMPCS_COMPATIBLE
8021  // Serialize the number of arguments
8022  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8023  FW_ASSERT(
8024  _status == Fw::FW_SERIALIZE_OK,
8025  static_cast<FwAssertArgType>(_status)
8026  );
8027 #endif
8028 
8029 #if FW_AMPCS_COMPATIBLE
8030  // Serialize the argument size
8031  _status = _logBuff.serializeFrom(
8033  );
8034  FW_ASSERT(
8035  _status == Fw::FW_SERIALIZE_OK,
8036  static_cast<FwAssertArgType>(_status)
8037  );
8038 #endif
8039  _status = _logBuff.serializeFrom(cfdpClass);
8040  FW_ASSERT(
8041  _status == Fw::FW_SERIALIZE_OK,
8042  static_cast<FwAssertArgType>(_status)
8043  );
8044 
8045 #if FW_AMPCS_COMPATIBLE
8046  // Serialize the argument size
8047  _status = _logBuff.serializeFrom(
8048  static_cast<U8>(sizeof(U32))
8049  );
8050  FW_ASSERT(
8051  _status == Fw::FW_SERIALIZE_OK,
8052  static_cast<FwAssertArgType>(_status)
8053  );
8054 #endif
8055  _status = _logBuff.serializeFrom(srcEid);
8056  FW_ASSERT(
8057  _status == Fw::FW_SERIALIZE_OK,
8058  static_cast<FwAssertArgType>(_status)
8059  );
8060 
8061 #if FW_AMPCS_COMPATIBLE
8062  // Serialize the argument size
8063  _status = _logBuff.serializeFrom(
8064  static_cast<U8>(sizeof(U32))
8065  );
8066  FW_ASSERT(
8067  _status == Fw::FW_SERIALIZE_OK,
8068  static_cast<FwAssertArgType>(_status)
8069  );
8070 #endif
8071  _status = _logBuff.serializeFrom(seqNum);
8072  FW_ASSERT(
8073  _status == Fw::FW_SERIALIZE_OK,
8074  static_cast<FwAssertArgType>(_status)
8075  );
8076 
8077  this->logOut_out(
8078  0,
8079  _id,
8080  _logTime,
8082  _logBuff
8083  );
8084  }
8085 
8086  // Emit the event on the text log port
8087 #if FW_ENABLE_TEXT_LOGGING
8088  if (this->isConnected_logTextOut_OutputPort(0)) {
8089 #if FW_OBJECT_NAMES == 1
8090  const char* _formatString =
8091  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " ACK limit reached, no eof-ack received";
8092 #else
8093  const char* _formatString =
8094  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " ACK limit reached, no eof-ack received";
8095 #endif
8096 
8097  Fw::String cfdpClassStr;
8098  cfdpClass.toString(cfdpClassStr);
8099 
8100  Fw::TextLogString _logString;
8101  (void) _logString.format(
8102  _formatString,
8103 #if FW_OBJECT_NAMES == 1
8104  this->m_objName.toChar(),
8105 #endif
8106  "TxAckLimitReached ",
8107  cfdpClassStr.toChar(),
8108  srcEid,
8109  seqNum
8110  );
8111 
8112  this->logTextOut_out(
8113  0,
8114  _id,
8115  _logTime,
8117  _logString
8118  );
8119  }
8120 #endif
8121  }
8122 
8125  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8126  U32 srcEid,
8127  U32 seqNum
8128  ) const
8129  {
8130  // Get the time
8131  Fw::Time _logTime;
8132  if (this->isConnected_timeCaller_OutputPort(0)) {
8133  this->timeCaller_out(0, _logTime);
8134  }
8135 
8136  const FwEventIdType _id = this->getIdBase() + EVENTID_TXINACTIVITYTIMEOUT;
8137 
8138  // Emit the event on the log port
8139  if (this->isConnected_logOut_OutputPort(0)) {
8140  Fw::LogBuffer _logBuff;
8142 
8143 #if FW_AMPCS_COMPATIBLE
8144  // Serialize the number of arguments
8145  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8146  FW_ASSERT(
8147  _status == Fw::FW_SERIALIZE_OK,
8148  static_cast<FwAssertArgType>(_status)
8149  );
8150 #endif
8151 
8152 #if FW_AMPCS_COMPATIBLE
8153  // Serialize the argument size
8154  _status = _logBuff.serializeFrom(
8156  );
8157  FW_ASSERT(
8158  _status == Fw::FW_SERIALIZE_OK,
8159  static_cast<FwAssertArgType>(_status)
8160  );
8161 #endif
8162  _status = _logBuff.serializeFrom(cfdpClass);
8163  FW_ASSERT(
8164  _status == Fw::FW_SERIALIZE_OK,
8165  static_cast<FwAssertArgType>(_status)
8166  );
8167 
8168 #if FW_AMPCS_COMPATIBLE
8169  // Serialize the argument size
8170  _status = _logBuff.serializeFrom(
8171  static_cast<U8>(sizeof(U32))
8172  );
8173  FW_ASSERT(
8174  _status == Fw::FW_SERIALIZE_OK,
8175  static_cast<FwAssertArgType>(_status)
8176  );
8177 #endif
8178  _status = _logBuff.serializeFrom(srcEid);
8179  FW_ASSERT(
8180  _status == Fw::FW_SERIALIZE_OK,
8181  static_cast<FwAssertArgType>(_status)
8182  );
8183 
8184 #if FW_AMPCS_COMPATIBLE
8185  // Serialize the argument size
8186  _status = _logBuff.serializeFrom(
8187  static_cast<U8>(sizeof(U32))
8188  );
8189  FW_ASSERT(
8190  _status == Fw::FW_SERIALIZE_OK,
8191  static_cast<FwAssertArgType>(_status)
8192  );
8193 #endif
8194  _status = _logBuff.serializeFrom(seqNum);
8195  FW_ASSERT(
8196  _status == Fw::FW_SERIALIZE_OK,
8197  static_cast<FwAssertArgType>(_status)
8198  );
8199 
8200  this->logOut_out(
8201  0,
8202  _id,
8203  _logTime,
8205  _logBuff
8206  );
8207  }
8208 
8209  // Emit the event on the text log port
8210 #if FW_ENABLE_TEXT_LOGGING
8211  if (this->isConnected_logTextOut_OutputPort(0)) {
8212 #if FW_OBJECT_NAMES == 1
8213  const char* _formatString =
8214  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
8215 #else
8216  const char* _formatString =
8217  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
8218 #endif
8219 
8220  Fw::String cfdpClassStr;
8221  cfdpClass.toString(cfdpClassStr);
8222 
8223  Fw::TextLogString _logString;
8224  (void) _logString.format(
8225  _formatString,
8226 #if FW_OBJECT_NAMES == 1
8227  this->m_objName.toChar(),
8228 #endif
8229  "TxInactivityTimeout ",
8230  cfdpClassStr.toChar(),
8231  srcEid,
8232  seqNum
8233  );
8234 
8235  this->logTextOut_out(
8236  0,
8237  _id,
8238  _logTime,
8240  _logString
8241  );
8242  }
8243 #endif
8244  }
8245 
8248  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8249  U32 srcEid,
8250  U32 seqNum,
8251  const Fw::StringBase& filename
8252  ) const
8253  {
8254  // Get the time
8255  Fw::Time _logTime;
8256  if (this->isConnected_timeCaller_OutputPort(0)) {
8257  this->timeCaller_out(0, _logTime);
8258  }
8259 
8260  const FwEventIdType _id = this->getIdBase() + EVENTID_TXZEROLENGTHFILE;
8261 
8262  // Emit the event on the log port
8263  if (this->isConnected_logOut_OutputPort(0)) {
8264  Fw::LogBuffer _logBuff;
8266 
8267 #if FW_AMPCS_COMPATIBLE
8268  // Serialize the number of arguments
8269  _status = _logBuff.serializeFrom(static_cast<U8>(4));
8270  FW_ASSERT(
8271  _status == Fw::FW_SERIALIZE_OK,
8272  static_cast<FwAssertArgType>(_status)
8273  );
8274 #endif
8275 
8276 #if FW_AMPCS_COMPATIBLE
8277  // Serialize the argument size
8278  _status = _logBuff.serializeFrom(
8280  );
8281  FW_ASSERT(
8282  _status == Fw::FW_SERIALIZE_OK,
8283  static_cast<FwAssertArgType>(_status)
8284  );
8285 #endif
8286  _status = _logBuff.serializeFrom(cfdpClass);
8287  FW_ASSERT(
8288  _status == Fw::FW_SERIALIZE_OK,
8289  static_cast<FwAssertArgType>(_status)
8290  );
8291 
8292 #if FW_AMPCS_COMPATIBLE
8293  // Serialize the argument size
8294  _status = _logBuff.serializeFrom(
8295  static_cast<U8>(sizeof(U32))
8296  );
8297  FW_ASSERT(
8298  _status == Fw::FW_SERIALIZE_OK,
8299  static_cast<FwAssertArgType>(_status)
8300  );
8301 #endif
8302  _status = _logBuff.serializeFrom(srcEid);
8303  FW_ASSERT(
8304  _status == Fw::FW_SERIALIZE_OK,
8305  static_cast<FwAssertArgType>(_status)
8306  );
8307 
8308 #if FW_AMPCS_COMPATIBLE
8309  // Serialize the argument size
8310  _status = _logBuff.serializeFrom(
8311  static_cast<U8>(sizeof(U32))
8312  );
8313  FW_ASSERT(
8314  _status == Fw::FW_SERIALIZE_OK,
8315  static_cast<FwAssertArgType>(_status)
8316  );
8317 #endif
8318  _status = _logBuff.serializeFrom(seqNum);
8319  FW_ASSERT(
8320  _status == Fw::FW_SERIALIZE_OK,
8321  static_cast<FwAssertArgType>(_status)
8322  );
8323 
8324  _status = filename.serializeTo(
8325  _logBuff,
8326  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
8327  );
8328  FW_ASSERT(
8329  _status == Fw::FW_SERIALIZE_OK,
8330  static_cast<FwAssertArgType>(_status)
8331  );
8332 
8333  this->logOut_out(
8334  0,
8335  _id,
8336  _logTime,
8338  _logBuff
8339  );
8340  }
8341 
8342  // Emit the event on the text log port
8343 #if FW_ENABLE_TEXT_LOGGING
8344  if (this->isConnected_logTextOut_OutputPort(0)) {
8345 #if FW_OBJECT_NAMES == 1
8346  const char* _formatString =
8347  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " cannot transfer zero-length file %s";
8348 #else
8349  const char* _formatString =
8350  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " cannot transfer zero-length file %s";
8351 #endif
8352 
8353  Fw::String cfdpClassStr;
8354  cfdpClass.toString(cfdpClassStr);
8355 
8356  Fw::TextLogString _logString;
8357  (void) _logString.format(
8358  _formatString,
8359 #if FW_OBJECT_NAMES == 1
8360  this->m_objName.toChar(),
8361 #endif
8362  "TxZeroLengthFile ",
8363  cfdpClassStr.toChar(),
8364  srcEid,
8365  seqNum,
8366  filename.toChar()
8367  );
8368 
8369  this->logTextOut_out(
8370  0,
8371  _id,
8372  _logTime,
8374  _logString
8375  );
8376  }
8377 #endif
8378  }
8379 
8382  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8383  U32 srcEid,
8384  U32 seqNum,
8385  const Fw::StringBase& filename,
8386  I32 status
8387  ) const
8388  {
8389  // Get the time
8390  Fw::Time _logTime;
8391  if (this->isConnected_timeCaller_OutputPort(0)) {
8392  this->timeCaller_out(0, _logTime);
8393  }
8394 
8395  const FwEventIdType _id = this->getIdBase() + EVENTID_TXFILEOPENFAILED;
8396 
8397  // Emit the event on the log port
8398  if (this->isConnected_logOut_OutputPort(0)) {
8399  Fw::LogBuffer _logBuff;
8401 
8402 #if FW_AMPCS_COMPATIBLE
8403  // Serialize the number of arguments
8404  _status = _logBuff.serializeFrom(static_cast<U8>(5));
8405  FW_ASSERT(
8406  _status == Fw::FW_SERIALIZE_OK,
8407  static_cast<FwAssertArgType>(_status)
8408  );
8409 #endif
8410 
8411 #if FW_AMPCS_COMPATIBLE
8412  // Serialize the argument size
8413  _status = _logBuff.serializeFrom(
8415  );
8416  FW_ASSERT(
8417  _status == Fw::FW_SERIALIZE_OK,
8418  static_cast<FwAssertArgType>(_status)
8419  );
8420 #endif
8421  _status = _logBuff.serializeFrom(cfdpClass);
8422  FW_ASSERT(
8423  _status == Fw::FW_SERIALIZE_OK,
8424  static_cast<FwAssertArgType>(_status)
8425  );
8426 
8427 #if FW_AMPCS_COMPATIBLE
8428  // Serialize the argument size
8429  _status = _logBuff.serializeFrom(
8430  static_cast<U8>(sizeof(U32))
8431  );
8432  FW_ASSERT(
8433  _status == Fw::FW_SERIALIZE_OK,
8434  static_cast<FwAssertArgType>(_status)
8435  );
8436 #endif
8437  _status = _logBuff.serializeFrom(srcEid);
8438  FW_ASSERT(
8439  _status == Fw::FW_SERIALIZE_OK,
8440  static_cast<FwAssertArgType>(_status)
8441  );
8442 
8443 #if FW_AMPCS_COMPATIBLE
8444  // Serialize the argument size
8445  _status = _logBuff.serializeFrom(
8446  static_cast<U8>(sizeof(U32))
8447  );
8448  FW_ASSERT(
8449  _status == Fw::FW_SERIALIZE_OK,
8450  static_cast<FwAssertArgType>(_status)
8451  );
8452 #endif
8453  _status = _logBuff.serializeFrom(seqNum);
8454  FW_ASSERT(
8455  _status == Fw::FW_SERIALIZE_OK,
8456  static_cast<FwAssertArgType>(_status)
8457  );
8458 
8459  _status = filename.serializeTo(
8460  _logBuff,
8461  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
8462  );
8463  FW_ASSERT(
8464  _status == Fw::FW_SERIALIZE_OK,
8465  static_cast<FwAssertArgType>(_status)
8466  );
8467 
8468 #if FW_AMPCS_COMPATIBLE
8469  // Serialize the argument size
8470  _status = _logBuff.serializeFrom(
8471  static_cast<U8>(sizeof(I32))
8472  );
8473  FW_ASSERT(
8474  _status == Fw::FW_SERIALIZE_OK,
8475  static_cast<FwAssertArgType>(_status)
8476  );
8477 #endif
8478  _status = _logBuff.serializeFrom(status);
8479  FW_ASSERT(
8480  _status == Fw::FW_SERIALIZE_OK,
8481  static_cast<FwAssertArgType>(_status)
8482  );
8483 
8484  this->logOut_out(
8485  0,
8486  _id,
8487  _logTime,
8489  _logBuff
8490  );
8491  }
8492 
8493  // Emit the event on the text log port
8494 #if FW_ENABLE_TEXT_LOGGING
8495  if (this->isConnected_logTextOut_OutputPort(0)) {
8496 #if FW_OBJECT_NAMES == 1
8497  const char* _formatString =
8498  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to open file %s, error=%" PRIi32 "";
8499 #else
8500  const char* _formatString =
8501  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to open file %s, error=%" PRIi32 "";
8502 #endif
8503 
8504  Fw::String cfdpClassStr;
8505  cfdpClass.toString(cfdpClassStr);
8506 
8507  Fw::TextLogString _logString;
8508  (void) _logString.format(
8509  _formatString,
8510 #if FW_OBJECT_NAMES == 1
8511  this->m_objName.toChar(),
8512 #endif
8513  "TxFileOpenFailed ",
8514  cfdpClassStr.toChar(),
8515  srcEid,
8516  seqNum,
8517  filename.toChar(),
8518  status
8519  );
8520 
8521  this->logTextOut_out(
8522  0,
8523  _id,
8524  _logTime,
8526  _logString
8527  );
8528  }
8529 #endif
8530  }
8531 
8534  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8535  U32 srcEid,
8536  U32 seqNum,
8537  I32 status
8538  ) const
8539  {
8540  // Get the time
8541  Fw::Time _logTime;
8542  if (this->isConnected_timeCaller_OutputPort(0)) {
8543  this->timeCaller_out(0, _logTime);
8544  }
8545 
8546  const FwEventIdType _id = this->getIdBase() + EVENTID_TXFILESEEKFAILED;
8547 
8548  // Emit the event on the log port
8549  if (this->isConnected_logOut_OutputPort(0)) {
8550  Fw::LogBuffer _logBuff;
8552 
8553 #if FW_AMPCS_COMPATIBLE
8554  // Serialize the number of arguments
8555  _status = _logBuff.serializeFrom(static_cast<U8>(4));
8556  FW_ASSERT(
8557  _status == Fw::FW_SERIALIZE_OK,
8558  static_cast<FwAssertArgType>(_status)
8559  );
8560 #endif
8561 
8562 #if FW_AMPCS_COMPATIBLE
8563  // Serialize the argument size
8564  _status = _logBuff.serializeFrom(
8566  );
8567  FW_ASSERT(
8568  _status == Fw::FW_SERIALIZE_OK,
8569  static_cast<FwAssertArgType>(_status)
8570  );
8571 #endif
8572  _status = _logBuff.serializeFrom(cfdpClass);
8573  FW_ASSERT(
8574  _status == Fw::FW_SERIALIZE_OK,
8575  static_cast<FwAssertArgType>(_status)
8576  );
8577 
8578 #if FW_AMPCS_COMPATIBLE
8579  // Serialize the argument size
8580  _status = _logBuff.serializeFrom(
8581  static_cast<U8>(sizeof(U32))
8582  );
8583  FW_ASSERT(
8584  _status == Fw::FW_SERIALIZE_OK,
8585  static_cast<FwAssertArgType>(_status)
8586  );
8587 #endif
8588  _status = _logBuff.serializeFrom(srcEid);
8589  FW_ASSERT(
8590  _status == Fw::FW_SERIALIZE_OK,
8591  static_cast<FwAssertArgType>(_status)
8592  );
8593 
8594 #if FW_AMPCS_COMPATIBLE
8595  // Serialize the argument size
8596  _status = _logBuff.serializeFrom(
8597  static_cast<U8>(sizeof(U32))
8598  );
8599  FW_ASSERT(
8600  _status == Fw::FW_SERIALIZE_OK,
8601  static_cast<FwAssertArgType>(_status)
8602  );
8603 #endif
8604  _status = _logBuff.serializeFrom(seqNum);
8605  FW_ASSERT(
8606  _status == Fw::FW_SERIALIZE_OK,
8607  static_cast<FwAssertArgType>(_status)
8608  );
8609 
8610 #if FW_AMPCS_COMPATIBLE
8611  // Serialize the argument size
8612  _status = _logBuff.serializeFrom(
8613  static_cast<U8>(sizeof(I32))
8614  );
8615  FW_ASSERT(
8616  _status == Fw::FW_SERIALIZE_OK,
8617  static_cast<FwAssertArgType>(_status)
8618  );
8619 #endif
8620  _status = _logBuff.serializeFrom(status);
8621  FW_ASSERT(
8622  _status == Fw::FW_SERIALIZE_OK,
8623  static_cast<FwAssertArgType>(_status)
8624  );
8625 
8626  this->logOut_out(
8627  0,
8628  _id,
8629  _logTime,
8631  _logBuff
8632  );
8633  }
8634 
8635  // Emit the event on the text log port
8636 #if FW_ENABLE_TEXT_LOGGING
8637  if (this->isConnected_logTextOut_OutputPort(0)) {
8638 #if FW_OBJECT_NAMES == 1
8639  const char* _formatString =
8640  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to beginning of file, error=%" PRIi32 "";
8641 #else
8642  const char* _formatString =
8643  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to beginning of file, error=%" PRIi32 "";
8644 #endif
8645 
8646  Fw::String cfdpClassStr;
8647  cfdpClass.toString(cfdpClassStr);
8648 
8649  Fw::TextLogString _logString;
8650  (void) _logString.format(
8651  _formatString,
8652 #if FW_OBJECT_NAMES == 1
8653  this->m_objName.toChar(),
8654 #endif
8655  "TxFileSeekFailed ",
8656  cfdpClassStr.toChar(),
8657  srcEid,
8658  seqNum,
8659  status
8660  );
8661 
8662  this->logTextOut_out(
8663  0,
8664  _id,
8665  _logTime,
8667  _logString
8668  );
8669  }
8670 #endif
8671  }
8672 
8675  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8676  U32 srcEid,
8677  U32 seqNum
8678  ) const
8679  {
8680  // Get the time
8681  Fw::Time _logTime;
8682  if (this->isConnected_timeCaller_OutputPort(0)) {
8683  this->timeCaller_out(0, _logTime);
8684  }
8685 
8687 
8688  // Emit the event on the log port
8689  if (this->isConnected_logOut_OutputPort(0)) {
8690  Fw::LogBuffer _logBuff;
8692 
8693 #if FW_AMPCS_COMPATIBLE
8694  // Serialize the number of arguments
8695  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8696  FW_ASSERT(
8697  _status == Fw::FW_SERIALIZE_OK,
8698  static_cast<FwAssertArgType>(_status)
8699  );
8700 #endif
8701 
8702 #if FW_AMPCS_COMPATIBLE
8703  // Serialize the argument size
8704  _status = _logBuff.serializeFrom(
8706  );
8707  FW_ASSERT(
8708  _status == Fw::FW_SERIALIZE_OK,
8709  static_cast<FwAssertArgType>(_status)
8710  );
8711 #endif
8712  _status = _logBuff.serializeFrom(cfdpClass);
8713  FW_ASSERT(
8714  _status == Fw::FW_SERIALIZE_OK,
8715  static_cast<FwAssertArgType>(_status)
8716  );
8717 
8718 #if FW_AMPCS_COMPATIBLE
8719  // Serialize the argument size
8720  _status = _logBuff.serializeFrom(
8721  static_cast<U8>(sizeof(U32))
8722  );
8723  FW_ASSERT(
8724  _status == Fw::FW_SERIALIZE_OK,
8725  static_cast<FwAssertArgType>(_status)
8726  );
8727 #endif
8728  _status = _logBuff.serializeFrom(srcEid);
8729  FW_ASSERT(
8730  _status == Fw::FW_SERIALIZE_OK,
8731  static_cast<FwAssertArgType>(_status)
8732  );
8733 
8734 #if FW_AMPCS_COMPATIBLE
8735  // Serialize the argument size
8736  _status = _logBuff.serializeFrom(
8737  static_cast<U8>(sizeof(U32))
8738  );
8739  FW_ASSERT(
8740  _status == Fw::FW_SERIALIZE_OK,
8741  static_cast<FwAssertArgType>(_status)
8742  );
8743 #endif
8744  _status = _logBuff.serializeFrom(seqNum);
8745  FW_ASSERT(
8746  _status == Fw::FW_SERIALIZE_OK,
8747  static_cast<FwAssertArgType>(_status)
8748  );
8749 
8750  this->logOut_out(
8751  0,
8752  _id,
8753  _logTime,
8755  _logBuff
8756  );
8757  }
8758 
8759  // Emit the event on the text log port
8760 #if FW_ENABLE_TEXT_LOGGING
8761  if (this->isConnected_logTextOut_OutputPort(0)) {
8762 #if FW_OBJECT_NAMES == 1
8763  const char* _formatString =
8764  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to send metadata PDU";
8765 #else
8766  const char* _formatString =
8767  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to send metadata PDU";
8768 #endif
8769 
8770  Fw::String cfdpClassStr;
8771  cfdpClass.toString(cfdpClassStr);
8772 
8773  Fw::TextLogString _logString;
8774  (void) _logString.format(
8775  _formatString,
8776 #if FW_OBJECT_NAMES == 1
8777  this->m_objName.toChar(),
8778 #endif
8779  "TxSendMetadataFailed ",
8780  cfdpClassStr.toChar(),
8781  srcEid,
8782  seqNum
8783  );
8784 
8785  this->logTextOut_out(
8786  0,
8787  _id,
8788  _logTime,
8790  _logString
8791  );
8792  }
8793 #endif
8794  }
8795 
8798  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8799  U32 srcEid,
8800  U32 seqNum
8801  ) const
8802  {
8803  // Get the time
8804  Fw::Time _logTime;
8805  if (this->isConnected_timeCaller_OutputPort(0)) {
8806  this->timeCaller_out(0, _logTime);
8807  }
8808 
8809  const FwEventIdType _id = this->getIdBase() + EVENTID_TXEARLYFINRECEIVED;
8810 
8811  // Emit the event on the log port
8812  if (this->isConnected_logOut_OutputPort(0)) {
8813  Fw::LogBuffer _logBuff;
8815 
8816 #if FW_AMPCS_COMPATIBLE
8817  // Serialize the number of arguments
8818  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8819  FW_ASSERT(
8820  _status == Fw::FW_SERIALIZE_OK,
8821  static_cast<FwAssertArgType>(_status)
8822  );
8823 #endif
8824 
8825 #if FW_AMPCS_COMPATIBLE
8826  // Serialize the argument size
8827  _status = _logBuff.serializeFrom(
8829  );
8830  FW_ASSERT(
8831  _status == Fw::FW_SERIALIZE_OK,
8832  static_cast<FwAssertArgType>(_status)
8833  );
8834 #endif
8835  _status = _logBuff.serializeFrom(cfdpClass);
8836  FW_ASSERT(
8837  _status == Fw::FW_SERIALIZE_OK,
8838  static_cast<FwAssertArgType>(_status)
8839  );
8840 
8841 #if FW_AMPCS_COMPATIBLE
8842  // Serialize the argument size
8843  _status = _logBuff.serializeFrom(
8844  static_cast<U8>(sizeof(U32))
8845  );
8846  FW_ASSERT(
8847  _status == Fw::FW_SERIALIZE_OK,
8848  static_cast<FwAssertArgType>(_status)
8849  );
8850 #endif
8851  _status = _logBuff.serializeFrom(srcEid);
8852  FW_ASSERT(
8853  _status == Fw::FW_SERIALIZE_OK,
8854  static_cast<FwAssertArgType>(_status)
8855  );
8856 
8857 #if FW_AMPCS_COMPATIBLE
8858  // Serialize the argument size
8859  _status = _logBuff.serializeFrom(
8860  static_cast<U8>(sizeof(U32))
8861  );
8862  FW_ASSERT(
8863  _status == Fw::FW_SERIALIZE_OK,
8864  static_cast<FwAssertArgType>(_status)
8865  );
8866 #endif
8867  _status = _logBuff.serializeFrom(seqNum);
8868  FW_ASSERT(
8869  _status == Fw::FW_SERIALIZE_OK,
8870  static_cast<FwAssertArgType>(_status)
8871  );
8872 
8873  this->logOut_out(
8874  0,
8875  _id,
8876  _logTime,
8878  _logBuff
8879  );
8880  }
8881 
8882  // Emit the event on the text log port
8883 #if FW_ENABLE_TEXT_LOGGING
8884  if (this->isConnected_logTextOut_OutputPort(0)) {
8885 #if FW_OBJECT_NAMES == 1
8886  const char* _formatString =
8887  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received early FIN, cancelling transfer";
8888 #else
8889  const char* _formatString =
8890  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received early FIN, cancelling transfer";
8891 #endif
8892 
8893  Fw::String cfdpClassStr;
8894  cfdpClass.toString(cfdpClassStr);
8895 
8896  Fw::TextLogString _logString;
8897  (void) _logString.format(
8898  _formatString,
8899 #if FW_OBJECT_NAMES == 1
8900  this->m_objName.toChar(),
8901 #endif
8902  "TxEarlyFinReceived ",
8903  cfdpClassStr.toChar(),
8904  srcEid,
8905  seqNum
8906  );
8907 
8908  this->logTextOut_out(
8909  0,
8910  _id,
8911  _logTime,
8913  _logString
8914  );
8915  }
8916 #endif
8917  }
8918 
8921  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8922  U32 srcEid,
8923  U32 seqNum
8924  ) const
8925  {
8926  // Get the time
8927  Fw::Time _logTime;
8928  if (this->isConnected_timeCaller_OutputPort(0)) {
8929  this->timeCaller_out(0, _logTime);
8930  }
8931 
8932  const FwEventIdType _id = this->getIdBase() + EVENTID_TXINVALIDNAKPDU;
8933 
8934  // Emit the event on the log port
8935  if (this->isConnected_logOut_OutputPort(0)) {
8936  Fw::LogBuffer _logBuff;
8938 
8939 #if FW_AMPCS_COMPATIBLE
8940  // Serialize the number of arguments
8941  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8942  FW_ASSERT(
8943  _status == Fw::FW_SERIALIZE_OK,
8944  static_cast<FwAssertArgType>(_status)
8945  );
8946 #endif
8947 
8948 #if FW_AMPCS_COMPATIBLE
8949  // Serialize the argument size
8950  _status = _logBuff.serializeFrom(
8952  );
8953  FW_ASSERT(
8954  _status == Fw::FW_SERIALIZE_OK,
8955  static_cast<FwAssertArgType>(_status)
8956  );
8957 #endif
8958  _status = _logBuff.serializeFrom(cfdpClass);
8959  FW_ASSERT(
8960  _status == Fw::FW_SERIALIZE_OK,
8961  static_cast<FwAssertArgType>(_status)
8962  );
8963 
8964 #if FW_AMPCS_COMPATIBLE
8965  // Serialize the argument size
8966  _status = _logBuff.serializeFrom(
8967  static_cast<U8>(sizeof(U32))
8968  );
8969  FW_ASSERT(
8970  _status == Fw::FW_SERIALIZE_OK,
8971  static_cast<FwAssertArgType>(_status)
8972  );
8973 #endif
8974  _status = _logBuff.serializeFrom(srcEid);
8975  FW_ASSERT(
8976  _status == Fw::FW_SERIALIZE_OK,
8977  static_cast<FwAssertArgType>(_status)
8978  );
8979 
8980 #if FW_AMPCS_COMPATIBLE
8981  // Serialize the argument size
8982  _status = _logBuff.serializeFrom(
8983  static_cast<U8>(sizeof(U32))
8984  );
8985  FW_ASSERT(
8986  _status == Fw::FW_SERIALIZE_OK,
8987  static_cast<FwAssertArgType>(_status)
8988  );
8989 #endif
8990  _status = _logBuff.serializeFrom(seqNum);
8991  FW_ASSERT(
8992  _status == Fw::FW_SERIALIZE_OK,
8993  static_cast<FwAssertArgType>(_status)
8994  );
8995 
8996  this->logOut_out(
8997  0,
8998  _id,
8999  _logTime,
9001  _logBuff
9002  );
9003  }
9004 
9005  // Emit the event on the text log port
9006 #if FW_ENABLE_TEXT_LOGGING
9007  if (this->isConnected_logTextOut_OutputPort(0)) {
9008 #if FW_OBJECT_NAMES == 1
9009  const char* _formatString =
9010  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid NAK PDU";
9011 #else
9012  const char* _formatString =
9013  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid NAK PDU";
9014 #endif
9015 
9016  Fw::String cfdpClassStr;
9017  cfdpClass.toString(cfdpClassStr);
9018 
9019  Fw::TextLogString _logString;
9020  (void) _logString.format(
9021  _formatString,
9022 #if FW_OBJECT_NAMES == 1
9023  this->m_objName.toChar(),
9024 #endif
9025  "TxInvalidNakPdu ",
9026  cfdpClassStr.toChar(),
9027  srcEid,
9028  seqNum
9029  );
9030 
9031  this->logTextOut_out(
9032  0,
9033  _id,
9034  _logTime,
9036  _logString
9037  );
9038  }
9039 #endif
9040  }
9041 
9044  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9045  U32 srcEid,
9046  U32 seqNum,
9047  U32 badCount
9048  ) const
9049  {
9050  // Get the time
9051  Fw::Time _logTime;
9052  if (this->isConnected_timeCaller_OutputPort(0)) {
9053  this->timeCaller_out(0, _logTime);
9054  }
9055 
9057 
9058  // Emit the event on the log port
9059  if (this->isConnected_logOut_OutputPort(0)) {
9060  Fw::LogBuffer _logBuff;
9062 
9063 #if FW_AMPCS_COMPATIBLE
9064  // Serialize the number of arguments
9065  _status = _logBuff.serializeFrom(static_cast<U8>(4));
9066  FW_ASSERT(
9067  _status == Fw::FW_SERIALIZE_OK,
9068  static_cast<FwAssertArgType>(_status)
9069  );
9070 #endif
9071 
9072 #if FW_AMPCS_COMPATIBLE
9073  // Serialize the argument size
9074  _status = _logBuff.serializeFrom(
9076  );
9077  FW_ASSERT(
9078  _status == Fw::FW_SERIALIZE_OK,
9079  static_cast<FwAssertArgType>(_status)
9080  );
9081 #endif
9082  _status = _logBuff.serializeFrom(cfdpClass);
9083  FW_ASSERT(
9084  _status == Fw::FW_SERIALIZE_OK,
9085  static_cast<FwAssertArgType>(_status)
9086  );
9087 
9088 #if FW_AMPCS_COMPATIBLE
9089  // Serialize the argument size
9090  _status = _logBuff.serializeFrom(
9091  static_cast<U8>(sizeof(U32))
9092  );
9093  FW_ASSERT(
9094  _status == Fw::FW_SERIALIZE_OK,
9095  static_cast<FwAssertArgType>(_status)
9096  );
9097 #endif
9098  _status = _logBuff.serializeFrom(srcEid);
9099  FW_ASSERT(
9100  _status == Fw::FW_SERIALIZE_OK,
9101  static_cast<FwAssertArgType>(_status)
9102  );
9103 
9104 #if FW_AMPCS_COMPATIBLE
9105  // Serialize the argument size
9106  _status = _logBuff.serializeFrom(
9107  static_cast<U8>(sizeof(U32))
9108  );
9109  FW_ASSERT(
9110  _status == Fw::FW_SERIALIZE_OK,
9111  static_cast<FwAssertArgType>(_status)
9112  );
9113 #endif
9114  _status = _logBuff.serializeFrom(seqNum);
9115  FW_ASSERT(
9116  _status == Fw::FW_SERIALIZE_OK,
9117  static_cast<FwAssertArgType>(_status)
9118  );
9119 
9120 #if FW_AMPCS_COMPATIBLE
9121  // Serialize the argument size
9122  _status = _logBuff.serializeFrom(
9123  static_cast<U8>(sizeof(U32))
9124  );
9125  FW_ASSERT(
9126  _status == Fw::FW_SERIALIZE_OK,
9127  static_cast<FwAssertArgType>(_status)
9128  );
9129 #endif
9130  _status = _logBuff.serializeFrom(badCount);
9131  FW_ASSERT(
9132  _status == Fw::FW_SERIALIZE_OK,
9133  static_cast<FwAssertArgType>(_status)
9134  );
9135 
9136  this->logOut_out(
9137  0,
9138  _id,
9139  _logTime,
9141  _logBuff
9142  );
9143  }
9144 
9145  // Emit the event on the text log port
9146 #if FW_ENABLE_TEXT_LOGGING
9147  if (this->isConnected_logTextOut_OutputPort(0)) {
9148 #if FW_OBJECT_NAMES == 1
9149  const char* _formatString =
9150  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received %" PRIu32 " invalid NAK segment requests";
9151 #else
9152  const char* _formatString =
9153  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received %" PRIu32 " invalid NAK segment requests";
9154 #endif
9155 
9156  Fw::String cfdpClassStr;
9157  cfdpClass.toString(cfdpClassStr);
9158 
9159  Fw::TextLogString _logString;
9160  (void) _logString.format(
9161  _formatString,
9162 #if FW_OBJECT_NAMES == 1
9163  this->m_objName.toChar(),
9164 #endif
9165  "TxInvalidSegmentRequests ",
9166  cfdpClassStr.toChar(),
9167  srcEid,
9168  seqNum,
9169  badCount
9170  );
9171 
9172  this->logTextOut_out(
9173  0,
9174  _id,
9175  _logTime,
9177  _logString
9178  );
9179  }
9180 #endif
9181  }
9182 
9185  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9186  U32 srcEid,
9187  U32 seqNum
9188  ) const
9189  {
9190  // Get the time
9191  Fw::Time _logTime;
9192  if (this->isConnected_timeCaller_OutputPort(0)) {
9193  this->timeCaller_out(0, _logTime);
9194  }
9195 
9197 
9198  // Emit the event on the log port
9199  if (this->isConnected_logOut_OutputPort(0)) {
9200  Fw::LogBuffer _logBuff;
9202 
9203 #if FW_AMPCS_COMPATIBLE
9204  // Serialize the number of arguments
9205  _status = _logBuff.serializeFrom(static_cast<U8>(3));
9206  FW_ASSERT(
9207  _status == Fw::FW_SERIALIZE_OK,
9208  static_cast<FwAssertArgType>(_status)
9209  );
9210 #endif
9211 
9212 #if FW_AMPCS_COMPATIBLE
9213  // Serialize the argument size
9214  _status = _logBuff.serializeFrom(
9216  );
9217  FW_ASSERT(
9218  _status == Fw::FW_SERIALIZE_OK,
9219  static_cast<FwAssertArgType>(_status)
9220  );
9221 #endif
9222  _status = _logBuff.serializeFrom(cfdpClass);
9223  FW_ASSERT(
9224  _status == Fw::FW_SERIALIZE_OK,
9225  static_cast<FwAssertArgType>(_status)
9226  );
9227 
9228 #if FW_AMPCS_COMPATIBLE
9229  // Serialize the argument size
9230  _status = _logBuff.serializeFrom(
9231  static_cast<U8>(sizeof(U32))
9232  );
9233  FW_ASSERT(
9234  _status == Fw::FW_SERIALIZE_OK,
9235  static_cast<FwAssertArgType>(_status)
9236  );
9237 #endif
9238  _status = _logBuff.serializeFrom(srcEid);
9239  FW_ASSERT(
9240  _status == Fw::FW_SERIALIZE_OK,
9241  static_cast<FwAssertArgType>(_status)
9242  );
9243 
9244 #if FW_AMPCS_COMPATIBLE
9245  // Serialize the argument size
9246  _status = _logBuff.serializeFrom(
9247  static_cast<U8>(sizeof(U32))
9248  );
9249  FW_ASSERT(
9250  _status == Fw::FW_SERIALIZE_OK,
9251  static_cast<FwAssertArgType>(_status)
9252  );
9253 #endif
9254  _status = _logBuff.serializeFrom(seqNum);
9255  FW_ASSERT(
9256  _status == Fw::FW_SERIALIZE_OK,
9257  static_cast<FwAssertArgType>(_status)
9258  );
9259 
9260  this->logOut_out(
9261  0,
9262  _id,
9263  _logTime,
9265  _logBuff
9266  );
9267  }
9268 
9269  // Emit the event on the text log port
9270 #if FW_ENABLE_TEXT_LOGGING
9271  if (this->isConnected_logTextOut_OutputPort(0)) {
9272 #if FW_OBJECT_NAMES == 1
9273  const char* _formatString =
9274  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received non-file-directive PDU";
9275 #else
9276  const char* _formatString =
9277  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received non-file-directive PDU";
9278 #endif
9279 
9280  Fw::String cfdpClassStr;
9281  cfdpClass.toString(cfdpClassStr);
9282 
9283  Fw::TextLogString _logString;
9284  (void) _logString.format(
9285  _formatString,
9286 #if FW_OBJECT_NAMES == 1
9287  this->m_objName.toChar(),
9288 #endif
9289  "TxNonFileDirectivePduReceived ",
9290  cfdpClassStr.toChar(),
9291  srcEid,
9292  seqNum
9293  );
9294 
9295  this->logTextOut_out(
9296  0,
9297  _id,
9298  _logTime,
9300  _logString
9301  );
9302  }
9303 #endif
9304  }
9305 
9308  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9309  U32 srcEid,
9310  U32 seqNum,
9311  U8 directiveCode,
9312  U8 substate
9313  ) const
9314  {
9315  // Get the time
9316  Fw::Time _logTime;
9317  if (this->isConnected_timeCaller_OutputPort(0)) {
9318  this->timeCaller_out(0, _logTime);
9319  }
9320 
9322 
9323  // Emit the event on the log port
9324  if (this->isConnected_logOut_OutputPort(0)) {
9325  Fw::LogBuffer _logBuff;
9327 
9328 #if FW_AMPCS_COMPATIBLE
9329  // Serialize the number of arguments
9330  _status = _logBuff.serializeFrom(static_cast<U8>(5));
9331  FW_ASSERT(
9332  _status == Fw::FW_SERIALIZE_OK,
9333  static_cast<FwAssertArgType>(_status)
9334  );
9335 #endif
9336 
9337 #if FW_AMPCS_COMPATIBLE
9338  // Serialize the argument size
9339  _status = _logBuff.serializeFrom(
9341  );
9342  FW_ASSERT(
9343  _status == Fw::FW_SERIALIZE_OK,
9344  static_cast<FwAssertArgType>(_status)
9345  );
9346 #endif
9347  _status = _logBuff.serializeFrom(cfdpClass);
9348  FW_ASSERT(
9349  _status == Fw::FW_SERIALIZE_OK,
9350  static_cast<FwAssertArgType>(_status)
9351  );
9352 
9353 #if FW_AMPCS_COMPATIBLE
9354  // Serialize the argument size
9355  _status = _logBuff.serializeFrom(
9356  static_cast<U8>(sizeof(U32))
9357  );
9358  FW_ASSERT(
9359  _status == Fw::FW_SERIALIZE_OK,
9360  static_cast<FwAssertArgType>(_status)
9361  );
9362 #endif
9363  _status = _logBuff.serializeFrom(srcEid);
9364  FW_ASSERT(
9365  _status == Fw::FW_SERIALIZE_OK,
9366  static_cast<FwAssertArgType>(_status)
9367  );
9368 
9369 #if FW_AMPCS_COMPATIBLE
9370  // Serialize the argument size
9371  _status = _logBuff.serializeFrom(
9372  static_cast<U8>(sizeof(U32))
9373  );
9374  FW_ASSERT(
9375  _status == Fw::FW_SERIALIZE_OK,
9376  static_cast<FwAssertArgType>(_status)
9377  );
9378 #endif
9379  _status = _logBuff.serializeFrom(seqNum);
9380  FW_ASSERT(
9381  _status == Fw::FW_SERIALIZE_OK,
9382  static_cast<FwAssertArgType>(_status)
9383  );
9384 
9385 #if FW_AMPCS_COMPATIBLE
9386  // Serialize the argument size
9387  _status = _logBuff.serializeFrom(
9388  static_cast<U8>(sizeof(U8))
9389  );
9390  FW_ASSERT(
9391  _status == Fw::FW_SERIALIZE_OK,
9392  static_cast<FwAssertArgType>(_status)
9393  );
9394 #endif
9395  _status = _logBuff.serializeFrom(directiveCode);
9396  FW_ASSERT(
9397  _status == Fw::FW_SERIALIZE_OK,
9398  static_cast<FwAssertArgType>(_status)
9399  );
9400 
9401 #if FW_AMPCS_COMPATIBLE
9402  // Serialize the argument size
9403  _status = _logBuff.serializeFrom(
9404  static_cast<U8>(sizeof(U8))
9405  );
9406  FW_ASSERT(
9407  _status == Fw::FW_SERIALIZE_OK,
9408  static_cast<FwAssertArgType>(_status)
9409  );
9410 #endif
9411  _status = _logBuff.serializeFrom(substate);
9412  FW_ASSERT(
9413  _status == Fw::FW_SERIALIZE_OK,
9414  static_cast<FwAssertArgType>(_status)
9415  );
9416 
9417  this->logOut_out(
9418  0,
9419  _id,
9420  _logTime,
9422  _logBuff
9423  );
9424  }
9425 
9426  // Emit the event on the text log port
9427 #if FW_ENABLE_TEXT_LOGGING
9428  if (this->isConnected_logTextOut_OutputPort(0)) {
9429 #if FW_OBJECT_NAMES == 1
9430  const char* _formatString =
9431  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
9432 #else
9433  const char* _formatString =
9434  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
9435 #endif
9436 
9437  Fw::String cfdpClassStr;
9438  cfdpClass.toString(cfdpClassStr);
9439 
9440  Fw::TextLogString _logString;
9441  (void) _logString.format(
9442  _formatString,
9443 #if FW_OBJECT_NAMES == 1
9444  this->m_objName.toChar(),
9445 #endif
9446  "TxInvalidDirectiveCode ",
9447  cfdpClassStr.toChar(),
9448  srcEid,
9449  seqNum,
9450  directiveCode,
9451  substate
9452  );
9453 
9454  this->logTextOut_out(
9455  0,
9456  _id,
9457  _logTime,
9459  _logString
9460  );
9461  }
9462 #endif
9463  }
9464 
9467  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9468  U32 seqNum,
9469  U32 srcEid,
9470  const Fw::StringBase& srcFile,
9471  U32 destEid,
9472  const Fw::StringBase& destFile,
9473  U32 fileSize
9474  ) const
9475  {
9476  // Get the time
9477  Fw::Time _logTime;
9478  if (this->isConnected_timeCaller_OutputPort(0)) {
9479  this->timeCaller_out(0, _logTime);
9480  }
9481 
9483 
9484  // Emit the event on the log port
9485  if (this->isConnected_logOut_OutputPort(0)) {
9486  Fw::LogBuffer _logBuff;
9488 
9489 #if FW_AMPCS_COMPATIBLE
9490  // Serialize the number of arguments
9491  _status = _logBuff.serializeFrom(static_cast<U8>(7));
9492  FW_ASSERT(
9493  _status == Fw::FW_SERIALIZE_OK,
9494  static_cast<FwAssertArgType>(_status)
9495  );
9496 #endif
9497 
9498 #if FW_AMPCS_COMPATIBLE
9499  // Serialize the argument size
9500  _status = _logBuff.serializeFrom(
9502  );
9503  FW_ASSERT(
9504  _status == Fw::FW_SERIALIZE_OK,
9505  static_cast<FwAssertArgType>(_status)
9506  );
9507 #endif
9508  _status = _logBuff.serializeFrom(cfdpClass);
9509  FW_ASSERT(
9510  _status == Fw::FW_SERIALIZE_OK,
9511  static_cast<FwAssertArgType>(_status)
9512  );
9513 
9514 #if FW_AMPCS_COMPATIBLE
9515  // Serialize the argument size
9516  _status = _logBuff.serializeFrom(
9517  static_cast<U8>(sizeof(U32))
9518  );
9519  FW_ASSERT(
9520  _status == Fw::FW_SERIALIZE_OK,
9521  static_cast<FwAssertArgType>(_status)
9522  );
9523 #endif
9524  _status = _logBuff.serializeFrom(seqNum);
9525  FW_ASSERT(
9526  _status == Fw::FW_SERIALIZE_OK,
9527  static_cast<FwAssertArgType>(_status)
9528  );
9529 
9530 #if FW_AMPCS_COMPATIBLE
9531  // Serialize the argument size
9532  _status = _logBuff.serializeFrom(
9533  static_cast<U8>(sizeof(U32))
9534  );
9535  FW_ASSERT(
9536  _status == Fw::FW_SERIALIZE_OK,
9537  static_cast<FwAssertArgType>(_status)
9538  );
9539 #endif
9540  _status = _logBuff.serializeFrom(srcEid);
9541  FW_ASSERT(
9542  _status == Fw::FW_SERIALIZE_OK,
9543  static_cast<FwAssertArgType>(_status)
9544  );
9545 
9546  _status = srcFile.serializeTo(
9547  _logBuff,
9548  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9549  );
9550  FW_ASSERT(
9551  _status == Fw::FW_SERIALIZE_OK,
9552  static_cast<FwAssertArgType>(_status)
9553  );
9554 
9555 #if FW_AMPCS_COMPATIBLE
9556  // Serialize the argument size
9557  _status = _logBuff.serializeFrom(
9558  static_cast<U8>(sizeof(U32))
9559  );
9560  FW_ASSERT(
9561  _status == Fw::FW_SERIALIZE_OK,
9562  static_cast<FwAssertArgType>(_status)
9563  );
9564 #endif
9565  _status = _logBuff.serializeFrom(destEid);
9566  FW_ASSERT(
9567  _status == Fw::FW_SERIALIZE_OK,
9568  static_cast<FwAssertArgType>(_status)
9569  );
9570 
9571  _status = destFile.serializeTo(
9572  _logBuff,
9573  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9574  );
9575  FW_ASSERT(
9576  _status == Fw::FW_SERIALIZE_OK,
9577  static_cast<FwAssertArgType>(_status)
9578  );
9579 
9580 #if FW_AMPCS_COMPATIBLE
9581  // Serialize the argument size
9582  _status = _logBuff.serializeFrom(
9583  static_cast<U8>(sizeof(U32))
9584  );
9585  FW_ASSERT(
9586  _status == Fw::FW_SERIALIZE_OK,
9587  static_cast<FwAssertArgType>(_status)
9588  );
9589 #endif
9590  _status = _logBuff.serializeFrom(fileSize);
9591  FW_ASSERT(
9592  _status == Fw::FW_SERIALIZE_OK,
9593  static_cast<FwAssertArgType>(_status)
9594  );
9595 
9596  this->logOut_out(
9597  0,
9598  _id,
9599  _logTime,
9601  _logBuff
9602  );
9603  }
9604 
9605  // Emit the event on the text log port
9606 #if FW_ENABLE_TEXT_LOGGING
9607  if (this->isConnected_logTextOut_OutputPort(0)) {
9608 #if FW_OBJECT_NAMES == 1
9609  const char* _formatString =
9610  "(%s) %s: TX %s transaction %" PRIu32 " transfer started, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9611 #else
9612  const char* _formatString =
9613  "%s: TX %s transaction %" PRIu32 " transfer started, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9614 #endif
9615 
9616  Fw::String cfdpClassStr;
9617  cfdpClass.toString(cfdpClassStr);
9618 
9619  Fw::TextLogString _logString;
9620  (void) _logString.format(
9621  _formatString,
9622 #if FW_OBJECT_NAMES == 1
9623  this->m_objName.toChar(),
9624 #endif
9625  "TxFileTransferStarted ",
9626  cfdpClassStr.toChar(),
9627  seqNum,
9628  srcEid,
9629  srcFile.toChar(),
9630  destEid,
9631  destFile.toChar(),
9632  fileSize
9633  );
9634 
9635  this->logTextOut_out(
9636  0,
9637  _id,
9638  _logTime,
9640  _logString
9641  );
9642  }
9643 #endif
9644  }
9645 
9648  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9649  U32 seqNum,
9650  U32 srcEid,
9651  const Fw::StringBase& srcFile,
9652  U32 destEid,
9653  const Fw::StringBase& destFile,
9654  U32 fileSize
9655  ) const
9656  {
9657  // Get the time
9658  Fw::Time _logTime;
9659  if (this->isConnected_timeCaller_OutputPort(0)) {
9660  this->timeCaller_out(0, _logTime);
9661  }
9662 
9664 
9665  // Emit the event on the log port
9666  if (this->isConnected_logOut_OutputPort(0)) {
9667  Fw::LogBuffer _logBuff;
9669 
9670 #if FW_AMPCS_COMPATIBLE
9671  // Serialize the number of arguments
9672  _status = _logBuff.serializeFrom(static_cast<U8>(7));
9673  FW_ASSERT(
9674  _status == Fw::FW_SERIALIZE_OK,
9675  static_cast<FwAssertArgType>(_status)
9676  );
9677 #endif
9678 
9679 #if FW_AMPCS_COMPATIBLE
9680  // Serialize the argument size
9681  _status = _logBuff.serializeFrom(
9683  );
9684  FW_ASSERT(
9685  _status == Fw::FW_SERIALIZE_OK,
9686  static_cast<FwAssertArgType>(_status)
9687  );
9688 #endif
9689  _status = _logBuff.serializeFrom(cfdpClass);
9690  FW_ASSERT(
9691  _status == Fw::FW_SERIALIZE_OK,
9692  static_cast<FwAssertArgType>(_status)
9693  );
9694 
9695 #if FW_AMPCS_COMPATIBLE
9696  // Serialize the argument size
9697  _status = _logBuff.serializeFrom(
9698  static_cast<U8>(sizeof(U32))
9699  );
9700  FW_ASSERT(
9701  _status == Fw::FW_SERIALIZE_OK,
9702  static_cast<FwAssertArgType>(_status)
9703  );
9704 #endif
9705  _status = _logBuff.serializeFrom(seqNum);
9706  FW_ASSERT(
9707  _status == Fw::FW_SERIALIZE_OK,
9708  static_cast<FwAssertArgType>(_status)
9709  );
9710 
9711 #if FW_AMPCS_COMPATIBLE
9712  // Serialize the argument size
9713  _status = _logBuff.serializeFrom(
9714  static_cast<U8>(sizeof(U32))
9715  );
9716  FW_ASSERT(
9717  _status == Fw::FW_SERIALIZE_OK,
9718  static_cast<FwAssertArgType>(_status)
9719  );
9720 #endif
9721  _status = _logBuff.serializeFrom(srcEid);
9722  FW_ASSERT(
9723  _status == Fw::FW_SERIALIZE_OK,
9724  static_cast<FwAssertArgType>(_status)
9725  );
9726 
9727  _status = srcFile.serializeTo(
9728  _logBuff,
9729  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9730  );
9731  FW_ASSERT(
9732  _status == Fw::FW_SERIALIZE_OK,
9733  static_cast<FwAssertArgType>(_status)
9734  );
9735 
9736 #if FW_AMPCS_COMPATIBLE
9737  // Serialize the argument size
9738  _status = _logBuff.serializeFrom(
9739  static_cast<U8>(sizeof(U32))
9740  );
9741  FW_ASSERT(
9742  _status == Fw::FW_SERIALIZE_OK,
9743  static_cast<FwAssertArgType>(_status)
9744  );
9745 #endif
9746  _status = _logBuff.serializeFrom(destEid);
9747  FW_ASSERT(
9748  _status == Fw::FW_SERIALIZE_OK,
9749  static_cast<FwAssertArgType>(_status)
9750  );
9751 
9752  _status = destFile.serializeTo(
9753  _logBuff,
9754  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9755  );
9756  FW_ASSERT(
9757  _status == Fw::FW_SERIALIZE_OK,
9758  static_cast<FwAssertArgType>(_status)
9759  );
9760 
9761 #if FW_AMPCS_COMPATIBLE
9762  // Serialize the argument size
9763  _status = _logBuff.serializeFrom(
9764  static_cast<U8>(sizeof(U32))
9765  );
9766  FW_ASSERT(
9767  _status == Fw::FW_SERIALIZE_OK,
9768  static_cast<FwAssertArgType>(_status)
9769  );
9770 #endif
9771  _status = _logBuff.serializeFrom(fileSize);
9772  FW_ASSERT(
9773  _status == Fw::FW_SERIALIZE_OK,
9774  static_cast<FwAssertArgType>(_status)
9775  );
9776 
9777  this->logOut_out(
9778  0,
9779  _id,
9780  _logTime,
9782  _logBuff
9783  );
9784  }
9785 
9786  // Emit the event on the text log port
9787 #if FW_ENABLE_TEXT_LOGGING
9788  if (this->isConnected_logTextOut_OutputPort(0)) {
9789 #if FW_OBJECT_NAMES == 1
9790  const char* _formatString =
9791  "(%s) %s: TX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9792 #else
9793  const char* _formatString =
9794  "%s: TX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9795 #endif
9796 
9797  Fw::String cfdpClassStr;
9798  cfdpClass.toString(cfdpClassStr);
9799 
9800  Fw::TextLogString _logString;
9801  (void) _logString.format(
9802  _formatString,
9803 #if FW_OBJECT_NAMES == 1
9804  this->m_objName.toChar(),
9805 #endif
9806  "TxFileTransferCompleted ",
9807  cfdpClassStr.toChar(),
9808  seqNum,
9809  srcEid,
9810  srcFile.toChar(),
9811  destEid,
9812  destFile.toChar(),
9813  fileSize
9814  );
9815 
9816  this->logTextOut_out(
9817  0,
9818  _id,
9819  _logTime,
9821  _logString
9822  );
9823  }
9824 #endif
9825  }
9826 
9829  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9830  U32 seqNum,
9831  U32 srcEid,
9832  const Fw::StringBase& srcFile,
9833  U32 destEid,
9834  const Fw::StringBase& destFile,
9835  U8 conditionCode
9836  ) const
9837  {
9838  // Get the time
9839  Fw::Time _logTime;
9840  if (this->isConnected_timeCaller_OutputPort(0)) {
9841  this->timeCaller_out(0, _logTime);
9842  }
9843 
9845 
9846  // Emit the event on the log port
9847  if (this->isConnected_logOut_OutputPort(0)) {
9848  Fw::LogBuffer _logBuff;
9850 
9851 #if FW_AMPCS_COMPATIBLE
9852  // Serialize the number of arguments
9853  _status = _logBuff.serializeFrom(static_cast<U8>(7));
9854  FW_ASSERT(
9855  _status == Fw::FW_SERIALIZE_OK,
9856  static_cast<FwAssertArgType>(_status)
9857  );
9858 #endif
9859 
9860 #if FW_AMPCS_COMPATIBLE
9861  // Serialize the argument size
9862  _status = _logBuff.serializeFrom(
9864  );
9865  FW_ASSERT(
9866  _status == Fw::FW_SERIALIZE_OK,
9867  static_cast<FwAssertArgType>(_status)
9868  );
9869 #endif
9870  _status = _logBuff.serializeFrom(cfdpClass);
9871  FW_ASSERT(
9872  _status == Fw::FW_SERIALIZE_OK,
9873  static_cast<FwAssertArgType>(_status)
9874  );
9875 
9876 #if FW_AMPCS_COMPATIBLE
9877  // Serialize the argument size
9878  _status = _logBuff.serializeFrom(
9879  static_cast<U8>(sizeof(U32))
9880  );
9881  FW_ASSERT(
9882  _status == Fw::FW_SERIALIZE_OK,
9883  static_cast<FwAssertArgType>(_status)
9884  );
9885 #endif
9886  _status = _logBuff.serializeFrom(seqNum);
9887  FW_ASSERT(
9888  _status == Fw::FW_SERIALIZE_OK,
9889  static_cast<FwAssertArgType>(_status)
9890  );
9891 
9892 #if FW_AMPCS_COMPATIBLE
9893  // Serialize the argument size
9894  _status = _logBuff.serializeFrom(
9895  static_cast<U8>(sizeof(U32))
9896  );
9897  FW_ASSERT(
9898  _status == Fw::FW_SERIALIZE_OK,
9899  static_cast<FwAssertArgType>(_status)
9900  );
9901 #endif
9902  _status = _logBuff.serializeFrom(srcEid);
9903  FW_ASSERT(
9904  _status == Fw::FW_SERIALIZE_OK,
9905  static_cast<FwAssertArgType>(_status)
9906  );
9907 
9908  _status = srcFile.serializeTo(
9909  _logBuff,
9910  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9911  );
9912  FW_ASSERT(
9913  _status == Fw::FW_SERIALIZE_OK,
9914  static_cast<FwAssertArgType>(_status)
9915  );
9916 
9917 #if FW_AMPCS_COMPATIBLE
9918  // Serialize the argument size
9919  _status = _logBuff.serializeFrom(
9920  static_cast<U8>(sizeof(U32))
9921  );
9922  FW_ASSERT(
9923  _status == Fw::FW_SERIALIZE_OK,
9924  static_cast<FwAssertArgType>(_status)
9925  );
9926 #endif
9927  _status = _logBuff.serializeFrom(destEid);
9928  FW_ASSERT(
9929  _status == Fw::FW_SERIALIZE_OK,
9930  static_cast<FwAssertArgType>(_status)
9931  );
9932 
9933  _status = destFile.serializeTo(
9934  _logBuff,
9935  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9936  );
9937  FW_ASSERT(
9938  _status == Fw::FW_SERIALIZE_OK,
9939  static_cast<FwAssertArgType>(_status)
9940  );
9941 
9942 #if FW_AMPCS_COMPATIBLE
9943  // Serialize the argument size
9944  _status = _logBuff.serializeFrom(
9945  static_cast<U8>(sizeof(U8))
9946  );
9947  FW_ASSERT(
9948  _status == Fw::FW_SERIALIZE_OK,
9949  static_cast<FwAssertArgType>(_status)
9950  );
9951 #endif
9952  _status = _logBuff.serializeFrom(conditionCode);
9953  FW_ASSERT(
9954  _status == Fw::FW_SERIALIZE_OK,
9955  static_cast<FwAssertArgType>(_status)
9956  );
9957 
9958  this->logOut_out(
9959  0,
9960  _id,
9961  _logTime,
9963  _logBuff
9964  );
9965  }
9966 
9967  // Emit the event on the text log port
9968 #if FW_ENABLE_TEXT_LOGGING
9969  if (this->isConnected_logTextOut_OutputPort(0)) {
9970 #if FW_OBJECT_NAMES == 1
9971  const char* _formatString =
9972  "(%s) %s: TX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
9973 #else
9974  const char* _formatString =
9975  "%s: TX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
9976 #endif
9977 
9978  Fw::String cfdpClassStr;
9979  cfdpClass.toString(cfdpClassStr);
9980 
9981  Fw::TextLogString _logString;
9982  (void) _logString.format(
9983  _formatString,
9984 #if FW_OBJECT_NAMES == 1
9985  this->m_objName.toChar(),
9986 #endif
9987  "TxFileTransferFailed ",
9988  cfdpClassStr.toChar(),
9989  seqNum,
9990  srcEid,
9991  srcFile.toChar(),
9992  destEid,
9993  destFile.toChar(),
9994  conditionCode
9995  );
9996 
9997  this->logTextOut_out(
9998  0,
9999  _id,
10000  _logTime,
10002  _logString
10003  );
10004  }
10005 #endif
10006  }
10007 
10010  const Svc::Ccsds::Cfdp::Class& cfdpClass,
10011  U32 seqNum,
10012  U32 srcEid,
10013  const Fw::StringBase& srcFile,
10014  U32 destEid,
10015  const Fw::StringBase& destFile,
10016  U32 fileSize
10017  ) const
10018  {
10019  // Get the time
10020  Fw::Time _logTime;
10021  if (this->isConnected_timeCaller_OutputPort(0)) {
10022  this->timeCaller_out(0, _logTime);
10023  }
10024 
10026 
10027  // Emit the event on the log port
10028  if (this->isConnected_logOut_OutputPort(0)) {
10029  Fw::LogBuffer _logBuff;
10031 
10032 #if FW_AMPCS_COMPATIBLE
10033  // Serialize the number of arguments
10034  _status = _logBuff.serializeFrom(static_cast<U8>(7));
10035  FW_ASSERT(
10036  _status == Fw::FW_SERIALIZE_OK,
10037  static_cast<FwAssertArgType>(_status)
10038  );
10039 #endif
10040 
10041 #if FW_AMPCS_COMPATIBLE
10042  // Serialize the argument size
10043  _status = _logBuff.serializeFrom(
10045  );
10046  FW_ASSERT(
10047  _status == Fw::FW_SERIALIZE_OK,
10048  static_cast<FwAssertArgType>(_status)
10049  );
10050 #endif
10051  _status = _logBuff.serializeFrom(cfdpClass);
10052  FW_ASSERT(
10053  _status == Fw::FW_SERIALIZE_OK,
10054  static_cast<FwAssertArgType>(_status)
10055  );
10056 
10057 #if FW_AMPCS_COMPATIBLE
10058  // Serialize the argument size
10059  _status = _logBuff.serializeFrom(
10060  static_cast<U8>(sizeof(U32))
10061  );
10062  FW_ASSERT(
10063  _status == Fw::FW_SERIALIZE_OK,
10064  static_cast<FwAssertArgType>(_status)
10065  );
10066 #endif
10067  _status = _logBuff.serializeFrom(seqNum);
10068  FW_ASSERT(
10069  _status == Fw::FW_SERIALIZE_OK,
10070  static_cast<FwAssertArgType>(_status)
10071  );
10072 
10073 #if FW_AMPCS_COMPATIBLE
10074  // Serialize the argument size
10075  _status = _logBuff.serializeFrom(
10076  static_cast<U8>(sizeof(U32))
10077  );
10078  FW_ASSERT(
10079  _status == Fw::FW_SERIALIZE_OK,
10080  static_cast<FwAssertArgType>(_status)
10081  );
10082 #endif
10083  _status = _logBuff.serializeFrom(srcEid);
10084  FW_ASSERT(
10085  _status == Fw::FW_SERIALIZE_OK,
10086  static_cast<FwAssertArgType>(_status)
10087  );
10088 
10089  _status = srcFile.serializeTo(
10090  _logBuff,
10091  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10092  );
10093  FW_ASSERT(
10094  _status == Fw::FW_SERIALIZE_OK,
10095  static_cast<FwAssertArgType>(_status)
10096  );
10097 
10098 #if FW_AMPCS_COMPATIBLE
10099  // Serialize the argument size
10100  _status = _logBuff.serializeFrom(
10101  static_cast<U8>(sizeof(U32))
10102  );
10103  FW_ASSERT(
10104  _status == Fw::FW_SERIALIZE_OK,
10105  static_cast<FwAssertArgType>(_status)
10106  );
10107 #endif
10108  _status = _logBuff.serializeFrom(destEid);
10109  FW_ASSERT(
10110  _status == Fw::FW_SERIALIZE_OK,
10111  static_cast<FwAssertArgType>(_status)
10112  );
10113 
10114  _status = destFile.serializeTo(
10115  _logBuff,
10116  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10117  );
10118  FW_ASSERT(
10119  _status == Fw::FW_SERIALIZE_OK,
10120  static_cast<FwAssertArgType>(_status)
10121  );
10122 
10123 #if FW_AMPCS_COMPATIBLE
10124  // Serialize the argument size
10125  _status = _logBuff.serializeFrom(
10126  static_cast<U8>(sizeof(U32))
10127  );
10128  FW_ASSERT(
10129  _status == Fw::FW_SERIALIZE_OK,
10130  static_cast<FwAssertArgType>(_status)
10131  );
10132 #endif
10133  _status = _logBuff.serializeFrom(fileSize);
10134  FW_ASSERT(
10135  _status == Fw::FW_SERIALIZE_OK,
10136  static_cast<FwAssertArgType>(_status)
10137  );
10138 
10139  this->logOut_out(
10140  0,
10141  _id,
10142  _logTime,
10144  _logBuff
10145  );
10146  }
10147 
10148  // Emit the event on the text log port
10149 #if FW_ENABLE_TEXT_LOGGING
10150  if (this->isConnected_logTextOut_OutputPort(0)) {
10151 #if FW_OBJECT_NAMES == 1
10152  const char* _formatString =
10153  "(%s) %s: RX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
10154 #else
10155  const char* _formatString =
10156  "%s: RX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
10157 #endif
10158 
10159  Fw::String cfdpClassStr;
10160  cfdpClass.toString(cfdpClassStr);
10161 
10162  Fw::TextLogString _logString;
10163  (void) _logString.format(
10164  _formatString,
10165 #if FW_OBJECT_NAMES == 1
10166  this->m_objName.toChar(),
10167 #endif
10168  "RxFileTransferCompleted ",
10169  cfdpClassStr.toChar(),
10170  seqNum,
10171  srcEid,
10172  srcFile.toChar(),
10173  destEid,
10174  destFile.toChar(),
10175  fileSize
10176  );
10177 
10178  this->logTextOut_out(
10179  0,
10180  _id,
10181  _logTime,
10183  _logString
10184  );
10185  }
10186 #endif
10187  }
10188 
10191  const Svc::Ccsds::Cfdp::Class& cfdpClass,
10192  U32 seqNum,
10193  U32 srcEid,
10194  const Fw::StringBase& srcFile,
10195  U32 destEid,
10196  const Fw::StringBase& destFile,
10197  U8 conditionCode
10198  ) const
10199  {
10200  // Get the time
10201  Fw::Time _logTime;
10202  if (this->isConnected_timeCaller_OutputPort(0)) {
10203  this->timeCaller_out(0, _logTime);
10204  }
10205 
10207 
10208  // Emit the event on the log port
10209  if (this->isConnected_logOut_OutputPort(0)) {
10210  Fw::LogBuffer _logBuff;
10212 
10213 #if FW_AMPCS_COMPATIBLE
10214  // Serialize the number of arguments
10215  _status = _logBuff.serializeFrom(static_cast<U8>(7));
10216  FW_ASSERT(
10217  _status == Fw::FW_SERIALIZE_OK,
10218  static_cast<FwAssertArgType>(_status)
10219  );
10220 #endif
10221 
10222 #if FW_AMPCS_COMPATIBLE
10223  // Serialize the argument size
10224  _status = _logBuff.serializeFrom(
10226  );
10227  FW_ASSERT(
10228  _status == Fw::FW_SERIALIZE_OK,
10229  static_cast<FwAssertArgType>(_status)
10230  );
10231 #endif
10232  _status = _logBuff.serializeFrom(cfdpClass);
10233  FW_ASSERT(
10234  _status == Fw::FW_SERIALIZE_OK,
10235  static_cast<FwAssertArgType>(_status)
10236  );
10237 
10238 #if FW_AMPCS_COMPATIBLE
10239  // Serialize the argument size
10240  _status = _logBuff.serializeFrom(
10241  static_cast<U8>(sizeof(U32))
10242  );
10243  FW_ASSERT(
10244  _status == Fw::FW_SERIALIZE_OK,
10245  static_cast<FwAssertArgType>(_status)
10246  );
10247 #endif
10248  _status = _logBuff.serializeFrom(seqNum);
10249  FW_ASSERT(
10250  _status == Fw::FW_SERIALIZE_OK,
10251  static_cast<FwAssertArgType>(_status)
10252  );
10253 
10254 #if FW_AMPCS_COMPATIBLE
10255  // Serialize the argument size
10256  _status = _logBuff.serializeFrom(
10257  static_cast<U8>(sizeof(U32))
10258  );
10259  FW_ASSERT(
10260  _status == Fw::FW_SERIALIZE_OK,
10261  static_cast<FwAssertArgType>(_status)
10262  );
10263 #endif
10264  _status = _logBuff.serializeFrom(srcEid);
10265  FW_ASSERT(
10266  _status == Fw::FW_SERIALIZE_OK,
10267  static_cast<FwAssertArgType>(_status)
10268  );
10269 
10270  _status = srcFile.serializeTo(
10271  _logBuff,
10272  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10273  );
10274  FW_ASSERT(
10275  _status == Fw::FW_SERIALIZE_OK,
10276  static_cast<FwAssertArgType>(_status)
10277  );
10278 
10279 #if FW_AMPCS_COMPATIBLE
10280  // Serialize the argument size
10281  _status = _logBuff.serializeFrom(
10282  static_cast<U8>(sizeof(U32))
10283  );
10284  FW_ASSERT(
10285  _status == Fw::FW_SERIALIZE_OK,
10286  static_cast<FwAssertArgType>(_status)
10287  );
10288 #endif
10289  _status = _logBuff.serializeFrom(destEid);
10290  FW_ASSERT(
10291  _status == Fw::FW_SERIALIZE_OK,
10292  static_cast<FwAssertArgType>(_status)
10293  );
10294 
10295  _status = destFile.serializeTo(
10296  _logBuff,
10297  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10298  );
10299  FW_ASSERT(
10300  _status == Fw::FW_SERIALIZE_OK,
10301  static_cast<FwAssertArgType>(_status)
10302  );
10303 
10304 #if FW_AMPCS_COMPATIBLE
10305  // Serialize the argument size
10306  _status = _logBuff.serializeFrom(
10307  static_cast<U8>(sizeof(U8))
10308  );
10309  FW_ASSERT(
10310  _status == Fw::FW_SERIALIZE_OK,
10311  static_cast<FwAssertArgType>(_status)
10312  );
10313 #endif
10314  _status = _logBuff.serializeFrom(conditionCode);
10315  FW_ASSERT(
10316  _status == Fw::FW_SERIALIZE_OK,
10317  static_cast<FwAssertArgType>(_status)
10318  );
10319 
10320  this->logOut_out(
10321  0,
10322  _id,
10323  _logTime,
10325  _logBuff
10326  );
10327  }
10328 
10329  // Emit the event on the text log port
10330 #if FW_ENABLE_TEXT_LOGGING
10331  if (this->isConnected_logTextOut_OutputPort(0)) {
10332 #if FW_OBJECT_NAMES == 1
10333  const char* _formatString =
10334  "(%s) %s: RX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
10335 #else
10336  const char* _formatString =
10337  "%s: RX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
10338 #endif
10339 
10340  Fw::String cfdpClassStr;
10341  cfdpClass.toString(cfdpClassStr);
10342 
10343  Fw::TextLogString _logString;
10344  (void) _logString.format(
10345  _formatString,
10346 #if FW_OBJECT_NAMES == 1
10347  this->m_objName.toChar(),
10348 #endif
10349  "RxFileTransferFailed ",
10350  cfdpClassStr.toChar(),
10351  seqNum,
10352  srcEid,
10353  srcFile.toChar(),
10354  destEid,
10355  destFile.toChar(),
10356  conditionCode
10357  );
10358 
10359  this->logTextOut_out(
10360  0,
10361  _id,
10362  _logTime,
10364  _logString
10365  );
10366  }
10367 #endif
10368  }
10369 
10372  const Fw::StringBase& srcFile,
10373  const Fw::StringBase& destFile,
10374  U32 transactionSeq
10375  ) const
10376  {
10377  // Get the time
10378  Fw::Time _logTime;
10379  if (this->isConnected_timeCaller_OutputPort(0)) {
10380  this->timeCaller_out(0, _logTime);
10381  }
10382 
10383  const FwEventIdType _id = this->getIdBase() + EVENTID_METADATARECEIVED;
10384 
10385  // Emit the event on the log port
10386  if (this->isConnected_logOut_OutputPort(0)) {
10387  Fw::LogBuffer _logBuff;
10389 
10390 #if FW_AMPCS_COMPATIBLE
10391  // Serialize the number of arguments
10392  _status = _logBuff.serializeFrom(static_cast<U8>(3));
10393  FW_ASSERT(
10394  _status == Fw::FW_SERIALIZE_OK,
10395  static_cast<FwAssertArgType>(_status)
10396  );
10397 #endif
10398 
10399  _status = srcFile.serializeTo(
10400  _logBuff,
10401  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10402  );
10403  FW_ASSERT(
10404  _status == Fw::FW_SERIALIZE_OK,
10405  static_cast<FwAssertArgType>(_status)
10406  );
10407 
10408  _status = destFile.serializeTo(
10409  _logBuff,
10410  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10411  );
10412  FW_ASSERT(
10413  _status == Fw::FW_SERIALIZE_OK,
10414  static_cast<FwAssertArgType>(_status)
10415  );
10416 
10417 #if FW_AMPCS_COMPATIBLE
10418  // Serialize the argument size
10419  _status = _logBuff.serializeFrom(
10420  static_cast<U8>(sizeof(U32))
10421  );
10422  FW_ASSERT(
10423  _status == Fw::FW_SERIALIZE_OK,
10424  static_cast<FwAssertArgType>(_status)
10425  );
10426 #endif
10427  _status = _logBuff.serializeFrom(transactionSeq);
10428  FW_ASSERT(
10429  _status == Fw::FW_SERIALIZE_OK,
10430  static_cast<FwAssertArgType>(_status)
10431  );
10432 
10433  this->logOut_out(
10434  0,
10435  _id,
10436  _logTime,
10438  _logBuff
10439  );
10440  }
10441 
10442  // Emit the event on the text log port
10443 #if FW_ENABLE_TEXT_LOGGING
10444  if (this->isConnected_logTextOut_OutputPort(0)) {
10445 #if FW_OBJECT_NAMES == 1
10446  const char* _formatString =
10447  "(%s) %s: Metadata received for source: %s, dest: %s (transaction %" PRIu32 ")";
10448 #else
10449  const char* _formatString =
10450  "%s: Metadata received for source: %s, dest: %s (transaction %" PRIu32 ")";
10451 #endif
10452 
10453  Fw::TextLogString _logString;
10454  (void) _logString.format(
10455  _formatString,
10456 #if FW_OBJECT_NAMES == 1
10457  this->m_objName.toChar(),
10458 #endif
10459  "MetadataReceived ",
10460  srcFile.toChar(),
10461  destFile.toChar(),
10462  transactionSeq
10463  );
10464 
10465  this->logTextOut_out(
10466  0,
10467  _id,
10468  _logTime,
10470  _logString
10471  );
10472  }
10473 #endif
10474  }
10475 
10478  {
10479  // Get the time
10480  Fw::Time _logTime;
10481  if (this->isConnected_timeCaller_OutputPort(0)) {
10482  this->timeCaller_out(0, _logTime);
10483  }
10484 
10486 
10487  // Emit the event on the log port
10488  if (this->isConnected_logOut_OutputPort(0)) {
10489  Fw::LogBuffer _logBuff;
10490 
10491 #if FW_AMPCS_COMPATIBLE
10493  // Serialize the number of arguments
10494  _status = _logBuff.serializeFrom(static_cast<U8>(0));
10495  FW_ASSERT(
10496  _status == Fw::FW_SERIALIZE_OK,
10497  static_cast<FwAssertArgType>(_status)
10498  );
10499 #endif
10500 
10501  this->logOut_out(
10502  0,
10503  _id,
10504  _logTime,
10506  _logBuff
10507  );
10508  }
10509 
10510  // Emit the event on the text log port
10511 #if FW_ENABLE_TEXT_LOGGING
10512  if (this->isConnected_logTextOut_OutputPort(0)) {
10513 #if FW_OBJECT_NAMES == 1
10514  const char* _formatString =
10515  "(%s) %s: File data PDU with unsupported segment metadata received";
10516 #else
10517  const char* _formatString =
10518  "%s: File data PDU with unsupported segment metadata received";
10519 #endif
10520 
10521  Fw::TextLogString _logString;
10522  (void) _logString.format(
10523  _formatString,
10524 #if FW_OBJECT_NAMES == 1
10525  this->m_objName.toChar(),
10526 #endif
10527  "FileDataSegmentMetadata "
10528  );
10529 
10530  this->logTextOut_out(
10531  0,
10532  _id,
10533  _logTime,
10535  _logString
10536  );
10537  }
10538 #endif
10539  }
10540 
10542  log_WARNING_LO_ChunklistUnavailable(U32 transactionSeq) const
10543  {
10544  // Get the time
10545  Fw::Time _logTime;
10546  if (this->isConnected_timeCaller_OutputPort(0)) {
10547  this->timeCaller_out(0, _logTime);
10548  }
10549 
10551 
10552  // Emit the event on the log port
10553  if (this->isConnected_logOut_OutputPort(0)) {
10554  Fw::LogBuffer _logBuff;
10556 
10557 #if FW_AMPCS_COMPATIBLE
10558  // Serialize the number of arguments
10559  _status = _logBuff.serializeFrom(static_cast<U8>(1));
10560  FW_ASSERT(
10561  _status == Fw::FW_SERIALIZE_OK,
10562  static_cast<FwAssertArgType>(_status)
10563  );
10564 #endif
10565 
10566 #if FW_AMPCS_COMPATIBLE
10567  // Serialize the argument size
10568  _status = _logBuff.serializeFrom(
10569  static_cast<U8>(sizeof(U32))
10570  );
10571  FW_ASSERT(
10572  _status == Fw::FW_SERIALIZE_OK,
10573  static_cast<FwAssertArgType>(_status)
10574  );
10575 #endif
10576  _status = _logBuff.serializeFrom(transactionSeq);
10577  FW_ASSERT(
10578  _status == Fw::FW_SERIALIZE_OK,
10579  static_cast<FwAssertArgType>(_status)
10580  );
10581 
10582  this->logOut_out(
10583  0,
10584  _id,
10585  _logTime,
10587  _logBuff
10588  );
10589  }
10590 
10591  // Emit the event on the text log port
10592 #if FW_ENABLE_TEXT_LOGGING
10593  if (this->isConnected_logTextOut_OutputPort(0)) {
10594 #if FW_OBJECT_NAMES == 1
10595  const char* _formatString =
10596  "(%s) %s: Cannot get chunklist, abandoning transaction %" PRIu32 "";
10597 #else
10598  const char* _formatString =
10599  "%s: Cannot get chunklist, abandoning transaction %" PRIu32 "";
10600 #endif
10601 
10602  Fw::TextLogString _logString;
10603  (void) _logString.format(
10604  _formatString,
10605 #if FW_OBJECT_NAMES == 1
10606  this->m_objName.toChar(),
10607 #endif
10608  "ChunklistUnavailable ",
10609  transactionSeq
10610  );
10611 
10612  this->logTextOut_out(
10613  0,
10614  _id,
10615  _logTime,
10617  _logString
10618  );
10619  }
10620 #endif
10621  }
10622 
10625  {
10626  // Get the time
10627  Fw::Time _logTime;
10628  if (this->isConnected_timeCaller_OutputPort(0)) {
10629  this->timeCaller_out(0, _logTime);
10630  }
10631 
10633 
10634  // Emit the event on the log port
10635  if (this->isConnected_logOut_OutputPort(0)) {
10636  Fw::LogBuffer _logBuff;
10637 
10638 #if FW_AMPCS_COMPATIBLE
10640  // Serialize the number of arguments
10641  _status = _logBuff.serializeFrom(static_cast<U8>(0));
10642  FW_ASSERT(
10643  _status == Fw::FW_SERIALIZE_OK,
10644  static_cast<FwAssertArgType>(_status)
10645  );
10646 #endif
10647 
10648  this->logOut_out(
10649  0,
10650  _id,
10651  _logTime,
10653  _logBuff
10654  );
10655  }
10656 
10657  // Emit the event on the text log port
10658 #if FW_ENABLE_TEXT_LOGGING
10659  if (this->isConnected_logTextOut_OutputPort(0)) {
10660 #if FW_OBJECT_NAMES == 1
10661  const char* _formatString =
10662  "(%s) %s: Unhandled PDU type received in idle state";
10663 #else
10664  const char* _formatString =
10665  "%s: Unhandled PDU type received in idle state";
10666 #endif
10667 
10668  Fw::TextLogString _logString;
10669  (void) _logString.format(
10670  _formatString,
10671 #if FW_OBJECT_NAMES == 1
10672  this->m_objName.toChar(),
10673 #endif
10674  "UnhandledPduInIdleState "
10675  );
10676 
10677  this->logTextOut_out(
10678  0,
10679  _id,
10680  _logTime,
10682  _logString
10683  );
10684  }
10685 #endif
10686  }
10687 
10690  U32 srcEid,
10691  U32 transactionSeq
10692  ) const
10693  {
10694  // Get the time
10695  Fw::Time _logTime;
10696  if (this->isConnected_timeCaller_OutputPort(0)) {
10697  this->timeCaller_out(0, _logTime);
10698  }
10699 
10701 
10702  // Emit the event on the log port
10703  if (this->isConnected_logOut_OutputPort(0)) {
10704  Fw::LogBuffer _logBuff;
10706 
10707 #if FW_AMPCS_COMPATIBLE
10708  // Serialize the number of arguments
10709  _status = _logBuff.serializeFrom(static_cast<U8>(2));
10710  FW_ASSERT(
10711  _status == Fw::FW_SERIALIZE_OK,
10712  static_cast<FwAssertArgType>(_status)
10713  );
10714 #endif
10715 
10716 #if FW_AMPCS_COMPATIBLE
10717  // Serialize the argument size
10718  _status = _logBuff.serializeFrom(
10719  static_cast<U8>(sizeof(U32))
10720  );
10721  FW_ASSERT(
10722  _status == Fw::FW_SERIALIZE_OK,
10723  static_cast<FwAssertArgType>(_status)
10724  );
10725 #endif
10726  _status = _logBuff.serializeFrom(srcEid);
10727  FW_ASSERT(
10728  _status == Fw::FW_SERIALIZE_OK,
10729  static_cast<FwAssertArgType>(_status)
10730  );
10731 
10732 #if FW_AMPCS_COMPATIBLE
10733  // Serialize the argument size
10734  _status = _logBuff.serializeFrom(
10735  static_cast<U8>(sizeof(U32))
10736  );
10737  FW_ASSERT(
10738  _status == Fw::FW_SERIALIZE_OK,
10739  static_cast<FwAssertArgType>(_status)
10740  );
10741 #endif
10742  _status = _logBuff.serializeFrom(transactionSeq);
10743  FW_ASSERT(
10744  _status == Fw::FW_SERIALIZE_OK,
10745  static_cast<FwAssertArgType>(_status)
10746  );
10747 
10748  this->logOut_out(
10749  0,
10750  _id,
10751  _logTime,
10753  _logBuff
10754  );
10755  }
10756 
10757  // Emit the event on the text log port
10758 #if FW_ENABLE_TEXT_LOGGING
10759  if (this->isConnected_logTextOut_OutputPort(0)) {
10760 #if FW_OBJECT_NAMES == 1
10761  const char* _formatString =
10762  "(%s) %s: Dropping packet from %" PRIu32 " transaction %" PRIu32 " due to max RX transactions reached";
10763 #else
10764  const char* _formatString =
10765  "%s: Dropping packet from %" PRIu32 " transaction %" PRIu32 " due to max RX transactions reached";
10766 #endif
10767 
10768  Fw::TextLogString _logString;
10769  (void) _logString.format(
10770  _formatString,
10771 #if FW_OBJECT_NAMES == 1
10772  this->m_objName.toChar(),
10773 #endif
10774  "RxTransactionLimitReached ",
10775  srcEid,
10776  transactionSeq
10777  );
10778 
10779  this->logTextOut_out(
10780  0,
10781  _id,
10782  _logTime,
10784  _logString
10785  );
10786  }
10787 #endif
10788  }
10789 
10792  {
10793  // Get the time
10794  Fw::Time _logTime;
10795  if (this->isConnected_timeCaller_OutputPort(0)) {
10796  this->timeCaller_out(0, _logTime);
10797  }
10798 
10800 
10801  // Emit the event on the log port
10802  if (this->isConnected_logOut_OutputPort(0)) {
10803  Fw::LogBuffer _logBuff;
10805 
10806 #if FW_AMPCS_COMPATIBLE
10807  // Serialize the number of arguments
10808  _status = _logBuff.serializeFrom(static_cast<U8>(1));
10809  FW_ASSERT(
10810  _status == Fw::FW_SERIALIZE_OK,
10811  static_cast<FwAssertArgType>(_status)
10812  );
10813 #endif
10814 
10815 #if FW_AMPCS_COMPATIBLE
10816  // Serialize the argument size
10817  _status = _logBuff.serializeFrom(
10818  static_cast<U8>(sizeof(U32))
10819  );
10820  FW_ASSERT(
10821  _status == Fw::FW_SERIALIZE_OK,
10822  static_cast<FwAssertArgType>(_status)
10823  );
10824 #endif
10825  _status = _logBuff.serializeFrom(destEid);
10826  FW_ASSERT(
10827  _status == Fw::FW_SERIALIZE_OK,
10828  static_cast<FwAssertArgType>(_status)
10829  );
10830 
10831  this->logOut_out(
10832  0,
10833  _id,
10834  _logTime,
10836  _logBuff
10837  );
10838  }
10839 
10840  // Emit the event on the text log port
10841 #if FW_ENABLE_TEXT_LOGGING
10842  if (this->isConnected_logTextOut_OutputPort(0)) {
10843 #if FW_OBJECT_NAMES == 1
10844  const char* _formatString =
10845  "(%s) %s: Dropping packet for invalid destination EID %" PRIu32 "";
10846 #else
10847  const char* _formatString =
10848  "%s: Dropping packet for invalid destination EID %" PRIu32 "";
10849 #endif
10850 
10851  Fw::TextLogString _logString;
10852  (void) _logString.format(
10853  _formatString,
10854 #if FW_OBJECT_NAMES == 1
10855  this->m_objName.toChar(),
10856 #endif
10857  "InvalidDestinationEid ",
10858  destEid
10859  );
10860 
10861  this->logTextOut_out(
10862  0,
10863  _id,
10864  _logTime,
10866  _logString
10867  );
10868  }
10869 #endif
10870  }
10871 
10874  {
10875  // Get the time
10876  Fw::Time _logTime;
10877  if (this->isConnected_timeCaller_OutputPort(0)) {
10878  this->timeCaller_out(0, _logTime);
10879  }
10880 
10882 
10883  // Emit the event on the log port
10884  if (this->isConnected_logOut_OutputPort(0)) {
10885  Fw::LogBuffer _logBuff;
10886 
10887 #if FW_AMPCS_COMPATIBLE
10889  // Serialize the number of arguments
10890  _status = _logBuff.serializeFrom(static_cast<U8>(0));
10891  FW_ASSERT(
10892  _status == Fw::FW_SERIALIZE_OK,
10893  static_cast<FwAssertArgType>(_status)
10894  );
10895 #endif
10896 
10897  this->logOut_out(
10898  0,
10899  _id,
10900  _logTime,
10902  _logBuff
10903  );
10904  }
10905 
10906  // Emit the event on the text log port
10907 #if FW_ENABLE_TEXT_LOGGING
10908  if (this->isConnected_logTextOut_OutputPort(0)) {
10909 #if FW_OBJECT_NAMES == 1
10910  const char* _formatString =
10911  "(%s) %s: Maximum number of commanded TX files reached";
10912 #else
10913  const char* _formatString =
10914  "%s: Maximum number of commanded TX files reached";
10915 #endif
10916 
10917  Fw::TextLogString _logString;
10918  (void) _logString.format(
10919  _formatString,
10920 #if FW_OBJECT_NAMES == 1
10921  this->m_objName.toChar(),
10922 #endif
10923  "MaxTxTransactionsReached "
10924  );
10925 
10926  this->logTextOut_out(
10927  0,
10928  _id,
10929  _logTime,
10931  _logString
10932  );
10933  }
10934 #endif
10935  }
10936 
10939  const Fw::StringBase& directory,
10940  I32 status
10941  ) const
10942  {
10943  // Get the time
10944  Fw::Time _logTime;
10945  if (this->isConnected_timeCaller_OutputPort(0)) {
10946  this->timeCaller_out(0, _logTime);
10947  }
10948 
10950 
10951  // Emit the event on the log port
10952  if (this->isConnected_logOut_OutputPort(0)) {
10953  Fw::LogBuffer _logBuff;
10955 
10956 #if FW_AMPCS_COMPATIBLE
10957  // Serialize the number of arguments
10958  _status = _logBuff.serializeFrom(static_cast<U8>(2));
10959  FW_ASSERT(
10960  _status == Fw::FW_SERIALIZE_OK,
10961  static_cast<FwAssertArgType>(_status)
10962  );
10963 #endif
10964 
10965  _status = directory.serializeTo(
10966  _logBuff,
10967  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10968  );
10969  FW_ASSERT(
10970  _status == Fw::FW_SERIALIZE_OK,
10971  static_cast<FwAssertArgType>(_status)
10972  );
10973 
10974 #if FW_AMPCS_COMPATIBLE
10975  // Serialize the argument size
10976  _status = _logBuff.serializeFrom(
10977  static_cast<U8>(sizeof(I32))
10978  );
10979  FW_ASSERT(
10980  _status == Fw::FW_SERIALIZE_OK,
10981  static_cast<FwAssertArgType>(_status)
10982  );
10983 #endif
10984  _status = _logBuff.serializeFrom(status);
10985  FW_ASSERT(
10986  _status == Fw::FW_SERIALIZE_OK,
10987  static_cast<FwAssertArgType>(_status)
10988  );
10989 
10990  this->logOut_out(
10991  0,
10992  _id,
10993  _logTime,
10995  _logBuff
10996  );
10997  }
10998 
10999  // Emit the event on the text log port
11000 #if FW_ENABLE_TEXT_LOGGING
11001  if (this->isConnected_logTextOut_OutputPort(0)) {
11002 #if FW_OBJECT_NAMES == 1
11003  const char* _formatString =
11004  "(%s) %s: Failed to open playback directory %s, error=%" PRIi32 "";
11005 #else
11006  const char* _formatString =
11007  "%s: Failed to open playback directory %s, error=%" PRIi32 "";
11008 #endif
11009 
11010  Fw::TextLogString _logString;
11011  (void) _logString.format(
11012  _formatString,
11013 #if FW_OBJECT_NAMES == 1
11014  this->m_objName.toChar(),
11015 #endif
11016  "PlaybackDirOpenFailed ",
11017  directory.toChar(),
11018  status
11019  );
11020 
11021  this->logTextOut_out(
11022  0,
11023  _id,
11024  _logTime,
11026  _logString
11027  );
11028  }
11029 #endif
11030  }
11031 
11034  {
11035  // Get the time
11036  Fw::Time _logTime;
11037  if (this->isConnected_timeCaller_OutputPort(0)) {
11038  this->timeCaller_out(0, _logTime);
11039  }
11040 
11042 
11043  // Emit the event on the log port
11044  if (this->isConnected_logOut_OutputPort(0)) {
11045  Fw::LogBuffer _logBuff;
11046 
11047 #if FW_AMPCS_COMPATIBLE
11049  // Serialize the number of arguments
11050  _status = _logBuff.serializeFrom(static_cast<U8>(0));
11051  FW_ASSERT(
11052  _status == Fw::FW_SERIALIZE_OK,
11053  static_cast<FwAssertArgType>(_status)
11054  );
11055 #endif
11056 
11057  this->logOut_out(
11058  0,
11059  _id,
11060  _logTime,
11062  _logBuff
11063  );
11064  }
11065 
11066  // Emit the event on the text log port
11067 #if FW_ENABLE_TEXT_LOGGING
11068  if (this->isConnected_logTextOut_OutputPort(0)) {
11069 #if FW_OBJECT_NAMES == 1
11070  const char* _formatString =
11071  "(%s) %s: No playback directory slot available";
11072 #else
11073  const char* _formatString =
11074  "%s: No playback directory slot available";
11075 #endif
11076 
11077  Fw::TextLogString _logString;
11078  (void) _logString.format(
11079  _formatString,
11080 #if FW_OBJECT_NAMES == 1
11081  this->m_objName.toChar(),
11082 #endif
11083  "PlaybackDirSlotUnavailable "
11084  );
11085 
11086  this->logTextOut_out(
11087  0,
11088  _id,
11089  _logTime,
11091  _logString
11092  );
11093  }
11094 #endif
11095  }
11096 
11099  U8 channelId,
11100  U32 transactionSeq
11101  ) const
11102  {
11103  // Get the time
11104  Fw::Time _logTime;
11105  if (this->isConnected_timeCaller_OutputPort(0)) {
11106  this->timeCaller_out(0, _logTime);
11107  }
11108 
11110 
11111  // Emit the event on the log port
11112  if (this->isConnected_logOut_OutputPort(0)) {
11113  Fw::LogBuffer _logBuff;
11115 
11116 #if FW_AMPCS_COMPATIBLE
11117  // Serialize the number of arguments
11118  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11119  FW_ASSERT(
11120  _status == Fw::FW_SERIALIZE_OK,
11121  static_cast<FwAssertArgType>(_status)
11122  );
11123 #endif
11124 
11125 #if FW_AMPCS_COMPATIBLE
11126  // Serialize the argument size
11127  _status = _logBuff.serializeFrom(
11128  static_cast<U8>(sizeof(U8))
11129  );
11130  FW_ASSERT(
11131  _status == Fw::FW_SERIALIZE_OK,
11132  static_cast<FwAssertArgType>(_status)
11133  );
11134 #endif
11135  _status = _logBuff.serializeFrom(channelId);
11136  FW_ASSERT(
11137  _status == Fw::FW_SERIALIZE_OK,
11138  static_cast<FwAssertArgType>(_status)
11139  );
11140 
11141 #if FW_AMPCS_COMPATIBLE
11142  // Serialize the argument size
11143  _status = _logBuff.serializeFrom(
11144  static_cast<U8>(sizeof(U32))
11145  );
11146  FW_ASSERT(
11147  _status == Fw::FW_SERIALIZE_OK,
11148  static_cast<FwAssertArgType>(_status)
11149  );
11150 #endif
11151  _status = _logBuff.serializeFrom(transactionSeq);
11152  FW_ASSERT(
11153  _status == Fw::FW_SERIALIZE_OK,
11154  static_cast<FwAssertArgType>(_status)
11155  );
11156 
11157  this->logOut_out(
11158  0,
11159  _id,
11160  _logTime,
11162  _logBuff
11163  );
11164  }
11165 
11166  // Emit the event on the text log port
11167 #if FW_ENABLE_TEXT_LOGGING
11168  if (this->isConnected_logTextOut_OutputPort(0)) {
11169 #if FW_OBJECT_NAMES == 1
11170  const char* _formatString =
11171  "(%s) %s: Closed dangling file handle for channel %" PRIu8 " transaction %" PRIu32 "";
11172 #else
11173  const char* _formatString =
11174  "%s: Closed dangling file handle for channel %" PRIu8 " transaction %" PRIu32 "";
11175 #endif
11176 
11177  Fw::TextLogString _logString;
11178  (void) _logString.format(
11179  _formatString,
11180 #if FW_OBJECT_NAMES == 1
11181  this->m_objName.toChar(),
11182 #endif
11183  "DanglingFileHandleClosed ",
11184  channelId,
11185  transactionSeq
11186  );
11187 
11188  this->logTextOut_out(
11189  0,
11190  _id,
11191  _logTime,
11193  _logString
11194  );
11195  }
11196 #endif
11197  }
11198 
11201  const Fw::StringBase& directory,
11202  I32 status
11203  ) const
11204  {
11205  // Get the time
11206  Fw::Time _logTime;
11207  if (this->isConnected_timeCaller_OutputPort(0)) {
11208  this->timeCaller_out(0, _logTime);
11209  }
11210 
11212 
11213  // Emit the event on the log port
11214  if (this->isConnected_logOut_OutputPort(0)) {
11215  Fw::LogBuffer _logBuff;
11217 
11218 #if FW_AMPCS_COMPATIBLE
11219  // Serialize the number of arguments
11220  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11221  FW_ASSERT(
11222  _status == Fw::FW_SERIALIZE_OK,
11223  static_cast<FwAssertArgType>(_status)
11224  );
11225 #endif
11226 
11227  _status = directory.serializeTo(
11228  _logBuff,
11229  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
11230  );
11231  FW_ASSERT(
11232  _status == Fw::FW_SERIALIZE_OK,
11233  static_cast<FwAssertArgType>(_status)
11234  );
11235 
11236 #if FW_AMPCS_COMPATIBLE
11237  // Serialize the argument size
11238  _status = _logBuff.serializeFrom(
11239  static_cast<U8>(sizeof(I32))
11240  );
11241  FW_ASSERT(
11242  _status == Fw::FW_SERIALIZE_OK,
11243  static_cast<FwAssertArgType>(_status)
11244  );
11245 #endif
11246  _status = _logBuff.serializeFrom(status);
11247  FW_ASSERT(
11248  _status == Fw::FW_SERIALIZE_OK,
11249  static_cast<FwAssertArgType>(_status)
11250  );
11251 
11252  this->logOut_out(
11253  0,
11254  _id,
11255  _logTime,
11257  _logBuff
11258  );
11259  }
11260 
11261  // Emit the event on the text log port
11262 #if FW_ENABLE_TEXT_LOGGING
11263  if (this->isConnected_logTextOut_OutputPort(0)) {
11264 #if FW_OBJECT_NAMES == 1
11265  const char* _formatString =
11266  "(%s) %s: Failed to read from playback directory %s, error=%" PRIi32 "";
11267 #else
11268  const char* _formatString =
11269  "%s: Failed to read from playback directory %s, error=%" PRIi32 "";
11270 #endif
11271 
11272  Fw::TextLogString _logString;
11273  (void) _logString.format(
11274  _formatString,
11275 #if FW_OBJECT_NAMES == 1
11276  this->m_objName.toChar(),
11277 #endif
11278  "PlaybackDirReadFailed ",
11279  directory.toChar(),
11280  status
11281  );
11282 
11283  this->logTextOut_out(
11284  0,
11285  _id,
11286  _logTime,
11288  _logString
11289  );
11290  }
11291 #endif
11292  }
11293 
11296  {
11297  // Get the time
11298  Fw::Time _logTime;
11299  if (this->isConnected_timeCaller_OutputPort(0)) {
11300  this->timeCaller_out(0, _logTime);
11301  }
11302 
11304 
11305  // Emit the event on the log port
11306  if (this->isConnected_logOut_OutputPort(0)) {
11307  Fw::LogBuffer _logBuff;
11308 
11309 #if FW_AMPCS_COMPATIBLE
11311  // Serialize the number of arguments
11312  _status = _logBuff.serializeFrom(static_cast<U8>(0));
11313  FW_ASSERT(
11314  _status == Fw::FW_SERIALIZE_OK,
11315  static_cast<FwAssertArgType>(_status)
11316  );
11317 #endif
11318 
11319  this->logOut_out(
11320  0,
11321  _id,
11322  _logTime,
11324  _logBuff
11325  );
11326  }
11327 
11328  // Emit the event on the text log port
11329 #if FW_ENABLE_TEXT_LOGGING
11330  if (this->isConnected_logTextOut_OutputPort(0)) {
11331 #if FW_OBJECT_NAMES == 1
11332  const char* _formatString =
11333  "(%s) %s: Attempt to reset a transaction that has already been freed";
11334 #else
11335  const char* _formatString =
11336  "%s: Attempt to reset a transaction that has already been freed";
11337 #endif
11338 
11339  Fw::TextLogString _logString;
11340  (void) _logString.format(
11341  _formatString,
11342 #if FW_OBJECT_NAMES == 1
11343  this->m_objName.toChar(),
11344 #endif
11345  "ResetFreedTransaction "
11346  );
11347 
11348  this->logTextOut_out(
11349  0,
11350  _id,
11351  _logTime,
11353  _logString
11354  );
11355  }
11356 #endif
11357  }
11358 
11361  const Fw::StringBase& filename,
11362  I32 status
11363  ) const
11364  {
11365  // Get the time
11366  Fw::Time _logTime;
11367  if (this->isConnected_timeCaller_OutputPort(0)) {
11368  this->timeCaller_out(0, _logTime);
11369  }
11370 
11371  const FwEventIdType _id = this->getIdBase() + EVENTID_FILEREMOVEFAILED;
11372 
11373  // Emit the event on the log port
11374  if (this->isConnected_logOut_OutputPort(0)) {
11375  Fw::LogBuffer _logBuff;
11377 
11378 #if FW_AMPCS_COMPATIBLE
11379  // Serialize the number of arguments
11380  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11381  FW_ASSERT(
11382  _status == Fw::FW_SERIALIZE_OK,
11383  static_cast<FwAssertArgType>(_status)
11384  );
11385 #endif
11386 
11387  _status = filename.serializeTo(
11388  _logBuff,
11389  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
11390  );
11391  FW_ASSERT(
11392  _status == Fw::FW_SERIALIZE_OK,
11393  static_cast<FwAssertArgType>(_status)
11394  );
11395 
11396 #if FW_AMPCS_COMPATIBLE
11397  // Serialize the argument size
11398  _status = _logBuff.serializeFrom(
11399  static_cast<U8>(sizeof(I32))
11400  );
11401  FW_ASSERT(
11402  _status == Fw::FW_SERIALIZE_OK,
11403  static_cast<FwAssertArgType>(_status)
11404  );
11405 #endif
11406  _status = _logBuff.serializeFrom(status);
11407  FW_ASSERT(
11408  _status == Fw::FW_SERIALIZE_OK,
11409  static_cast<FwAssertArgType>(_status)
11410  );
11411 
11412  this->logOut_out(
11413  0,
11414  _id,
11415  _logTime,
11417  _logBuff
11418  );
11419  }
11420 
11421  // Emit the event on the text log port
11422 #if FW_ENABLE_TEXT_LOGGING
11423  if (this->isConnected_logTextOut_OutputPort(0)) {
11424 #if FW_OBJECT_NAMES == 1
11425  const char* _formatString =
11426  "(%s) %s: Failed to remove file %s, error=%" PRIi32 "";
11427 #else
11428  const char* _formatString =
11429  "%s: Failed to remove file %s, error=%" PRIi32 "";
11430 #endif
11431 
11432  Fw::TextLogString _logString;
11433  (void) _logString.format(
11434  _formatString,
11435 #if FW_OBJECT_NAMES == 1
11436  this->m_objName.toChar(),
11437 #endif
11438  "FileRemoveFailed ",
11439  filename.toChar(),
11440  status
11441  );
11442 
11443  this->logTextOut_out(
11444  0,
11445  _id,
11446  _logTime,
11448  _logString
11449  );
11450  }
11451 #endif
11452  }
11453 
11456  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11458  ) const
11459  {
11460  // Get the time
11461  Fw::Time _logTime;
11462  if (this->isConnected_timeCaller_OutputPort(0)) {
11463  this->timeCaller_out(0, _logTime);
11464  }
11465 
11467 
11468  // Emit the event on the log port
11469  if (this->isConnected_logOut_OutputPort(0)) {
11470  Fw::LogBuffer _logBuff;
11472 
11473 #if FW_AMPCS_COMPATIBLE
11474  // Serialize the number of arguments
11475  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11476  FW_ASSERT(
11477  _status == Fw::FW_SERIALIZE_OK,
11478  static_cast<FwAssertArgType>(_status)
11479  );
11480 #endif
11481 
11482 #if FW_AMPCS_COMPATIBLE
11483  // Serialize the argument size
11484  _status = _logBuff.serializeFrom(
11485  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11486  );
11487  FW_ASSERT(
11488  _status == Fw::FW_SERIALIZE_OK,
11489  static_cast<FwAssertArgType>(_status)
11490  );
11491 #endif
11492  _status = _logBuff.serializeFrom(transactionSeq);
11493  FW_ASSERT(
11494  _status == Fw::FW_SERIALIZE_OK,
11495  static_cast<FwAssertArgType>(_status)
11496  );
11497 
11498 #if FW_AMPCS_COMPATIBLE
11499  // Serialize the argument size
11500  _status = _logBuff.serializeFrom(
11501  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11502  );
11503  FW_ASSERT(
11504  _status == Fw::FW_SERIALIZE_OK,
11505  static_cast<FwAssertArgType>(_status)
11506  );
11507 #endif
11508  _status = _logBuff.serializeFrom(entityId);
11509  FW_ASSERT(
11510  _status == Fw::FW_SERIALIZE_OK,
11511  static_cast<FwAssertArgType>(_status)
11512  );
11513 
11514  this->logOut_out(
11515  0,
11516  _id,
11517  _logTime,
11519  _logBuff
11520  );
11521  }
11522 
11523  // Emit the event on the text log port
11524 #if FW_ENABLE_TEXT_LOGGING
11525  if (this->isConnected_logTextOut_OutputPort(0)) {
11526 #if FW_OBJECT_NAMES == 1
11527  const char* _formatString =
11528  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") suspended";
11529 #else
11530  const char* _formatString =
11531  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") suspended";
11532 #endif
11533 
11534  Fw::TextLogString _logString;
11535  (void) _logString.format(
11536  _formatString,
11537 #if FW_OBJECT_NAMES == 1
11538  this->m_objName.toChar(),
11539 #endif
11540  "TransactionSuspended ",
11541  transactionSeq,
11542  entityId
11543  );
11544 
11545  this->logTextOut_out(
11546  0,
11547  _id,
11548  _logTime,
11550  _logString
11551  );
11552  }
11553 #endif
11554  }
11555 
11558  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11560  ) const
11561  {
11562  // Get the time
11563  Fw::Time _logTime;
11564  if (this->isConnected_timeCaller_OutputPort(0)) {
11565  this->timeCaller_out(0, _logTime);
11566  }
11567 
11568  const FwEventIdType _id = this->getIdBase() + EVENTID_TRANSACTIONRESUMED;
11569 
11570  // Emit the event on the log port
11571  if (this->isConnected_logOut_OutputPort(0)) {
11572  Fw::LogBuffer _logBuff;
11574 
11575 #if FW_AMPCS_COMPATIBLE
11576  // Serialize the number of arguments
11577  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11578  FW_ASSERT(
11579  _status == Fw::FW_SERIALIZE_OK,
11580  static_cast<FwAssertArgType>(_status)
11581  );
11582 #endif
11583 
11584 #if FW_AMPCS_COMPATIBLE
11585  // Serialize the argument size
11586  _status = _logBuff.serializeFrom(
11587  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11588  );
11589  FW_ASSERT(
11590  _status == Fw::FW_SERIALIZE_OK,
11591  static_cast<FwAssertArgType>(_status)
11592  );
11593 #endif
11594  _status = _logBuff.serializeFrom(transactionSeq);
11595  FW_ASSERT(
11596  _status == Fw::FW_SERIALIZE_OK,
11597  static_cast<FwAssertArgType>(_status)
11598  );
11599 
11600 #if FW_AMPCS_COMPATIBLE
11601  // Serialize the argument size
11602  _status = _logBuff.serializeFrom(
11603  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11604  );
11605  FW_ASSERT(
11606  _status == Fw::FW_SERIALIZE_OK,
11607  static_cast<FwAssertArgType>(_status)
11608  );
11609 #endif
11610  _status = _logBuff.serializeFrom(entityId);
11611  FW_ASSERT(
11612  _status == Fw::FW_SERIALIZE_OK,
11613  static_cast<FwAssertArgType>(_status)
11614  );
11615 
11616  this->logOut_out(
11617  0,
11618  _id,
11619  _logTime,
11621  _logBuff
11622  );
11623  }
11624 
11625  // Emit the event on the text log port
11626 #if FW_ENABLE_TEXT_LOGGING
11627  if (this->isConnected_logTextOut_OutputPort(0)) {
11628 #if FW_OBJECT_NAMES == 1
11629  const char* _formatString =
11630  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") resumed";
11631 #else
11632  const char* _formatString =
11633  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") resumed";
11634 #endif
11635 
11636  Fw::TextLogString _logString;
11637  (void) _logString.format(
11638  _formatString,
11639 #if FW_OBJECT_NAMES == 1
11640  this->m_objName.toChar(),
11641 #endif
11642  "TransactionResumed ",
11643  transactionSeq,
11644  entityId
11645  );
11646 
11647  this->logTextOut_out(
11648  0,
11649  _id,
11650  _logTime,
11652  _logString
11653  );
11654  }
11655 #endif
11656  }
11657 
11660  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11662  ) const
11663  {
11664  // Get the time
11665  Fw::Time _logTime;
11666  if (this->isConnected_timeCaller_OutputPort(0)) {
11667  this->timeCaller_out(0, _logTime);
11668  }
11669 
11670  const FwEventIdType _id = this->getIdBase() + EVENTID_TRANSACTIONCANCELED;
11671 
11672  // Emit the event on the log port
11673  if (this->isConnected_logOut_OutputPort(0)) {
11674  Fw::LogBuffer _logBuff;
11676 
11677 #if FW_AMPCS_COMPATIBLE
11678  // Serialize the number of arguments
11679  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11680  FW_ASSERT(
11681  _status == Fw::FW_SERIALIZE_OK,
11682  static_cast<FwAssertArgType>(_status)
11683  );
11684 #endif
11685 
11686 #if FW_AMPCS_COMPATIBLE
11687  // Serialize the argument size
11688  _status = _logBuff.serializeFrom(
11689  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11690  );
11691  FW_ASSERT(
11692  _status == Fw::FW_SERIALIZE_OK,
11693  static_cast<FwAssertArgType>(_status)
11694  );
11695 #endif
11696  _status = _logBuff.serializeFrom(transactionSeq);
11697  FW_ASSERT(
11698  _status == Fw::FW_SERIALIZE_OK,
11699  static_cast<FwAssertArgType>(_status)
11700  );
11701 
11702 #if FW_AMPCS_COMPATIBLE
11703  // Serialize the argument size
11704  _status = _logBuff.serializeFrom(
11705  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11706  );
11707  FW_ASSERT(
11708  _status == Fw::FW_SERIALIZE_OK,
11709  static_cast<FwAssertArgType>(_status)
11710  );
11711 #endif
11712  _status = _logBuff.serializeFrom(entityId);
11713  FW_ASSERT(
11714  _status == Fw::FW_SERIALIZE_OK,
11715  static_cast<FwAssertArgType>(_status)
11716  );
11717 
11718  this->logOut_out(
11719  0,
11720  _id,
11721  _logTime,
11723  _logBuff
11724  );
11725  }
11726 
11727  // Emit the event on the text log port
11728 #if FW_ENABLE_TEXT_LOGGING
11729  if (this->isConnected_logTextOut_OutputPort(0)) {
11730 #if FW_OBJECT_NAMES == 1
11731  const char* _formatString =
11732  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") canceled";
11733 #else
11734  const char* _formatString =
11735  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") canceled";
11736 #endif
11737 
11738  Fw::TextLogString _logString;
11739  (void) _logString.format(
11740  _formatString,
11741 #if FW_OBJECT_NAMES == 1
11742  this->m_objName.toChar(),
11743 #endif
11744  "TransactionCanceled ",
11745  transactionSeq,
11746  entityId
11747  );
11748 
11749  this->logTextOut_out(
11750  0,
11751  _id,
11752  _logTime,
11754  _logString
11755  );
11756  }
11757 #endif
11758  }
11759 
11762  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11764  ) const
11765  {
11766  // Get the time
11767  Fw::Time _logTime;
11768  if (this->isConnected_timeCaller_OutputPort(0)) {
11769  this->timeCaller_out(0, _logTime);
11770  }
11771 
11773 
11774  // Emit the event on the log port
11775  if (this->isConnected_logOut_OutputPort(0)) {
11776  Fw::LogBuffer _logBuff;
11778 
11779 #if FW_AMPCS_COMPATIBLE
11780  // Serialize the number of arguments
11781  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11782  FW_ASSERT(
11783  _status == Fw::FW_SERIALIZE_OK,
11784  static_cast<FwAssertArgType>(_status)
11785  );
11786 #endif
11787 
11788 #if FW_AMPCS_COMPATIBLE
11789  // Serialize the argument size
11790  _status = _logBuff.serializeFrom(
11791  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11792  );
11793  FW_ASSERT(
11794  _status == Fw::FW_SERIALIZE_OK,
11795  static_cast<FwAssertArgType>(_status)
11796  );
11797 #endif
11798  _status = _logBuff.serializeFrom(transactionSeq);
11799  FW_ASSERT(
11800  _status == Fw::FW_SERIALIZE_OK,
11801  static_cast<FwAssertArgType>(_status)
11802  );
11803 
11804 #if FW_AMPCS_COMPATIBLE
11805  // Serialize the argument size
11806  _status = _logBuff.serializeFrom(
11807  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11808  );
11809  FW_ASSERT(
11810  _status == Fw::FW_SERIALIZE_OK,
11811  static_cast<FwAssertArgType>(_status)
11812  );
11813 #endif
11814  _status = _logBuff.serializeFrom(entityId);
11815  FW_ASSERT(
11816  _status == Fw::FW_SERIALIZE_OK,
11817  static_cast<FwAssertArgType>(_status)
11818  );
11819 
11820  this->logOut_out(
11821  0,
11822  _id,
11823  _logTime,
11825  _logBuff
11826  );
11827  }
11828 
11829  // Emit the event on the text log port
11830 #if FW_ENABLE_TEXT_LOGGING
11831  if (this->isConnected_logTextOut_OutputPort(0)) {
11832 #if FW_OBJECT_NAMES == 1
11833  const char* _formatString =
11834  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") abandoned";
11835 #else
11836  const char* _formatString =
11837  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") abandoned";
11838 #endif
11839 
11840  Fw::TextLogString _logString;
11841  (void) _logString.format(
11842  _formatString,
11843 #if FW_OBJECT_NAMES == 1
11844  this->m_objName.toChar(),
11845 #endif
11846  "TransactionAbandoned ",
11847  transactionSeq,
11848  entityId
11849  );
11850 
11851  this->logTextOut_out(
11852  0,
11853  _id,
11854  _logTime,
11856  _logString
11857  );
11858  }
11859 #endif
11860  }
11861 
11864  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11866  ) const
11867  {
11868  // Get the time
11869  Fw::Time _logTime;
11870  if (this->isConnected_timeCaller_OutputPort(0)) {
11871  this->timeCaller_out(0, _logTime);
11872  }
11873 
11874  const FwEventIdType _id = this->getIdBase() + EVENTID_TRANSACTIONNOTFOUND;
11875 
11876  // Emit the event on the log port
11877  if (this->isConnected_logOut_OutputPort(0)) {
11878  Fw::LogBuffer _logBuff;
11880 
11881 #if FW_AMPCS_COMPATIBLE
11882  // Serialize the number of arguments
11883  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11884  FW_ASSERT(
11885  _status == Fw::FW_SERIALIZE_OK,
11886  static_cast<FwAssertArgType>(_status)
11887  );
11888 #endif
11889 
11890 #if FW_AMPCS_COMPATIBLE
11891  // Serialize the argument size
11892  _status = _logBuff.serializeFrom(
11893  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11894  );
11895  FW_ASSERT(
11896  _status == Fw::FW_SERIALIZE_OK,
11897  static_cast<FwAssertArgType>(_status)
11898  );
11899 #endif
11900  _status = _logBuff.serializeFrom(transactionSeq);
11901  FW_ASSERT(
11902  _status == Fw::FW_SERIALIZE_OK,
11903  static_cast<FwAssertArgType>(_status)
11904  );
11905 
11906 #if FW_AMPCS_COMPATIBLE
11907  // Serialize the argument size
11908  _status = _logBuff.serializeFrom(
11909  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11910  );
11911  FW_ASSERT(
11912  _status == Fw::FW_SERIALIZE_OK,
11913  static_cast<FwAssertArgType>(_status)
11914  );
11915 #endif
11916  _status = _logBuff.serializeFrom(entityId);
11917  FW_ASSERT(
11918  _status == Fw::FW_SERIALIZE_OK,
11919  static_cast<FwAssertArgType>(_status)
11920  );
11921 
11922  this->logOut_out(
11923  0,
11924  _id,
11925  _logTime,
11927  _logBuff
11928  );
11929  }
11930 
11931  // Emit the event on the text log port
11932 #if FW_ENABLE_TEXT_LOGGING
11933  if (this->isConnected_logTextOut_OutputPort(0)) {
11934 #if FW_OBJECT_NAMES == 1
11935  const char* _formatString =
11936  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") not found";
11937 #else
11938  const char* _formatString =
11939  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") not found";
11940 #endif
11941 
11942  Fw::TextLogString _logString;
11943  (void) _logString.format(
11944  _formatString,
11945 #if FW_OBJECT_NAMES == 1
11946  this->m_objName.toChar(),
11947 #endif
11948  "TransactionNotFound ",
11949  transactionSeq,
11950  entityId
11951  );
11952 
11953  this->logTextOut_out(
11954  0,
11955  _id,
11956  _logTime,
11958  _logString
11959  );
11960  }
11961 #endif
11962  }
11963 
11966  {
11967  // Get the time
11968  Fw::Time _logTime;
11969  if (this->isConnected_timeCaller_OutputPort(0)) {
11970  this->timeCaller_out(0, _logTime);
11971  }
11972 
11973  const FwEventIdType _id = this->getIdBase() + EVENTID_RESETCOUNTERS;
11974 
11975  // Emit the event on the log port
11976  if (this->isConnected_logOut_OutputPort(0)) {
11977  Fw::LogBuffer _logBuff;
11979 
11980 #if FW_AMPCS_COMPATIBLE
11981  // Serialize the number of arguments
11982  _status = _logBuff.serializeFrom(static_cast<U8>(1));
11983  FW_ASSERT(
11984  _status == Fw::FW_SERIALIZE_OK,
11985  static_cast<FwAssertArgType>(_status)
11986  );
11987 #endif
11988 
11989 #if FW_AMPCS_COMPATIBLE
11990  // Serialize the argument size
11991  _status = _logBuff.serializeFrom(
11992  static_cast<U8>(sizeof(U8))
11993  );
11994  FW_ASSERT(
11995  _status == Fw::FW_SERIALIZE_OK,
11996  static_cast<FwAssertArgType>(_status)
11997  );
11998 #endif
11999  _status = _logBuff.serializeFrom(channelId);
12000  FW_ASSERT(
12001  _status == Fw::FW_SERIALIZE_OK,
12002  static_cast<FwAssertArgType>(_status)
12003  );
12004 
12005  this->logOut_out(
12006  0,
12007  _id,
12008  _logTime,
12010  _logBuff
12011  );
12012  }
12013 
12014  // Emit the event on the text log port
12015 #if FW_ENABLE_TEXT_LOGGING
12016  if (this->isConnected_logTextOut_OutputPort(0)) {
12017 #if FW_OBJECT_NAMES == 1
12018  const char* _formatString =
12019  "(%s) %s: Reset telemetry counters for channel %" PRIu8 "";
12020 #else
12021  const char* _formatString =
12022  "%s: Reset telemetry counters for channel %" PRIu8 "";
12023 #endif
12024 
12025  Fw::TextLogString _logString;
12026  (void) _logString.format(
12027  _formatString,
12028 #if FW_OBJECT_NAMES == 1
12029  this->m_objName.toChar(),
12030 #endif
12031  "ResetCounters ",
12032  channelId
12033  );
12034 
12035  this->logTextOut_out(
12036  0,
12037  _id,
12038  _logTime,
12040  _logString
12041  );
12042  }
12043 #endif
12044  }
12045 
12050  ) const
12051  {
12052  // Get the time
12053  Fw::Time _logTime;
12054  if (this->isConnected_timeCaller_OutputPort(0)) {
12055  this->timeCaller_out(0, _logTime);
12056  }
12057 
12058  const FwEventIdType _id = this->getIdBase() + EVENTID_TXLATEFINACKED;
12059 
12060  // Emit the event on the log port
12061  if (this->isConnected_logOut_OutputPort(0)) {
12062  Fw::LogBuffer _logBuff;
12064 
12065 #if FW_AMPCS_COMPATIBLE
12066  // Serialize the number of arguments
12067  _status = _logBuff.serializeFrom(static_cast<U8>(2));
12068  FW_ASSERT(
12069  _status == Fw::FW_SERIALIZE_OK,
12070  static_cast<FwAssertArgType>(_status)
12071  );
12072 #endif
12073 
12074 #if FW_AMPCS_COMPATIBLE
12075  // Serialize the argument size
12076  _status = _logBuff.serializeFrom(
12077  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
12078  );
12079  FW_ASSERT(
12080  _status == Fw::FW_SERIALIZE_OK,
12081  static_cast<FwAssertArgType>(_status)
12082  );
12083 #endif
12084  _status = _logBuff.serializeFrom(srcEid);
12085  FW_ASSERT(
12086  _status == Fw::FW_SERIALIZE_OK,
12087  static_cast<FwAssertArgType>(_status)
12088  );
12089 
12090 #if FW_AMPCS_COMPATIBLE
12091  // Serialize the argument size
12092  _status = _logBuff.serializeFrom(
12093  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
12094  );
12095  FW_ASSERT(
12096  _status == Fw::FW_SERIALIZE_OK,
12097  static_cast<FwAssertArgType>(_status)
12098  );
12099 #endif
12100  _status = _logBuff.serializeFrom(seqNum);
12101  FW_ASSERT(
12102  _status == Fw::FW_SERIALIZE_OK,
12103  static_cast<FwAssertArgType>(_status)
12104  );
12105 
12106  this->logOut_out(
12107  0,
12108  _id,
12109  _logTime,
12111  _logBuff
12112  );
12113  }
12114 
12115  // Emit the event on the text log port
12116 #if FW_ENABLE_TEXT_LOGGING
12117  if (this->isConnected_logTextOut_OutputPort(0)) {
12118 #if FW_OBJECT_NAMES == 1
12119  const char* _formatString =
12120  "(%s) %s: Acknowledged late FIN for transaction %" PRIu32 ":%" PRIu32 "";
12121 #else
12122  const char* _formatString =
12123  "%s: Acknowledged late FIN for transaction %" PRIu32 ":%" PRIu32 "";
12124 #endif
12125 
12126  Fw::TextLogString _logString;
12127  (void) _logString.format(
12128  _formatString,
12129 #if FW_OBJECT_NAMES == 1
12130  this->m_objName.toChar(),
12131 #endif
12132  "TxLateFinAcked ",
12133  srcEid,
12134  seqNum
12135  );
12136 
12137  this->logTextOut_out(
12138  0,
12139  _id,
12140  _logTime,
12142  _logString
12143  );
12144  }
12145 #endif
12146  }
12147 
12148  // ----------------------------------------------------------------------
12149  // Telemetry serialized write
12150  // ----------------------------------------------------------------------
12151 
12154  FwChanIdType id,
12155  Fw::TlmBuffer& _tlmBuff,
12156  Fw::Time _tlmTime
12157  ) const
12158  {
12159  if (this->isConnected_tlmOut_OutputPort(0)) {
12160  if (
12162  (_tlmTime == Fw::ZERO_TIME)
12163  ) {
12164  this->timeCaller_out(0, _tlmTime);
12165  }
12166 
12167  FwChanIdType _id;
12168  _id = this->getIdBase() + id;
12169 
12170  this->tlmOut_out(
12171  0,
12172  _id,
12173  _tlmTime,
12174  _tlmBuff
12175  );
12176  }
12177  }
12178 
12179  // ----------------------------------------------------------------------
12180  // Telemetry write functions
12181  // ----------------------------------------------------------------------
12182 
12186  Fw::Time _tlmTime
12187  ) const
12188  {
12189  if (this->isConnected_tlmOut_OutputPort(0)) {
12190  Fw::TlmBuffer _tlmBuff;
12191  Fw::SerializeStatus _stat = _tlmBuff.serializeFrom(arg);
12192  FW_ASSERT(
12193  _stat == Fw::FW_SERIALIZE_OK,
12194  static_cast<FwAssertArgType>(_stat)
12195  );
12196 
12197  this->tlmWrite(
12199  _tlmBuff,
12200  _tlmTime
12201  );
12202  }
12203  }
12204 
12205  // ----------------------------------------------------------------------
12206  // Parameter hook functions
12207  // ----------------------------------------------------------------------
12208 
12211  {
12212  // Do nothing by default
12213  }
12214 
12217  {
12218  // Do nothing by default
12219  }
12220 
12221  // ----------------------------------------------------------------------
12222  // Parameter get functions
12223  // ----------------------------------------------------------------------
12224 
12227  {
12228  Svc::Ccsds::Cfdp::EntityId _local{};
12229  this->m_paramLock.lock();
12230  valid = this->m_param_LocalEid_valid;
12231  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12232  _local = this->m_LocalEid;
12233  }
12234  this->m_paramLock.unlock();
12235  return _local;
12236  }
12237 
12240  {
12241  U32 _local{};
12242  this->m_paramLock.lock();
12243  valid = this->m_param_OutgoingFileChunkSize_valid;
12244  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12245  _local = this->m_OutgoingFileChunkSize;
12246  }
12247  this->m_paramLock.unlock();
12248  return _local;
12249  }
12250 
12253  {
12254  U32 _local{};
12255  this->m_paramLock.lock();
12256  valid = this->m_param_RxCrcCalcBytesPerCycle_valid;
12257  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12258  _local = this->m_RxCrcCalcBytesPerCycle;
12259  }
12260  this->m_paramLock.unlock();
12261  return _local;
12262  }
12263 
12266  {
12267  U8 _local{};
12268  this->m_paramLock.lock();
12269  valid = this->m_param_PostInactivitySendRetries_valid;
12270  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12271  _local = this->m_PostInactivitySendRetries;
12272  }
12273  this->m_paramLock.unlock();
12274  return _local;
12275  }
12276 
12279  {
12280  U8 _local{};
12281  this->m_paramLock.lock();
12282  valid = this->m_param_FileInDefaultChannel_valid;
12283  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12284  _local = this->m_FileInDefaultChannel;
12285  }
12286  this->m_paramLock.unlock();
12287  return _local;
12288  }
12289 
12292  {
12293  Svc::Ccsds::Cfdp::EntityId _local{};
12294  this->m_paramLock.lock();
12295  valid = this->m_param_FileInDefaultDestEntityId_valid;
12296  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12297  _local = this->m_FileInDefaultDestEntityId;
12298  }
12299  this->m_paramLock.unlock();
12300  return _local;
12301  }
12302 
12305  {
12306  Svc::Ccsds::Cfdp::Class _local{};
12307  this->m_paramLock.lock();
12308  valid = this->m_param_FileInDefaultClass_valid;
12309  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12310  _local = this->m_FileInDefaultClass;
12311  }
12312  this->m_paramLock.unlock();
12313  return _local;
12314  }
12315 
12318  {
12319  Svc::Ccsds::Cfdp::Keep _local{};
12320  this->m_paramLock.lock();
12321  valid = this->m_param_FileInDefaultKeep_valid;
12322  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12323  _local = this->m_FileInDefaultKeep;
12324  }
12325  this->m_paramLock.unlock();
12326  return _local;
12327  }
12328 
12331  {
12332  U8 _local{};
12333  this->m_paramLock.lock();
12334  valid = this->m_param_FileInDefaultPriority_valid;
12335  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12336  _local = this->m_FileInDefaultPriority;
12337  }
12338  this->m_paramLock.unlock();
12339  return _local;
12340  }
12341 
12344  {
12346  this->m_paramLock.lock();
12347  valid = this->m_param_ChannelConfig_valid;
12348  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12349  _local = this->m_ChannelConfig;
12350  }
12351  this->m_paramLock.unlock();
12352  return _local;
12353  }
12354 
12355  // ----------------------------------------------------------------------
12356  // Time
12357  // ----------------------------------------------------------------------
12358 
12360  getTime() const
12361  {
12362  if (this->isConnected_timeCaller_OutputPort(0)) {
12363  Fw::Time _time;
12364  this->timeCaller_out(0, _time);
12365  return _time;
12366  }
12367  else {
12368  return Fw::Time(TimeBase::TB_NONE, 0, 0);
12369  }
12370  }
12371 
12372  // ----------------------------------------------------------------------
12373  // Mutex operations for guarded ports
12374  //
12375  // You can override these operations to provide more sophisticated
12376  // synchronization
12377  // ----------------------------------------------------------------------
12378 
12381  {
12382  this->m_guardedPortMutex.lock();
12383  }
12384 
12387  {
12388  this->m_guardedPortMutex.unLock();
12389  }
12390 
12391  // ----------------------------------------------------------------------
12392  // Message dispatch functions
12393  // ----------------------------------------------------------------------
12394 
12395  Fw::QueuedComponentBase::MsgDispatchStatus CfdpManagerComponentBase ::
12396  doDispatch()
12397  {
12398  ComponentIpcSerializableBuffer _msg;
12399  FwQueuePriorityType _priority = 0;
12400 
12401  Os::Queue::Status _msgStatus = this->m_queue.receive(
12402  _msg,
12404  _priority
12405  );
12406  FW_ASSERT(
12407  _msgStatus == Os::Queue::OP_OK,
12408  static_cast<FwAssertArgType>(_msgStatus)
12409  );
12410 
12411  // Reset to beginning of buffer
12412  _msg.resetDeser();
12413 
12414  FwEnumStoreType _desMsg = 0;
12415  Fw::SerializeStatus _deserStatus = _msg.deserializeTo(_desMsg);
12416  FW_ASSERT(
12417  _deserStatus == Fw::FW_SERIALIZE_OK,
12418  static_cast<FwAssertArgType>(_deserStatus)
12419  );
12420 
12421  MsgTypeEnum _msgType = static_cast<MsgTypeEnum>(_desMsg);
12422 
12423  if (_msgType == CFDPMANAGER_COMPONENT_EXIT) {
12424  return MSG_DISPATCH_EXIT;
12425  }
12426 
12427  FwIndexType portNum = 0;
12428  _deserStatus = _msg.deserializeTo(portNum);
12429  FW_ASSERT(
12430  _deserStatus == Fw::FW_SERIALIZE_OK,
12431  static_cast<FwAssertArgType>(_deserStatus)
12432  );
12433 
12434  switch (_msgType) {
12435  // Handle async input port dataIn
12436  case DATAIN_BUFFERSEND: {
12437  // Deserialize argument fwBuffer
12438  Fw::Buffer fwBuffer;
12439  _deserStatus = _msg.deserializeTo(fwBuffer);
12440  FW_ASSERT(
12441  _deserStatus == Fw::FW_SERIALIZE_OK,
12442  static_cast<FwAssertArgType>(_deserStatus)
12443  );
12444  // Call handler function
12445  this->dataIn_handler(
12446  portNum,
12447  fwBuffer
12448  );
12449 
12450  break;
12451  }
12452 
12453  // Handle async input port dataReturnIn
12454  case DATARETURNIN_BUFFERSEND: {
12455  // Deserialize argument fwBuffer
12456  Fw::Buffer fwBuffer;
12457  _deserStatus = _msg.deserializeTo(fwBuffer);
12458  FW_ASSERT(
12459  _deserStatus == Fw::FW_SERIALIZE_OK,
12460  static_cast<FwAssertArgType>(_deserStatus)
12461  );
12462  // Call handler function
12463  this->dataReturnIn_handler(
12464  portNum,
12465  fwBuffer
12466  );
12467 
12468  break;
12469  }
12470 
12471  // Handle async input port pingIn
12472  case PINGIN_PING: {
12473  // Deserialize argument key
12474  U32 key;
12475  _deserStatus = _msg.deserializeTo(key);
12476  FW_ASSERT(
12477  _deserStatus == Fw::FW_SERIALIZE_OK,
12478  static_cast<FwAssertArgType>(_deserStatus)
12479  );
12480  // Call handler function
12481  this->pingIn_handler(
12482  portNum,
12483  key
12484  );
12485 
12486  break;
12487  }
12488 
12489  // Handle async input port run1Hz
12490  case RUN1HZ_SCHED: {
12491  // Deserialize argument context
12492  U32 context;
12493  _deserStatus = _msg.deserializeTo(context);
12494  FW_ASSERT(
12495  _deserStatus == Fw::FW_SERIALIZE_OK,
12496  static_cast<FwAssertArgType>(_deserStatus)
12497  );
12498  // Call handler function
12499  this->run1Hz_handler(
12500  portNum,
12501  context
12502  );
12503 
12504  break;
12505  }
12506 
12507  // Handle command SendFile
12508  case CMD_SENDFILE: {
12509  // Deserialize opcode
12510  FwOpcodeType _opCode = 0;
12511  _deserStatus = _msg.deserializeTo(_opCode);
12512  FW_ASSERT (
12513  _deserStatus == Fw::FW_SERIALIZE_OK,
12514  static_cast<FwAssertArgType>(_deserStatus)
12515  );
12516 
12517  // Deserialize command sequence
12518  U32 _cmdSeq = 0;
12519  _deserStatus = _msg.deserializeTo(_cmdSeq);
12520  FW_ASSERT (
12521  _deserStatus == Fw::FW_SERIALIZE_OK,
12522  static_cast<FwAssertArgType>(_deserStatus)
12523  );
12524 
12525  // Deserialize command argument buffer
12526  Fw::CmdArgBuffer args;
12527  _deserStatus = _msg.deserializeTo(args);
12528  FW_ASSERT (
12529  _deserStatus == Fw::FW_SERIALIZE_OK,
12530  static_cast<FwAssertArgType>(_deserStatus)
12531  );
12532 
12533  // Reset buffer
12534  args.resetDeser();
12535 
12536  // Deserialize argument channelId
12537  U8 channelId;
12538  _deserStatus = args.deserializeTo(channelId);
12539  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12541  this->cmdResponse_out(
12542  _opCode,
12543  _cmdSeq,
12545  );
12546  }
12547  // Don't crash the task if bad arguments were passed from the ground
12548  break;
12549  }
12550 
12551  // Deserialize argument destId
12553  _deserStatus = args.deserializeTo(destId);
12554  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12556  this->cmdResponse_out(
12557  _opCode,
12558  _cmdSeq,
12560  );
12561  }
12562  // Don't crash the task if bad arguments were passed from the ground
12563  break;
12564  }
12565 
12566  // Deserialize argument cfdpClass
12567  Svc::Ccsds::Cfdp::Class cfdpClass;
12568  _deserStatus = args.deserializeTo(cfdpClass);
12569  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12571  this->cmdResponse_out(
12572  _opCode,
12573  _cmdSeq,
12575  );
12576  }
12577  // Don't crash the task if bad arguments were passed from the ground
12578  break;
12579  }
12580 
12581  // Deserialize argument keep
12583  _deserStatus = args.deserializeTo(keep);
12584  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12586  this->cmdResponse_out(
12587  _opCode,
12588  _cmdSeq,
12590  );
12591  }
12592  // Don't crash the task if bad arguments were passed from the ground
12593  break;
12594  }
12595 
12596  // Deserialize argument priority
12597  U8 priority;
12598  _deserStatus = args.deserializeTo(priority);
12599  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12601  this->cmdResponse_out(
12602  _opCode,
12603  _cmdSeq,
12605  );
12606  }
12607  // Don't crash the task if bad arguments were passed from the ground
12608  break;
12609  }
12610 
12611  // Deserialize argument sourceFileName
12612  Fw::CmdStringArg sourceFileName;
12613  _deserStatus = args.deserializeTo(sourceFileName);
12614  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12616  this->cmdResponse_out(
12617  _opCode,
12618  _cmdSeq,
12620  );
12621  }
12622  // Don't crash the task if bad arguments were passed from the ground
12623  break;
12624  }
12625 
12626  // Deserialize argument destFileName
12627  Fw::CmdStringArg destFileName;
12628  _deserStatus = args.deserializeTo(destFileName);
12629  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12631  this->cmdResponse_out(
12632  _opCode,
12633  _cmdSeq,
12635  );
12636  }
12637  // Don't crash the task if bad arguments were passed from the ground
12638  break;
12639  }
12640 
12641  // Make sure there was no data left over.
12642  // That means the argument buffer size was incorrect.
12643 #if FW_CMD_CHECK_RESIDUAL
12644  if (args.getDeserializeSizeLeft() != 0) {
12646  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
12647  }
12648  // Don't crash the task if bad arguments were passed from the ground
12649  break;
12650  }
12651 #endif
12652 
12653  // Call handler function
12654  this->SendFile_cmdHandler(
12655  _opCode, _cmdSeq,
12656  channelId,
12657  destId,
12658  cfdpClass,
12659  keep,
12660  priority,
12661  sourceFileName,
12662  destFileName
12663  );
12664 
12665  break;
12666  }
12667 
12668  // Handle command PlaybackDirectory
12669  case CMD_PLAYBACKDIRECTORY: {
12670  // Deserialize opcode
12671  FwOpcodeType _opCode = 0;
12672  _deserStatus = _msg.deserializeTo(_opCode);
12673  FW_ASSERT (
12674  _deserStatus == Fw::FW_SERIALIZE_OK,
12675  static_cast<FwAssertArgType>(_deserStatus)
12676  );
12677 
12678  // Deserialize command sequence
12679  U32 _cmdSeq = 0;
12680  _deserStatus = _msg.deserializeTo(_cmdSeq);
12681  FW_ASSERT (
12682  _deserStatus == Fw::FW_SERIALIZE_OK,
12683  static_cast<FwAssertArgType>(_deserStatus)
12684  );
12685 
12686  // Deserialize command argument buffer
12687  Fw::CmdArgBuffer args;
12688  _deserStatus = _msg.deserializeTo(args);
12689  FW_ASSERT (
12690  _deserStatus == Fw::FW_SERIALIZE_OK,
12691  static_cast<FwAssertArgType>(_deserStatus)
12692  );
12693 
12694  // Reset buffer
12695  args.resetDeser();
12696 
12697  // Deserialize argument channelId
12698  U8 channelId;
12699  _deserStatus = args.deserializeTo(channelId);
12700  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12702  this->cmdResponse_out(
12703  _opCode,
12704  _cmdSeq,
12706  );
12707  }
12708  // Don't crash the task if bad arguments were passed from the ground
12709  break;
12710  }
12711 
12712  // Deserialize argument destId
12714  _deserStatus = args.deserializeTo(destId);
12715  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12717  this->cmdResponse_out(
12718  _opCode,
12719  _cmdSeq,
12721  );
12722  }
12723  // Don't crash the task if bad arguments were passed from the ground
12724  break;
12725  }
12726 
12727  // Deserialize argument cfdpClass
12728  Svc::Ccsds::Cfdp::Class cfdpClass;
12729  _deserStatus = args.deserializeTo(cfdpClass);
12730  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12732  this->cmdResponse_out(
12733  _opCode,
12734  _cmdSeq,
12736  );
12737  }
12738  // Don't crash the task if bad arguments were passed from the ground
12739  break;
12740  }
12741 
12742  // Deserialize argument keep
12744  _deserStatus = args.deserializeTo(keep);
12745  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12747  this->cmdResponse_out(
12748  _opCode,
12749  _cmdSeq,
12751  );
12752  }
12753  // Don't crash the task if bad arguments were passed from the ground
12754  break;
12755  }
12756 
12757  // Deserialize argument priority
12758  U8 priority;
12759  _deserStatus = args.deserializeTo(priority);
12760  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12762  this->cmdResponse_out(
12763  _opCode,
12764  _cmdSeq,
12766  );
12767  }
12768  // Don't crash the task if bad arguments were passed from the ground
12769  break;
12770  }
12771 
12772  // Deserialize argument sourceDirectory
12773  Fw::CmdStringArg sourceDirectory;
12774  _deserStatus = args.deserializeTo(sourceDirectory);
12775  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12777  this->cmdResponse_out(
12778  _opCode,
12779  _cmdSeq,
12781  );
12782  }
12783  // Don't crash the task if bad arguments were passed from the ground
12784  break;
12785  }
12786 
12787  // Deserialize argument destDirectory
12788  Fw::CmdStringArg destDirectory;
12789  _deserStatus = args.deserializeTo(destDirectory);
12790  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12792  this->cmdResponse_out(
12793  _opCode,
12794  _cmdSeq,
12796  );
12797  }
12798  // Don't crash the task if bad arguments were passed from the ground
12799  break;
12800  }
12801 
12802  // Make sure there was no data left over.
12803  // That means the argument buffer size was incorrect.
12804 #if FW_CMD_CHECK_RESIDUAL
12805  if (args.getDeserializeSizeLeft() != 0) {
12807  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
12808  }
12809  // Don't crash the task if bad arguments were passed from the ground
12810  break;
12811  }
12812 #endif
12813 
12814  // Call handler function
12816  _opCode, _cmdSeq,
12817  channelId,
12818  destId,
12819  cfdpClass,
12820  keep,
12821  priority,
12822  sourceDirectory,
12823  destDirectory
12824  );
12825 
12826  break;
12827  }
12828 
12829  // Handle command PollDirectory
12830  case CMD_POLLDIRECTORY: {
12831  // Deserialize opcode
12832  FwOpcodeType _opCode = 0;
12833  _deserStatus = _msg.deserializeTo(_opCode);
12834  FW_ASSERT (
12835  _deserStatus == Fw::FW_SERIALIZE_OK,
12836  static_cast<FwAssertArgType>(_deserStatus)
12837  );
12838 
12839  // Deserialize command sequence
12840  U32 _cmdSeq = 0;
12841  _deserStatus = _msg.deserializeTo(_cmdSeq);
12842  FW_ASSERT (
12843  _deserStatus == Fw::FW_SERIALIZE_OK,
12844  static_cast<FwAssertArgType>(_deserStatus)
12845  );
12846 
12847  // Deserialize command argument buffer
12848  Fw::CmdArgBuffer args;
12849  _deserStatus = _msg.deserializeTo(args);
12850  FW_ASSERT (
12851  _deserStatus == Fw::FW_SERIALIZE_OK,
12852  static_cast<FwAssertArgType>(_deserStatus)
12853  );
12854 
12855  // Reset buffer
12856  args.resetDeser();
12857 
12858  // Deserialize argument channelId
12859  U8 channelId;
12860  _deserStatus = args.deserializeTo(channelId);
12861  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12863  this->cmdResponse_out(
12864  _opCode,
12865  _cmdSeq,
12867  );
12868  }
12869  // Don't crash the task if bad arguments were passed from the ground
12870  break;
12871  }
12872 
12873  // Deserialize argument pollId
12874  U8 pollId;
12875  _deserStatus = args.deserializeTo(pollId);
12876  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12878  this->cmdResponse_out(
12879  _opCode,
12880  _cmdSeq,
12882  );
12883  }
12884  // Don't crash the task if bad arguments were passed from the ground
12885  break;
12886  }
12887 
12888  // Deserialize argument destId
12890  _deserStatus = args.deserializeTo(destId);
12891  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12893  this->cmdResponse_out(
12894  _opCode,
12895  _cmdSeq,
12897  );
12898  }
12899  // Don't crash the task if bad arguments were passed from the ground
12900  break;
12901  }
12902 
12903  // Deserialize argument cfdpClass
12904  Svc::Ccsds::Cfdp::Class cfdpClass;
12905  _deserStatus = args.deserializeTo(cfdpClass);
12906  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12908  this->cmdResponse_out(
12909  _opCode,
12910  _cmdSeq,
12912  );
12913  }
12914  // Don't crash the task if bad arguments were passed from the ground
12915  break;
12916  }
12917 
12918  // Deserialize argument priority
12919  U8 priority;
12920  _deserStatus = args.deserializeTo(priority);
12921  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12923  this->cmdResponse_out(
12924  _opCode,
12925  _cmdSeq,
12927  );
12928  }
12929  // Don't crash the task if bad arguments were passed from the ground
12930  break;
12931  }
12932 
12933  // Deserialize argument interval
12934  U32 interval;
12935  _deserStatus = args.deserializeTo(interval);
12936  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12938  this->cmdResponse_out(
12939  _opCode,
12940  _cmdSeq,
12942  );
12943  }
12944  // Don't crash the task if bad arguments were passed from the ground
12945  break;
12946  }
12947 
12948  // Deserialize argument sourceDirectory
12949  Fw::CmdStringArg sourceDirectory;
12950  _deserStatus = args.deserializeTo(sourceDirectory);
12951  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12953  this->cmdResponse_out(
12954  _opCode,
12955  _cmdSeq,
12957  );
12958  }
12959  // Don't crash the task if bad arguments were passed from the ground
12960  break;
12961  }
12962 
12963  // Deserialize argument destDirectory
12964  Fw::CmdStringArg destDirectory;
12965  _deserStatus = args.deserializeTo(destDirectory);
12966  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12968  this->cmdResponse_out(
12969  _opCode,
12970  _cmdSeq,
12972  );
12973  }
12974  // Don't crash the task if bad arguments were passed from the ground
12975  break;
12976  }
12977 
12978  // Make sure there was no data left over.
12979  // That means the argument buffer size was incorrect.
12980 #if FW_CMD_CHECK_RESIDUAL
12981  if (args.getDeserializeSizeLeft() != 0) {
12983  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
12984  }
12985  // Don't crash the task if bad arguments were passed from the ground
12986  break;
12987  }
12988 #endif
12989 
12990  // Call handler function
12992  _opCode, _cmdSeq,
12993  channelId,
12994  pollId,
12995  destId,
12996  cfdpClass,
12997  priority,
12998  interval,
12999  sourceDirectory,
13000  destDirectory
13001  );
13002 
13003  break;
13004  }
13005 
13006  // Handle command StopPollDirectory
13007  case CMD_STOPPOLLDIRECTORY: {
13008  // Deserialize opcode
13009  FwOpcodeType _opCode = 0;
13010  _deserStatus = _msg.deserializeTo(_opCode);
13011  FW_ASSERT (
13012  _deserStatus == Fw::FW_SERIALIZE_OK,
13013  static_cast<FwAssertArgType>(_deserStatus)
13014  );
13015 
13016  // Deserialize command sequence
13017  U32 _cmdSeq = 0;
13018  _deserStatus = _msg.deserializeTo(_cmdSeq);
13019  FW_ASSERT (
13020  _deserStatus == Fw::FW_SERIALIZE_OK,
13021  static_cast<FwAssertArgType>(_deserStatus)
13022  );
13023 
13024  // Deserialize command argument buffer
13025  Fw::CmdArgBuffer args;
13026  _deserStatus = _msg.deserializeTo(args);
13027  FW_ASSERT (
13028  _deserStatus == Fw::FW_SERIALIZE_OK,
13029  static_cast<FwAssertArgType>(_deserStatus)
13030  );
13031 
13032  // Reset buffer
13033  args.resetDeser();
13034 
13035  // Deserialize argument channelId
13036  U8 channelId;
13037  _deserStatus = args.deserializeTo(channelId);
13038  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13040  this->cmdResponse_out(
13041  _opCode,
13042  _cmdSeq,
13044  );
13045  }
13046  // Don't crash the task if bad arguments were passed from the ground
13047  break;
13048  }
13049 
13050  // Deserialize argument pollId
13051  U8 pollId;
13052  _deserStatus = args.deserializeTo(pollId);
13053  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13055  this->cmdResponse_out(
13056  _opCode,
13057  _cmdSeq,
13059  );
13060  }
13061  // Don't crash the task if bad arguments were passed from the ground
13062  break;
13063  }
13064 
13065  // Make sure there was no data left over.
13066  // That means the argument buffer size was incorrect.
13067 #if FW_CMD_CHECK_RESIDUAL
13068  if (args.getDeserializeSizeLeft() != 0) {
13070  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13071  }
13072  // Don't crash the task if bad arguments were passed from the ground
13073  break;
13074  }
13075 #endif
13076 
13077  // Call handler function
13079  _opCode, _cmdSeq,
13080  channelId,
13081  pollId
13082  );
13083 
13084  break;
13085  }
13086 
13087  // Handle command SetChannelFlow
13088  case CMD_SETCHANNELFLOW: {
13089  // Deserialize opcode
13090  FwOpcodeType _opCode = 0;
13091  _deserStatus = _msg.deserializeTo(_opCode);
13092  FW_ASSERT (
13093  _deserStatus == Fw::FW_SERIALIZE_OK,
13094  static_cast<FwAssertArgType>(_deserStatus)
13095  );
13096 
13097  // Deserialize command sequence
13098  U32 _cmdSeq = 0;
13099  _deserStatus = _msg.deserializeTo(_cmdSeq);
13100  FW_ASSERT (
13101  _deserStatus == Fw::FW_SERIALIZE_OK,
13102  static_cast<FwAssertArgType>(_deserStatus)
13103  );
13104 
13105  // Deserialize command argument buffer
13106  Fw::CmdArgBuffer args;
13107  _deserStatus = _msg.deserializeTo(args);
13108  FW_ASSERT (
13109  _deserStatus == Fw::FW_SERIALIZE_OK,
13110  static_cast<FwAssertArgType>(_deserStatus)
13111  );
13112 
13113  // Reset buffer
13114  args.resetDeser();
13115 
13116  // Deserialize argument channelId
13117  U8 channelId;
13118  _deserStatus = args.deserializeTo(channelId);
13119  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13121  this->cmdResponse_out(
13122  _opCode,
13123  _cmdSeq,
13125  );
13126  }
13127  // Don't crash the task if bad arguments were passed from the ground
13128  break;
13129  }
13130 
13131  // Deserialize argument freeze
13132  Svc::Ccsds::Cfdp::Flow freeze;
13133  _deserStatus = args.deserializeTo(freeze);
13134  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13136  this->cmdResponse_out(
13137  _opCode,
13138  _cmdSeq,
13140  );
13141  }
13142  // Don't crash the task if bad arguments were passed from the ground
13143  break;
13144  }
13145 
13146  // Make sure there was no data left over.
13147  // That means the argument buffer size was incorrect.
13148 #if FW_CMD_CHECK_RESIDUAL
13149  if (args.getDeserializeSizeLeft() != 0) {
13151  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13152  }
13153  // Don't crash the task if bad arguments were passed from the ground
13154  break;
13155  }
13156 #endif
13157 
13158  // Call handler function
13160  _opCode, _cmdSeq,
13161  channelId,
13162  freeze
13163  );
13164 
13165  break;
13166  }
13167 
13168  // Handle command SuspendResumeTransaction
13169  case CMD_SUSPENDRESUMETRANSACTION: {
13170  // Deserialize opcode
13171  FwOpcodeType _opCode = 0;
13172  _deserStatus = _msg.deserializeTo(_opCode);
13173  FW_ASSERT (
13174  _deserStatus == Fw::FW_SERIALIZE_OK,
13175  static_cast<FwAssertArgType>(_deserStatus)
13176  );
13177 
13178  // Deserialize command sequence
13179  U32 _cmdSeq = 0;
13180  _deserStatus = _msg.deserializeTo(_cmdSeq);
13181  FW_ASSERT (
13182  _deserStatus == Fw::FW_SERIALIZE_OK,
13183  static_cast<FwAssertArgType>(_deserStatus)
13184  );
13185 
13186  // Deserialize command argument buffer
13187  Fw::CmdArgBuffer args;
13188  _deserStatus = _msg.deserializeTo(args);
13189  FW_ASSERT (
13190  _deserStatus == Fw::FW_SERIALIZE_OK,
13191  static_cast<FwAssertArgType>(_deserStatus)
13192  );
13193 
13194  // Reset buffer
13195  args.resetDeser();
13196 
13197  // Deserialize argument channelId
13198  U8 channelId;
13199  _deserStatus = args.deserializeTo(channelId);
13200  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13202  this->cmdResponse_out(
13203  _opCode,
13204  _cmdSeq,
13206  );
13207  }
13208  // Don't crash the task if bad arguments were passed from the ground
13209  break;
13210  }
13211 
13212  // Deserialize argument transactionSeq
13213  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq;
13214  _deserStatus = args.deserializeTo(transactionSeq);
13215  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13217  this->cmdResponse_out(
13218  _opCode,
13219  _cmdSeq,
13221  );
13222  }
13223  // Don't crash the task if bad arguments were passed from the ground
13224  break;
13225  }
13226 
13227  // Deserialize argument entityId
13228  Svc::Ccsds::Cfdp::EntityId entityId;
13229  _deserStatus = args.deserializeTo(entityId);
13230  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13232  this->cmdResponse_out(
13233  _opCode,
13234  _cmdSeq,
13236  );
13237  }
13238  // Don't crash the task if bad arguments were passed from the ground
13239  break;
13240  }
13241 
13242  // Deserialize argument action
13244  _deserStatus = args.deserializeTo(action);
13245  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13247  this->cmdResponse_out(
13248  _opCode,
13249  _cmdSeq,
13251  );
13252  }
13253  // Don't crash the task if bad arguments were passed from the ground
13254  break;
13255  }
13256 
13257  // Make sure there was no data left over.
13258  // That means the argument buffer size was incorrect.
13259 #if FW_CMD_CHECK_RESIDUAL
13260  if (args.getDeserializeSizeLeft() != 0) {
13262  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13263  }
13264  // Don't crash the task if bad arguments were passed from the ground
13265  break;
13266  }
13267 #endif
13268 
13269  // Call handler function
13271  _opCode, _cmdSeq,
13272  channelId,
13273  transactionSeq,
13274  entityId,
13275  action
13276  );
13277 
13278  break;
13279  }
13280 
13281  // Handle command CancelTransaction
13282  case CMD_CANCELTRANSACTION: {
13283  // Deserialize opcode
13284  FwOpcodeType _opCode = 0;
13285  _deserStatus = _msg.deserializeTo(_opCode);
13286  FW_ASSERT (
13287  _deserStatus == Fw::FW_SERIALIZE_OK,
13288  static_cast<FwAssertArgType>(_deserStatus)
13289  );
13290 
13291  // Deserialize command sequence
13292  U32 _cmdSeq = 0;
13293  _deserStatus = _msg.deserializeTo(_cmdSeq);
13294  FW_ASSERT (
13295  _deserStatus == Fw::FW_SERIALIZE_OK,
13296  static_cast<FwAssertArgType>(_deserStatus)
13297  );
13298 
13299  // Deserialize command argument buffer
13300  Fw::CmdArgBuffer args;
13301  _deserStatus = _msg.deserializeTo(args);
13302  FW_ASSERT (
13303  _deserStatus == Fw::FW_SERIALIZE_OK,
13304  static_cast<FwAssertArgType>(_deserStatus)
13305  );
13306 
13307  // Reset buffer
13308  args.resetDeser();
13309 
13310  // Deserialize argument channelId
13311  U8 channelId;
13312  _deserStatus = args.deserializeTo(channelId);
13313  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13315  this->cmdResponse_out(
13316  _opCode,
13317  _cmdSeq,
13319  );
13320  }
13321  // Don't crash the task if bad arguments were passed from the ground
13322  break;
13323  }
13324 
13325  // Deserialize argument transactionSeq
13326  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq;
13327  _deserStatus = args.deserializeTo(transactionSeq);
13328  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13330  this->cmdResponse_out(
13331  _opCode,
13332  _cmdSeq,
13334  );
13335  }
13336  // Don't crash the task if bad arguments were passed from the ground
13337  break;
13338  }
13339 
13340  // Deserialize argument entityId
13341  Svc::Ccsds::Cfdp::EntityId entityId;
13342  _deserStatus = args.deserializeTo(entityId);
13343  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13345  this->cmdResponse_out(
13346  _opCode,
13347  _cmdSeq,
13349  );
13350  }
13351  // Don't crash the task if bad arguments were passed from the ground
13352  break;
13353  }
13354 
13355  // Make sure there was no data left over.
13356  // That means the argument buffer size was incorrect.
13357 #if FW_CMD_CHECK_RESIDUAL
13358  if (args.getDeserializeSizeLeft() != 0) {
13360  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13361  }
13362  // Don't crash the task if bad arguments were passed from the ground
13363  break;
13364  }
13365 #endif
13366 
13367  // Call handler function
13369  _opCode, _cmdSeq,
13370  channelId,
13371  transactionSeq,
13372  entityId
13373  );
13374 
13375  break;
13376  }
13377 
13378  // Handle command AbandonTransaction
13379  case CMD_ABANDONTRANSACTION: {
13380  // Deserialize opcode
13381  FwOpcodeType _opCode = 0;
13382  _deserStatus = _msg.deserializeTo(_opCode);
13383  FW_ASSERT (
13384  _deserStatus == Fw::FW_SERIALIZE_OK,
13385  static_cast<FwAssertArgType>(_deserStatus)
13386  );
13387 
13388  // Deserialize command sequence
13389  U32 _cmdSeq = 0;
13390  _deserStatus = _msg.deserializeTo(_cmdSeq);
13391  FW_ASSERT (
13392  _deserStatus == Fw::FW_SERIALIZE_OK,
13393  static_cast<FwAssertArgType>(_deserStatus)
13394  );
13395 
13396  // Deserialize command argument buffer
13397  Fw::CmdArgBuffer args;
13398  _deserStatus = _msg.deserializeTo(args);
13399  FW_ASSERT (
13400  _deserStatus == Fw::FW_SERIALIZE_OK,
13401  static_cast<FwAssertArgType>(_deserStatus)
13402  );
13403 
13404  // Reset buffer
13405  args.resetDeser();
13406 
13407  // Deserialize argument channelId
13408  U8 channelId;
13409  _deserStatus = args.deserializeTo(channelId);
13410  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13412  this->cmdResponse_out(
13413  _opCode,
13414  _cmdSeq,
13416  );
13417  }
13418  // Don't crash the task if bad arguments were passed from the ground
13419  break;
13420  }
13421 
13422  // Deserialize argument transactionSeq
13423  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq;
13424  _deserStatus = args.deserializeTo(transactionSeq);
13425  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13427  this->cmdResponse_out(
13428  _opCode,
13429  _cmdSeq,
13431  );
13432  }
13433  // Don't crash the task if bad arguments were passed from the ground
13434  break;
13435  }
13436 
13437  // Deserialize argument entityId
13438  Svc::Ccsds::Cfdp::EntityId entityId;
13439  _deserStatus = args.deserializeTo(entityId);
13440  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13442  this->cmdResponse_out(
13443  _opCode,
13444  _cmdSeq,
13446  );
13447  }
13448  // Don't crash the task if bad arguments were passed from the ground
13449  break;
13450  }
13451 
13452  // Make sure there was no data left over.
13453  // That means the argument buffer size was incorrect.
13454 #if FW_CMD_CHECK_RESIDUAL
13455  if (args.getDeserializeSizeLeft() != 0) {
13457  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13458  }
13459  // Don't crash the task if bad arguments were passed from the ground
13460  break;
13461  }
13462 #endif
13463 
13464  // Call handler function
13466  _opCode, _cmdSeq,
13467  channelId,
13468  transactionSeq,
13469  entityId
13470  );
13471 
13472  break;
13473  }
13474 
13475  // Handle command ResetCounters
13476  case CMD_RESETCOUNTERS: {
13477  // Deserialize opcode
13478  FwOpcodeType _opCode = 0;
13479  _deserStatus = _msg.deserializeTo(_opCode);
13480  FW_ASSERT (
13481  _deserStatus == Fw::FW_SERIALIZE_OK,
13482  static_cast<FwAssertArgType>(_deserStatus)
13483  );
13484 
13485  // Deserialize command sequence
13486  U32 _cmdSeq = 0;
13487  _deserStatus = _msg.deserializeTo(_cmdSeq);
13488  FW_ASSERT (
13489  _deserStatus == Fw::FW_SERIALIZE_OK,
13490  static_cast<FwAssertArgType>(_deserStatus)
13491  );
13492 
13493  // Deserialize command argument buffer
13494  Fw::CmdArgBuffer args;
13495  _deserStatus = _msg.deserializeTo(args);
13496  FW_ASSERT (
13497  _deserStatus == Fw::FW_SERIALIZE_OK,
13498  static_cast<FwAssertArgType>(_deserStatus)
13499  );
13500 
13501  // Reset buffer
13502  args.resetDeser();
13503 
13504  // Deserialize argument channelId
13505  U8 channelId;
13506  _deserStatus = args.deserializeTo(channelId);
13507  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13509  this->cmdResponse_out(
13510  _opCode,
13511  _cmdSeq,
13513  );
13514  }
13515  // Don't crash the task if bad arguments were passed from the ground
13516  break;
13517  }
13518 
13519  // Make sure there was no data left over.
13520  // That means the argument buffer size was incorrect.
13521 #if FW_CMD_CHECK_RESIDUAL
13522  if (args.getDeserializeSizeLeft() != 0) {
13524  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13525  }
13526  // Don't crash the task if bad arguments were passed from the ground
13527  break;
13528  }
13529 #endif
13530 
13531  // Call handler function
13533  _opCode, _cmdSeq,
13534  channelId
13535  );
13536 
13537  break;
13538  }
13539 
13540  default:
13541  return MSG_DISPATCH_ERROR;
13542  }
13543 
13544  return MSG_DISPATCH_OK;
13545  }
13546 
13547  // ----------------------------------------------------------------------
13548  // Calls for messages received on special input ports
13549  // ----------------------------------------------------------------------
13550 
13551  void CfdpManagerComponentBase ::
13552  m_p_cmdIn_in(
13553  Fw::PassiveComponentBase* callComp,
13554  FwIndexType portNum,
13555  FwOpcodeType opCode,
13556  U32 cmdSeq,
13557  Fw::CmdArgBuffer& args
13558  )
13559  {
13560  FW_ASSERT(callComp != nullptr);
13561  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13562  compPtr->cmdIn_handlerBase(
13563  portNum,
13564  opCode,
13565  cmdSeq,
13566  args
13567  );
13568  }
13569 
13570  // ----------------------------------------------------------------------
13571  // Calls for messages received on typed input ports
13572  // ----------------------------------------------------------------------
13573 
13574  void CfdpManagerComponentBase ::
13575  m_p_dataIn_in(
13576  Fw::PassiveComponentBase* callComp,
13577  FwIndexType portNum,
13578  Fw::Buffer& fwBuffer
13579  )
13580  {
13581  FW_ASSERT(callComp != nullptr);
13582  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13583  compPtr->dataIn_handlerBase(
13584  portNum,
13585  fwBuffer
13586  );
13587  }
13588 
13589  void CfdpManagerComponentBase ::
13590  m_p_dataReturnIn_in(
13591  Fw::PassiveComponentBase* callComp,
13592  FwIndexType portNum,
13593  Fw::Buffer& fwBuffer
13594  )
13595  {
13596  FW_ASSERT(callComp != nullptr);
13597  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13598  compPtr->dataReturnIn_handlerBase(
13599  portNum,
13600  fwBuffer
13601  );
13602  }
13603 
13604  Svc::SendFileResponse CfdpManagerComponentBase ::
13605  m_p_fileIn_in(
13606  Fw::PassiveComponentBase* callComp,
13607  FwIndexType portNum,
13608  const Fw::StringBase& sourceFileName,
13609  const Fw::StringBase& destFileName,
13610  U32 offset,
13611  U32 length
13612  )
13613  {
13614  FW_ASSERT(callComp != nullptr);
13615  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13616  return compPtr->fileIn_handlerBase(
13617  portNum,
13618  sourceFileName,
13619  destFileName,
13620  offset,
13621  length
13622  );
13623  }
13624 
13625  void CfdpManagerComponentBase ::
13626  m_p_pingIn_in(
13627  Fw::PassiveComponentBase* callComp,
13628  FwIndexType portNum,
13629  U32 key
13630  )
13631  {
13632  FW_ASSERT(callComp != nullptr);
13633  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13634  compPtr->pingIn_handlerBase(
13635  portNum,
13636  key
13637  );
13638  }
13639 
13640  void CfdpManagerComponentBase ::
13641  m_p_run1Hz_in(
13642  Fw::PassiveComponentBase* callComp,
13643  FwIndexType portNum,
13644  U32 context
13645  )
13646  {
13647  FW_ASSERT(callComp != nullptr);
13648  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13649  compPtr->run1Hz_handlerBase(
13650  portNum,
13651  context
13652  );
13653  }
13654 
13655 #if !FW_DIRECT_PORT_CALLS
13656 
13657  // ----------------------------------------------------------------------
13658  // Invocation functions for special output ports
13659  // ----------------------------------------------------------------------
13660 
13661  void CfdpManagerComponentBase ::
13662  cmdRegOut_out(
13663  FwIndexType portNum,
13664  FwOpcodeType opCode
13665  ) const
13666  {
13667  FW_ASSERT(
13668  (0 <= portNum) && (portNum < this->getNum_cmdRegOut_OutputPorts()),
13669  static_cast<FwAssertArgType>(portNum)
13670  );
13671 
13672  FW_ASSERT(
13673  this->m_cmdRegOut_OutputPort[portNum].isConnected(),
13674  static_cast<FwAssertArgType>(portNum)
13675  );
13676  this->m_cmdRegOut_OutputPort[portNum].invoke(
13677  opCode
13678  );
13679  }
13680 
13681  void CfdpManagerComponentBase ::
13682  cmdResponseOut_out(
13683  FwIndexType portNum,
13684  FwOpcodeType opCode,
13685  U32 cmdSeq,
13686  const Fw::CmdResponse& response
13687  ) const
13688  {
13689  FW_ASSERT(
13690  (0 <= portNum) && (portNum < this->getNum_cmdResponseOut_OutputPorts()),
13691  static_cast<FwAssertArgType>(portNum)
13692  );
13693 
13694  FW_ASSERT(
13695  this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
13696  static_cast<FwAssertArgType>(portNum)
13697  );
13698  this->m_cmdResponseOut_OutputPort[portNum].invoke(
13699  opCode,
13700  cmdSeq,
13701  response
13702  );
13703  }
13704 
13705  void CfdpManagerComponentBase ::
13706  logOut_out(
13707  FwIndexType portNum,
13708  FwEventIdType id,
13709  Fw::Time& timeTag,
13710  const Fw::LogSeverity& severity,
13711  Fw::LogBuffer& args
13712  ) const
13713  {
13714  FW_ASSERT(
13715  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
13716  static_cast<FwAssertArgType>(portNum)
13717  );
13718 
13719  FW_ASSERT(
13720  this->m_logOut_OutputPort[portNum].isConnected(),
13721  static_cast<FwAssertArgType>(portNum)
13722  );
13723  this->m_logOut_OutputPort[portNum].invoke(
13724  id,
13725  timeTag,
13726  severity,
13727  args
13728  );
13729  }
13730 
13731 #if FW_ENABLE_TEXT_LOGGING
13732 
13733  void CfdpManagerComponentBase ::
13734  logTextOut_out(
13735  FwIndexType portNum,
13736  FwEventIdType id,
13737  Fw::Time& timeTag,
13738  const Fw::LogSeverity& severity,
13739  Fw::TextLogString& text
13740  ) const
13741  {
13742  FW_ASSERT(
13743  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
13744  static_cast<FwAssertArgType>(portNum)
13745  );
13746 
13747  FW_ASSERT(
13748  this->m_logTextOut_OutputPort[portNum].isConnected(),
13749  static_cast<FwAssertArgType>(portNum)
13750  );
13751  this->m_logTextOut_OutputPort[portNum].invoke(
13752  id,
13753  timeTag,
13754  severity,
13755  text
13756  );
13757  }
13758 
13759 #endif
13760 
13761  Fw::ParamValid CfdpManagerComponentBase ::
13762  prmGetOut_out(
13763  FwIndexType portNum,
13764  FwPrmIdType id,
13765  Fw::ParamBuffer& val
13766  ) const
13767  {
13768  FW_ASSERT(
13769  (0 <= portNum) && (portNum < this->getNum_prmGetOut_OutputPorts()),
13770  static_cast<FwAssertArgType>(portNum)
13771  );
13772 
13773  FW_ASSERT(
13774  this->m_prmGetOut_OutputPort[portNum].isConnected(),
13775  static_cast<FwAssertArgType>(portNum)
13776  );
13777  return this->m_prmGetOut_OutputPort[portNum].invoke(
13778  id,
13779  val
13780  );
13781  }
13782 
13783  void CfdpManagerComponentBase ::
13784  prmSetOut_out(
13785  FwIndexType portNum,
13786  FwPrmIdType id,
13787  Fw::ParamBuffer& val
13788  ) const
13789  {
13790  FW_ASSERT(
13791  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
13792  static_cast<FwAssertArgType>(portNum)
13793  );
13794 
13795  FW_ASSERT(
13796  this->m_prmSetOut_OutputPort[portNum].isConnected(),
13797  static_cast<FwAssertArgType>(portNum)
13798  );
13799  this->m_prmSetOut_OutputPort[portNum].invoke(
13800  id,
13801  val
13802  );
13803  }
13804 
13805  void CfdpManagerComponentBase ::
13806  timeCaller_out(
13807  FwIndexType portNum,
13808  Fw::Time& time
13809  ) const
13810  {
13811  FW_ASSERT(
13812  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
13813  static_cast<FwAssertArgType>(portNum)
13814  );
13815 
13816  FW_ASSERT(
13817  this->m_timeCaller_OutputPort[portNum].isConnected(),
13818  static_cast<FwAssertArgType>(portNum)
13819  );
13820  this->m_timeCaller_OutputPort[portNum].invoke(
13821  time
13822  );
13823  }
13824 
13825  void CfdpManagerComponentBase ::
13826  tlmOut_out(
13827  FwIndexType portNum,
13828  FwChanIdType id,
13829  Fw::Time& timeTag,
13830  Fw::TlmBuffer& val
13831  ) const
13832  {
13833  FW_ASSERT(
13834  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
13835  static_cast<FwAssertArgType>(portNum)
13836  );
13837 
13838  FW_ASSERT(
13839  this->m_tlmOut_OutputPort[portNum].isConnected(),
13840  static_cast<FwAssertArgType>(portNum)
13841  );
13842  this->m_tlmOut_OutputPort[portNum].invoke(
13843  id,
13844  timeTag,
13845  val
13846  );
13847  }
13848 
13849 #endif
13850 
13851  // ----------------------------------------------------------------------
13852  // Parameter set functions
13853  // ----------------------------------------------------------------------
13854 
13855  Fw::CmdResponse CfdpManagerComponentBase ::
13856  paramSet_LocalEid(Fw::SerialBufferBase& val)
13857  {
13858  Svc::Ccsds::Cfdp::EntityId _localVal{};
13859  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13860  if (_stat != Fw::FW_SERIALIZE_OK) {
13862  }
13863 
13864  // Assign value only if successfully deserialized
13865  this->m_paramLock.lock();
13866  this->m_LocalEid = _localVal;
13867  this->m_param_LocalEid_valid = Fw::ParamValid::VALID;
13868  this->m_paramLock.unlock();
13869 
13870  // Call notifier
13872  return Fw::CmdResponse::OK;
13873  }
13874 
13875  Fw::CmdResponse CfdpManagerComponentBase ::
13876  paramSet_OutgoingFileChunkSize(Fw::SerialBufferBase& val)
13877  {
13878  U32 _localVal{};
13879  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13880  if (_stat != Fw::FW_SERIALIZE_OK) {
13882  }
13883 
13884  // Assign value only if successfully deserialized
13885  this->m_paramLock.lock();
13886  this->m_OutgoingFileChunkSize = _localVal;
13887  this->m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::VALID;
13888  this->m_paramLock.unlock();
13889 
13890  // Call notifier
13892  return Fw::CmdResponse::OK;
13893  }
13894 
13895  Fw::CmdResponse CfdpManagerComponentBase ::
13896  paramSet_RxCrcCalcBytesPerCycle(Fw::SerialBufferBase& val)
13897  {
13898  U32 _localVal{};
13899  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13900  if (_stat != Fw::FW_SERIALIZE_OK) {
13902  }
13903 
13904  // Assign value only if successfully deserialized
13905  this->m_paramLock.lock();
13906  this->m_RxCrcCalcBytesPerCycle = _localVal;
13907  this->m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::VALID;
13908  this->m_paramLock.unlock();
13909 
13910  // Call notifier
13912  return Fw::CmdResponse::OK;
13913  }
13914 
13915  Fw::CmdResponse CfdpManagerComponentBase ::
13916  paramSet_PostInactivitySendRetries(Fw::SerialBufferBase& val)
13917  {
13918  U8 _localVal{};
13919  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13920  if (_stat != Fw::FW_SERIALIZE_OK) {
13922  }
13923 
13924  // Assign value only if successfully deserialized
13925  this->m_paramLock.lock();
13926  this->m_PostInactivitySendRetries = _localVal;
13927  this->m_param_PostInactivitySendRetries_valid = Fw::ParamValid::VALID;
13928  this->m_paramLock.unlock();
13929 
13930  // Call notifier
13932  return Fw::CmdResponse::OK;
13933  }
13934 
13935  Fw::CmdResponse CfdpManagerComponentBase ::
13936  paramSet_FileInDefaultChannel(Fw::SerialBufferBase& val)
13937  {
13938  U8 _localVal{};
13939  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13940  if (_stat != Fw::FW_SERIALIZE_OK) {
13942  }
13943 
13944  // Assign value only if successfully deserialized
13945  this->m_paramLock.lock();
13946  this->m_FileInDefaultChannel = _localVal;
13947  this->m_param_FileInDefaultChannel_valid = Fw::ParamValid::VALID;
13948  this->m_paramLock.unlock();
13949 
13950  // Call notifier
13952  return Fw::CmdResponse::OK;
13953  }
13954 
13955  Fw::CmdResponse CfdpManagerComponentBase ::
13956  paramSet_FileInDefaultDestEntityId(Fw::SerialBufferBase& val)
13957  {
13958  Svc::Ccsds::Cfdp::EntityId _localVal{};
13959  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13960  if (_stat != Fw::FW_SERIALIZE_OK) {
13962  }
13963 
13964  // Assign value only if successfully deserialized
13965  this->m_paramLock.lock();
13966  this->m_FileInDefaultDestEntityId = _localVal;
13967  this->m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::VALID;
13968  this->m_paramLock.unlock();
13969 
13970  // Call notifier
13972  return Fw::CmdResponse::OK;
13973  }
13974 
13975  Fw::CmdResponse CfdpManagerComponentBase ::
13976  paramSet_FileInDefaultClass(Fw::SerialBufferBase& val)
13977  {
13978  Svc::Ccsds::Cfdp::Class _localVal{};
13979  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13980  if (_stat != Fw::FW_SERIALIZE_OK) {
13982  }
13983 
13984  // Assign value only if successfully deserialized
13985  this->m_paramLock.lock();
13986  this->m_FileInDefaultClass = _localVal;
13987  this->m_param_FileInDefaultClass_valid = Fw::ParamValid::VALID;
13988  this->m_paramLock.unlock();
13989 
13990  // Call notifier
13992  return Fw::CmdResponse::OK;
13993  }
13994 
13995  Fw::CmdResponse CfdpManagerComponentBase ::
13996  paramSet_FileInDefaultKeep(Fw::SerialBufferBase& val)
13997  {
13998  Svc::Ccsds::Cfdp::Keep _localVal{};
13999  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
14000  if (_stat != Fw::FW_SERIALIZE_OK) {
14002  }
14003 
14004  // Assign value only if successfully deserialized
14005  this->m_paramLock.lock();
14006  this->m_FileInDefaultKeep = _localVal;
14007  this->m_param_FileInDefaultKeep_valid = Fw::ParamValid::VALID;
14008  this->m_paramLock.unlock();
14009 
14010  // Call notifier
14012  return Fw::CmdResponse::OK;
14013  }
14014 
14015  Fw::CmdResponse CfdpManagerComponentBase ::
14016  paramSet_FileInDefaultPriority(Fw::SerialBufferBase& val)
14017  {
14018  U8 _localVal{};
14019  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
14020  if (_stat != Fw::FW_SERIALIZE_OK) {
14022  }
14023 
14024  // Assign value only if successfully deserialized
14025  this->m_paramLock.lock();
14026  this->m_FileInDefaultPriority = _localVal;
14027  this->m_param_FileInDefaultPriority_valid = Fw::ParamValid::VALID;
14028  this->m_paramLock.unlock();
14029 
14030  // Call notifier
14032  return Fw::CmdResponse::OK;
14033  }
14034 
14035  Fw::CmdResponse CfdpManagerComponentBase ::
14036  paramSet_ChannelConfig(Fw::SerialBufferBase& val)
14037  {
14039  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
14040  if (_stat != Fw::FW_SERIALIZE_OK) {
14042  }
14043 
14044  // Assign value only if successfully deserialized
14045  this->m_paramLock.lock();
14046  this->m_ChannelConfig = _localVal;
14047  this->m_param_ChannelConfig_valid = Fw::ParamValid::VALID;
14048  this->m_paramLock.unlock();
14049 
14050  // Call notifier
14052  return Fw::CmdResponse::OK;
14053  }
14054 
14055  // ----------------------------------------------------------------------
14056  // Parameter save functions
14057  // ----------------------------------------------------------------------
14058 
14059  Fw::CmdResponse CfdpManagerComponentBase ::
14060  paramSave_LocalEid()
14061  {
14062  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14064  }
14065  Fw::ParamBuffer _paramBuffer;
14066  const FwIdType idBase = this->getIdBase();
14068  // Serialize the parameter
14069  this->m_paramLock.lock();
14070  if ((this->m_param_LocalEid_valid == Fw::ParamValid::VALID) || (this->m_param_LocalEid_valid == Fw::ParamValid::DEFAULT)) {
14071  _stat = _paramBuffer.serializeFrom(m_LocalEid);
14072  }
14073  this->m_paramLock.unlock();
14074  if (_stat != Fw::FW_SERIALIZE_OK) {
14076  }
14077  // Save the parameter
14078  this->prmSetOut_out(
14079  0,
14080  static_cast<FwPrmIdType>(idBase + PARAMID_LOCALEID),
14081  _paramBuffer
14082  );
14083  // Return the command response
14084  return Fw::CmdResponse::OK;
14085  }
14086 
14087  Fw::CmdResponse CfdpManagerComponentBase ::
14088  paramSave_OutgoingFileChunkSize()
14089  {
14090  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14092  }
14093  Fw::ParamBuffer _paramBuffer;
14094  const FwIdType idBase = this->getIdBase();
14096  // Serialize the parameter
14097  this->m_paramLock.lock();
14098  if ((this->m_param_OutgoingFileChunkSize_valid == Fw::ParamValid::VALID) || (this->m_param_OutgoingFileChunkSize_valid == Fw::ParamValid::DEFAULT)) {
14099  _stat = _paramBuffer.serializeFrom(m_OutgoingFileChunkSize);
14100  }
14101  this->m_paramLock.unlock();
14102  if (_stat != Fw::FW_SERIALIZE_OK) {
14104  }
14105  // Save the parameter
14106  this->prmSetOut_out(
14107  0,
14108  static_cast<FwPrmIdType>(idBase + PARAMID_OUTGOINGFILECHUNKSIZE),
14109  _paramBuffer
14110  );
14111  // Return the command response
14112  return Fw::CmdResponse::OK;
14113  }
14114 
14115  Fw::CmdResponse CfdpManagerComponentBase ::
14116  paramSave_RxCrcCalcBytesPerCycle()
14117  {
14118  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14120  }
14121  Fw::ParamBuffer _paramBuffer;
14122  const FwIdType idBase = this->getIdBase();
14124  // Serialize the parameter
14125  this->m_paramLock.lock();
14126  if ((this->m_param_RxCrcCalcBytesPerCycle_valid == Fw::ParamValid::VALID) || (this->m_param_RxCrcCalcBytesPerCycle_valid == Fw::ParamValid::DEFAULT)) {
14127  _stat = _paramBuffer.serializeFrom(m_RxCrcCalcBytesPerCycle);
14128  }
14129  this->m_paramLock.unlock();
14130  if (_stat != Fw::FW_SERIALIZE_OK) {
14132  }
14133  // Save the parameter
14134  this->prmSetOut_out(
14135  0,
14136  static_cast<FwPrmIdType>(idBase + PARAMID_RXCRCCALCBYTESPERCYCLE),
14137  _paramBuffer
14138  );
14139  // Return the command response
14140  return Fw::CmdResponse::OK;
14141  }
14142 
14143  Fw::CmdResponse CfdpManagerComponentBase ::
14144  paramSave_PostInactivitySendRetries()
14145  {
14146  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14148  }
14149  Fw::ParamBuffer _paramBuffer;
14150  const FwIdType idBase = this->getIdBase();
14152  // Serialize the parameter
14153  this->m_paramLock.lock();
14154  if ((this->m_param_PostInactivitySendRetries_valid == Fw::ParamValid::VALID) || (this->m_param_PostInactivitySendRetries_valid == Fw::ParamValid::DEFAULT)) {
14155  _stat = _paramBuffer.serializeFrom(m_PostInactivitySendRetries);
14156  }
14157  this->m_paramLock.unlock();
14158  if (_stat != Fw::FW_SERIALIZE_OK) {
14160  }
14161  // Save the parameter
14162  this->prmSetOut_out(
14163  0,
14164  static_cast<FwPrmIdType>(idBase + PARAMID_POSTINACTIVITYSENDRETRIES),
14165  _paramBuffer
14166  );
14167  // Return the command response
14168  return Fw::CmdResponse::OK;
14169  }
14170 
14171  Fw::CmdResponse CfdpManagerComponentBase ::
14172  paramSave_FileInDefaultChannel()
14173  {
14174  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14176  }
14177  Fw::ParamBuffer _paramBuffer;
14178  const FwIdType idBase = this->getIdBase();
14180  // Serialize the parameter
14181  this->m_paramLock.lock();
14182  if ((this->m_param_FileInDefaultChannel_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultChannel_valid == Fw::ParamValid::DEFAULT)) {
14183  _stat = _paramBuffer.serializeFrom(m_FileInDefaultChannel);
14184  }
14185  this->m_paramLock.unlock();
14186  if (_stat != Fw::FW_SERIALIZE_OK) {
14188  }
14189  // Save the parameter
14190  this->prmSetOut_out(
14191  0,
14192  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTCHANNEL),
14193  _paramBuffer
14194  );
14195  // Return the command response
14196  return Fw::CmdResponse::OK;
14197  }
14198 
14199  Fw::CmdResponse CfdpManagerComponentBase ::
14200  paramSave_FileInDefaultDestEntityId()
14201  {
14202  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14204  }
14205  Fw::ParamBuffer _paramBuffer;
14206  const FwIdType idBase = this->getIdBase();
14208  // Serialize the parameter
14209  this->m_paramLock.lock();
14210  if ((this->m_param_FileInDefaultDestEntityId_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultDestEntityId_valid == Fw::ParamValid::DEFAULT)) {
14211  _stat = _paramBuffer.serializeFrom(m_FileInDefaultDestEntityId);
14212  }
14213  this->m_paramLock.unlock();
14214  if (_stat != Fw::FW_SERIALIZE_OK) {
14216  }
14217  // Save the parameter
14218  this->prmSetOut_out(
14219  0,
14220  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTDESTENTITYID),
14221  _paramBuffer
14222  );
14223  // Return the command response
14224  return Fw::CmdResponse::OK;
14225  }
14226 
14227  Fw::CmdResponse CfdpManagerComponentBase ::
14228  paramSave_FileInDefaultClass()
14229  {
14230  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14232  }
14233  Fw::ParamBuffer _paramBuffer;
14234  const FwIdType idBase = this->getIdBase();
14236  // Serialize the parameter
14237  this->m_paramLock.lock();
14238  if ((this->m_param_FileInDefaultClass_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultClass_valid == Fw::ParamValid::DEFAULT)) {
14239  _stat = _paramBuffer.serializeFrom(m_FileInDefaultClass);
14240  }
14241  this->m_paramLock.unlock();
14242  if (_stat != Fw::FW_SERIALIZE_OK) {
14244  }
14245  // Save the parameter
14246  this->prmSetOut_out(
14247  0,
14248  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTCLASS),
14249  _paramBuffer
14250  );
14251  // Return the command response
14252  return Fw::CmdResponse::OK;
14253  }
14254 
14255  Fw::CmdResponse CfdpManagerComponentBase ::
14256  paramSave_FileInDefaultKeep()
14257  {
14258  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14260  }
14261  Fw::ParamBuffer _paramBuffer;
14262  const FwIdType idBase = this->getIdBase();
14264  // Serialize the parameter
14265  this->m_paramLock.lock();
14266  if ((this->m_param_FileInDefaultKeep_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultKeep_valid == Fw::ParamValid::DEFAULT)) {
14267  _stat = _paramBuffer.serializeFrom(m_FileInDefaultKeep);
14268  }
14269  this->m_paramLock.unlock();
14270  if (_stat != Fw::FW_SERIALIZE_OK) {
14272  }
14273  // Save the parameter
14274  this->prmSetOut_out(
14275  0,
14276  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTKEEP),
14277  _paramBuffer
14278  );
14279  // Return the command response
14280  return Fw::CmdResponse::OK;
14281  }
14282 
14283  Fw::CmdResponse CfdpManagerComponentBase ::
14284  paramSave_FileInDefaultPriority()
14285  {
14286  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14288  }
14289  Fw::ParamBuffer _paramBuffer;
14290  const FwIdType idBase = this->getIdBase();
14292  // Serialize the parameter
14293  this->m_paramLock.lock();
14294  if ((this->m_param_FileInDefaultPriority_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultPriority_valid == Fw::ParamValid::DEFAULT)) {
14295  _stat = _paramBuffer.serializeFrom(m_FileInDefaultPriority);
14296  }
14297  this->m_paramLock.unlock();
14298  if (_stat != Fw::FW_SERIALIZE_OK) {
14300  }
14301  // Save the parameter
14302  this->prmSetOut_out(
14303  0,
14304  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTPRIORITY),
14305  _paramBuffer
14306  );
14307  // Return the command response
14308  return Fw::CmdResponse::OK;
14309  }
14310 
14311  Fw::CmdResponse CfdpManagerComponentBase ::
14312  paramSave_ChannelConfig()
14313  {
14314  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14316  }
14317  Fw::ParamBuffer _paramBuffer;
14318  const FwIdType idBase = this->getIdBase();
14320  // Serialize the parameter
14321  this->m_paramLock.lock();
14322  if ((this->m_param_ChannelConfig_valid == Fw::ParamValid::VALID) || (this->m_param_ChannelConfig_valid == Fw::ParamValid::DEFAULT)) {
14323  _stat = _paramBuffer.serializeFrom(m_ChannelConfig);
14324  }
14325  this->m_paramLock.unlock();
14326  if (_stat != Fw::FW_SERIALIZE_OK) {
14328  }
14329  // Save the parameter
14330  this->prmSetOut_out(
14331  0,
14332  static_cast<FwPrmIdType>(idBase + PARAMID_CHANNELCONFIG),
14333  _paramBuffer
14334  );
14335  // Return the command response
14336  return Fw::CmdResponse::OK;
14337  }
14338 
14339  }
14340 
14341  }
14342 
14343 }
Serialization/Deserialization operation was successful.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
Svc::Ccsds::Cfdp::Keep paramGet_FileInDefaultKeep(Fw::ParamValid &valid)
void dataReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port dataReturnIn.
The size of the serial representation.
void log_ACTIVITY_LO_TransactionResumed(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void addCallPort(InputTimePort *callPort)
Register an input port.
Definition: TimePortAc.cpp:157
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
virtual void run1Hz_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run1Hz.
bool isConnected_prmGetOut_OutputPort(FwIndexType portNum) const
static constexpr FwSizeType CAPACITY
Definition: CmdPortAc.hpp:36
Enum used to determine if a file should be kept or deleted after a CFDP transaction.
Definition: KeepEnumAc.hpp:22
virtual void run1Hz_handler(FwIndexType portNum, U32 context)=0
Handler for input port run1Hz.
void log_WARNING_LO_FailAckPduDeserialization(U8 channelId, I32 status) const
Log event FailAckPduDeserialization.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_bufferDeallocate_OutputPorts()
void log_WARNING_LO_FailFileDataPduDeserialization(U8 channelId, I32 status) const
Log event FailFileDataPduDeserialization.
FwIdType FwOpcodeType
The type of a command opcode.
void log_WARNING_LO_TxFileSeekFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, I32 status) const
Log event TxFileSeekFailed.
void log_WARNING_LO_FailPollFileMove(const Fw::StringBase &srcFile, const Fw::StringBase &failDir, I32 status) const
Log event FailPollFileMove.
Operation succeeded.
Definition: Os.hpp:27
void log_WARNING_LO_RxEofWithError(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 conditionCode) const
Log event RxEofWithError.
Parameter configuration for an array CFDP channels.
PlatformSizeType FwSizeType
void PlaybackDirectory_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
Definition: Queue.cpp:71
I32 FwEnumStoreType
void log_ACTIVITY_LO_RxTempFileCreated(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename) const
Log event RxTempFileCreated.
Enabled state.
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port dataReturnIn.
void regCommands()
Register commands with the Command Dispatcher.
void log_WARNING_LO_TxSendMetadataFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxSendMetadataFailed.
Status
status returned from the queue send function
Definition: Queue.hpp:30
Svc::SendFileResponse fileIn_handlerBase(FwIndexType portNum, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 offset, U32 length)
Handler base-class function for input port fileIn.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
virtual void CancelTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CancelTransaction.
virtual Svc::SendFileResponse fileIn_handler(FwIndexType portNum, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 offset, U32 length)=0
Handler for input port fileIn.
void set_dataOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to dataOut[portNum].
virtual void parametersLoaded()
Called whenever parameters are loaded.
void log_WARNING_LO_TxInactivityTimeout(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxInactivityTimeout.
U32 EntityId
Entity id size.
void init()
Initialization function.
Definition: SchedPortAc.cpp:73
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void log_ACTIVITY_LO_TransactionSuspended(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void log_WARNING_LO_RxAckLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxAckLimitReached.
message to exit active component task
void dataInReturn_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port dataInReturn.
BYTE pingInPortSize[Svc::PingPortBuffer::CAPACITY]
virtual void SetChannelFlow_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, const Svc::Ccsds::Cfdp::Flow &freeze)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void set_bufferDeallocate_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferDeallocate[portNum].
static constexpr FwIndexType getNum_fileIn_InputPorts()
void init()
Initialization function.
Definition: CmdPortAc.cpp:89
virtual void AbandonTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
void set_prmGetOut_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to prmGetOut[portNum].
void log_WARNING_LO_InvalidDestinationEid(U32 destEid) const
Log event InvalidDestinationEid.
FwIdType FwPrmIdType
The type of a parameter identifier.
static constexpr FwSizeType CAPACITY
static constexpr FwIndexType getNum_dataInReturn_OutputPorts()
void log_WARNING_LO_TxAckLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxAckLimitReached.
void log_WARNING_LO_RxSeekCrcFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, I32 status) const
Log event RxSeekCrcFailed.
void unLock()
unlock the mutex and assert success
Definition: Mutex.cpp:41
virtual void CancelTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
void addCallPort(InputPrmSetPort *callPort)
Register an input port.
void log_WARNING_LO_TxFileTransferFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U8 conditionCode) const
Log event TxFileTransferFailed.
virtual void parameterUpdated(FwPrmIdType id)
Called whenever a parameter is updated.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
void fileDoneOut_out(FwIndexType portNum, const Svc::SendFileResponse &resp) const
Invoke output port fileDoneOut.
void invoke(U32 key) const
Invoke a port connection.
Definition: PingPortAc.cpp:170
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
void tlmWrite_ChannelTelemetry(const Svc::Ccsds::Cfdp::ChannelTelemetryArray &arg, Fw::Time _tlmTime=Fw::Time()) const
void SetChannelFlow_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
const Time ZERO_TIME
Definition: Time.cpp:5
void log_WARNING_LO_RxFileSizeMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, U32 actual) const
Log event RxFileSizeMismatch.
void log_WARNING_LO_ChunklistUnavailable(U32 transactionSeq) const
Log event ChunklistUnavailable.
void log_WARNING_LO_RxWriteFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, I32 actual) const
Log event RxWriteFailed.
virtual void dataIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port dataIn.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
File will be deleted after the CFDP transaction.
Definition: KeepEnumAc.hpp:38
CFDP class 2 - Reliable transfer (Acknowledged)
Definition: ClassEnumAc.hpp:44
BYTE run1HzPortSize[Svc::SchedPortBuffer::CAPACITY]
void log_ACTIVITY_HI_TransactionAbandoned(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void init()
Initialization function.
Definition: TlmPortAc.cpp:171
Enum representing a command response.
No time base has been established (Required)
void CancelTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void ResetCounters_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command ResetCounters.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
The size of the serial representation.
Definition: FlowEnumAc.hpp:53
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void log_ACTIVITY_HI_ResetCounters(U8 channelId) const
Log event ResetCounters.
void init()
Initialization function.
virtual void lock()
Lock the guarded mutex.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void set_bufferAllocate_OutputPort(FwIndexType portNum, Fw::InputBufferGetPort *port)
Connect port to bufferAllocate[portNum].
void init()
Initialization function.
void log_WARNING_LO_RxNakLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxNakLimitReached.
Os::Queue m_queue
queue object for active component
void SendFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void set_dataInReturn_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to dataInReturn[portNum].
Default CFDP class for fileIn port-initiated file transfers.
Software diagnostic events.
void log_ACTIVITY_HI_TxFileTransferCompleted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event TxFileTransferCompleted.
void SuspendResumeTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void addCallPort(InputTlmPort *callPort)
Register an input port.
Definition: TlmPortAc.cpp:177
void set_prmSetOut_OutputPort(FwIndexType portNum, Fw::InputPrmSetPort *port)
Connect port to prmSetOut[portNum].
void addCallPort(InputPrmGetPort *callPort)
Register an input port.
void init()
Object initializer.
Definition: ObjBase.cpp:24
virtual void dataIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port dataIn.
static constexpr FwIndexType getNum_logOut_OutputPorts()
SerializeStatus
forward declaration for string
void log_WARNING_LO_SendFileInitiateFail(const Fw::StringBase &sourceFileName) const
Log event SendFileInitiateFail.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: CmdPortAc.cpp:95
Command to cancel a transaction with graceful close-out.
void addCallPort(InputBufferGetPort *callPort)
Register an input port.
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
Message will block until space is available.
Definition: Queue.hpp:47
void unlock()
alias for unLock to meet BasicLockable requirements
Definition: Mutex.hpp:64
void log_ACTIVITY_LO_MetadataReceived(const Fw::StringBase &srcFile, const Fw::StringBase &destFile, U32 transactionSeq) const
Log event MetadataReceived.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void log_WARNING_LO_TxInvalidSegmentRequests(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 badCount) const
Log event TxInvalidSegmentRequests.
void dataIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port dataIn.
virtual void ResetCounters_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId)=0
U32 TransactionSeq
transaction sequence number size
Fw::InputBufferSendPort * get_dataIn_InputPort(FwIndexType portNum)
virtual void PlaybackDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, const Svc::Ccsds::Cfdp::Keep &keep, U8 priority, const Fw::CmdStringArg &sourceDirectory, const Fw::CmdStringArg &destDirectory)=0
FwIdType FwEventIdType
The type of an event identifier.
void log_WARNING_LO_MaxTxTransactionsReached() const
Log event MaxTxTransactionsReached.
static constexpr FwIndexType getNum_prmGetOut_OutputPorts()
Default priority for fileIn port-initiated file transfers.
void invoke(FwOpcodeType opCode) const
Invoke a port connection.
static constexpr FwSizeType CAPACITY
Definition: PingPortAc.hpp:34
CfdpManagerComponentBase(const char *compName="")
Construct CfdpManagerComponentBase object.
bool isConnected_fileDoneOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_LO_PlaybackInitiated(const Fw::StringBase &sourceDirectory) const
Log event PlaybackInitiated.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
Definition: FpConfig.h:40
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Svc::Ccsds::Cfdp::Class paramGet_FileInDefaultClass(Fw::ParamValid &valid)
void init()
Initialization function.
Definition: TimePortAc.cpp:151
virtual void AbandonTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command AbandonTransaction.
void PollDirectory_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Data was the wrong format (e.g. wrong packet type)
Fw::InputBufferSendPort * get_dataReturnIn_InputPort(FwIndexType portNum)
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void log_WARNING_LO_TxZeroLengthFile(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename) const
Log event TxZeroLengthFile.
Less important informational events.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
#define FW_MIN(a, b)
MIN macro (deprecated in C++, use std::min)
Definition: BasicTypes.h:99
A less serious but recoverable event.
void log_ACTIVITY_HI_TxFileTransferStarted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event TxFileTransferStarted.
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port connection.
Fw::ParamValid invoke(FwPrmIdType id, Fw::ParamBuffer &val) const
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual void unLock()
Unlock the guarded mutex.
void log_WARNING_LO_FileDataSegmentMetadata() const
Log event FileDataSegmentMetadata.
virtual void SuspendResumeTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SuspendResumeTransaction.
Svc::Ccsds::Cfdp::EntityId paramGet_LocalEid(Fw::ParamValid &valid)
void log_WARNING_LO_InvalidChannelPoll(U8 pollId, U8 maxPollId) const
Log event InvalidChannelPoll.
void init()
Initialization function.
Definition: PingPortAc.cpp:151
virtual void StopPollDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command StopPollDirectory.
void init()
Initialization function.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
static constexpr FwIndexType getNum_dataReturnIn_InputPorts()
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
void invoke(Fw::Time &time) const
Invoke a port connection.
Definition: TimePortAc.cpp:170
void log_WARNING_LO_RxFileTransferFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U8 conditionCode) const
Log event RxFileTransferFailed.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
The maximum number of received bytes to calculate a CRC for in a single scheduler cycle...
void log_WARNING_LO_RxFileCreateFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileCreateFailed.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
void log_WARNING_LO_TxInvalidNakPdu(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxInvalidNakPdu.
void log_ACTIVITY_HI_TransactionCanceled(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
FwIdType FwChanIdType
The type of a telemetry channel identifier.
bool isConnected_dataOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxFileReopenFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileReopenFailed.
void addCallPort(InputPingPort *callPort)
Register an input port.
Definition: PingPortAc.cpp:157
void log_WARNING_LO_InvalidChannel(U8 channelId, U8 maxChannelId) const
Log event InvalidChannel.
void log_WARNING_LO_TransactionNotFound(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
virtual ~CfdpManagerComponentBase()
Destroy CfdpManagerComponentBase object.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
Definition: Queue.cpp:54
virtual void SendFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, const Svc::Ccsds::Cfdp::Keep &keep, U8 priority, const Fw::CmdStringArg &sourceFileName, const Fw::CmdStringArg &destFileName)=0
static constexpr FwIndexType getNum_prmSetOut_OutputPorts()
The size of the serial representation.
Definition: ClassEnumAc.hpp:60
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
virtual void SetChannelFlow_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SetChannelFlow.
void log_WARNING_LO_UnsupportedSendFileArguments(U32 offset, U32 length) const
Log event UnsupportedSendFileArguments.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
void log_WARNING_LO_FailEofPduDeserialization(U8 channelId, I32 status) const
Log event FailEofPduDeserialization.
void log_ACTIVITY_LO_PollDirInitiated(const Fw::StringBase &sourceDirectory, U8 pollId) const
Log event PollDirInitiated.
static constexpr FwIndexType getNum_run1Hz_InputPorts()
Default destination entity ID for fileIn port-initiated file transfers.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port connection.
Definition: TlmPortAc.cpp:190
const char * toChar() const
Convert to a C-style char*.
virtual void dataReturnIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port dataReturnIn.
bool isConnected() const
Definition: PortBase.cpp:38
Enum representing event severity.
virtual void PollDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PollDirectory.
#define PRI_FwIndexType
void log_WARNING_LO_RxSeekFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, I32 status) const
Log event RxSeekFailed.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
void init()
Initialization function.
Definition: LogPortAc.cpp:180
Command successfully executed.
void log_WARNING_LO_TxNonFileDirectivePduReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxNonFileDirectivePduReceived.
virtual void SuspendResumeTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId, const Svc::Ccsds::Cfdp::SuspendResume &action)=0
Svc::InputSendFileRequestPort * get_fileIn_InputPort(FwIndexType portNum)
void log_WARNING_LO_RxTransactionLimitReached(U32 srcEid, U32 transactionSeq) const
Log event RxTransactionLimitReached.
void loadParameters()
Load the parameters from a parameter source.
void log_WARNING_LO_FailKeepFileMove(const Fw::StringBase &srcFile, const Fw::StringBase &moveDir, I32 status) const
Log event FailKeepFileMove.
Svc::InputSchedPort * get_run1Hz_InputPort(FwIndexType portNum)
void setPortNum(FwIndexType portNum)
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:54
void log_WARNING_LO_RxEofMdSizeMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 mdSize, U32 eofSize) const
Log event RxEofMdSizeMismatch.
Structure for the configured array of CFDP channels.
BlockingType
message type
Definition: Queue.hpp:46
void dataOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port dataOut.
void init()
Initialization function.
void log_ACTIVITY_HI_RxEofCancelReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxEofCancelReceived.
Fw::Buffer invoke(FwSizeType size) const
void bufferDeallocate_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferDeallocate.
bool isConnected_prmSetOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_LO_SetFlowState(U8 channelId, const Svc::Ccsds::Cfdp::Flow &flowState) const
Log event SetFlowState.
Command failed to deserialize.
Fw::Buffer bufferAllocate_out(FwIndexType portNum, FwSizeType size) const
Invoke output port bufferAllocate.
BYTE dataReturnInPortSize[Fw::BufferSendPortBuffer::CAPACITY]
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
void log_WARNING_LO_RxFileRenameFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &tempFile, const Fw::StringBase &finalFile, I32 status) const
Log event RxFileRenameFailed.
Command had execution error.
Structure for telemetry counters for a single CFDP channel.
Important informational events.
void init()
Initialization function.
void AbandonTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
bool isConnected_bufferAllocate_OutputPort(FwIndexType portNum) const
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: SchedPortAc.cpp:79
void log_WARNING_LO_TxFileOpenFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event TxFileOpenFailed.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
Definition: LogPortAc.cpp:199
void log_WARNING_LO_TxInvalidDirectiveCode(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 directiveCode, U8 substate) const
Log event TxInvalidDirectiveCode.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_dataIn_InputPorts()
void log_WARNING_LO_PlaybackDirReadFailed(const Fw::StringBase &directory, I32 status) const
Log event PlaybackDirReadFailed.
void log_ACTIVITY_LO_TxFileQueued(const Fw::StringBase &sourceFileName, U32 transactionSeq) const
Log event TxFileQueued.
A message was sent requesting an exit of the loop.
void log_WARNING_LO_PlaybackDirSlotUnavailable() const
Log event PlaybackDirSlotUnavailable.
void log_WARNING_LO_UnhandledPduInIdleState() const
Log event UnhandledPduInIdleState.
BYTE dataInPortSize[Fw::BufferSendPortBuffer::CAPACITY]
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_BuffersExhausted() const
Log event BuffersExhausted.
PlatformIndexType FwIndexType
void log_WARNING_LO_RxCrcMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, U32 actual) const
Log event RxCrcMismatch.
void log_WARNING_LO_RxFileDataOutOfBounds(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, U32 dataSize, U32 fileSize) const
Log event RxFileDataOutOfBounds.
Default CFDP channel for fileIn port-initiated file transfers.
Send file response struct.
void log_WARNING_LO_FailPduSerialization(U8 channelId, const Svc::Ccsds::Cfdp::PduTypeEnum &pduType, I32 status) const
Log event FailPduSerialization.
void addCallPort(InputLogPort *callPort)
Register an input port.
Definition: LogPortAc.cpp:186
void log_ACTIVITY_HI_RxFileTransferCompleted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event RxFileTransferCompleted.
bool isConnected_dataInReturn_OutputPort(FwIndexType portNum) const
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void init()
Initialization function.
virtual void StopPollDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, U8 pollId)=0
void log_WARNING_LO_InvalidPollInterval(U32 interval) const
Log event InvalidPollInterval.
void init()
Initialization function.
Definition: PingPortAc.cpp:73
void init()
Initialization function.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
Command failed validation.
RateGroupDivider component implementation.
static constexpr FwIndexType getNum_dataOut_OutputPorts()
void run1Hz_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port run1Hz.
void log_WARNING_LO_RxInvalidDirectiveCode(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 directiveCode, U8 substate) const
Log event RxInvalidDirectiveCode.
Default file retention policy for fileIn port-initiated file transfers.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
virtual void SendFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SendFile.
message sent/received okay
Definition: Queue.hpp:31
Svc::Ccsds::Cfdp::EntityId paramGet_FileInDefaultDestEntityId(Fw::ParamValid &valid)
Enum representing parameter validity.
U8 BYTE
byte type
Definition: BasicTypes.h:57
static constexpr FwIndexType getNum_fileDoneOut_OutputPorts()
virtual void PlaybackDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PlaybackDirectory.
void invoke(FwPrmIdType id, Fw::ParamBuffer &val) const
Invoke a port connection.
static constexpr FwIndexType getNum_pingIn_InputPorts()
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxReadCrcFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, I32 actual) const
Log event RxReadCrcFailed.
void log_WARNING_LO_FileRemoveFailed(const Fw::StringBase &filename, I32 status) const
Log event FileRemoveFailed.
void log_WARNING_LO_PlaybackDirOpenFailed(const Fw::StringBase &directory, I32 status) const
Log event PlaybackDirOpenFailed.
void log_WARNING_LO_DanglingFileHandleClosed(U8 channelId, U32 transactionSeq) const
Log event DanglingFileHandleClosed.
void invoke(const Svc::SendFileResponse &resp) const
Invoke a port connection.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: PingPortAc.cpp:79
void log_WARNING_LO_RxInactivityTimeout(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxInactivityTimeout.
void log_WARNING_LO_PollDirNotActive(U8 channelId, U8 pollId) const
Log event PollDirNotActive.
Svc::Ccsds::Cfdp::ChannelArrayParams paramGet_ChannelConfig(Fw::ParamValid &valid)
void log_WARNING_LO_FailPduHeaderDeserialization(U8 channelId, I32 status) const
Log event FailPduHeaderDeserialization.
Message will return with status when space is unavailable.
Definition: Queue.hpp:48
Implementation of malloc based allocator.
void log_DIAGNOSTIC_ResetFreedTransaction() const
Log event ResetFreedTransaction.
virtual void PollDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, U8 pollId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, U8 priority, U32 interval, const Fw::CmdStringArg &sourceDirectory, const Fw::CmdStringArg &destDirectory)=0
void init()
Initialization function.
void log_WARNING_LO_PollDirBusy(U8 channelId, U8 pollId) const
Log event PollDirBusy.
void init()
Initialization function.
void StopPollDirectory_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void ResetCounters_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
static constexpr FwIndexType getNum_bufferAllocate_OutputPorts()
void addCallPort(InputSendFileCompletePort *callPort)
Register an input port.
bool isConnected_bufferDeallocate_OutputPort(FwIndexType portNum) const
void set_fileDoneOut_OutputPort(FwIndexType portNum, Svc::InputSendFileCompletePort *port)
Connect port to fileDoneOut[portNum].
void log_DIAGNOSTIC_TxLateFinAcked(Svc::Ccsds::Cfdp::EntityId srcEid, Svc::Ccsds::Cfdp::TransactionSeq seqNum) const
#define FW_ASSERT(...)
Definition: Assert.hpp:14
static constexpr FwSizeType CAPACITY
Definition: SchedPortAc.hpp:34
CFDP ID to denote the current node when sending PDUs.
void log_WARNING_LO_TxEarlyFinReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxEarlyFinReceived.
void log_WARNING_LO_FailFinPduDeserialization(U8 channelId, I32 status) const
Log event FailFinPduDeserialization.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void log_ACTIVITY_LO_PollDirStopped(U8 channelId, U8 pollId) const
Log event PollDirStopped.
void lock()
lock the mutex and assert success
Definition: Mutex.cpp:34
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_FailNakPduDeserialization(U8 channelId, I32 status) const
Log event FailNakPduDeserialization.
U32 FwIdType
The id type.
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
void log_WARNING_LO_FailMetadataPduDeserialization(U8 channelId, I32 status) const
Log event FailMetadataPduDeserialization.
BYTE cmdPortSize[Fw::CmdPortBuffer::CAPACITY]