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  if (qStatus == Os::Queue::Status::FULL) {
2171  this->incNumMsgDropped();
2172  return;
2173  }
2174 
2175  FW_ASSERT(
2176  qStatus == Os::Queue::OP_OK,
2177  static_cast<FwAssertArgType>(qStatus)
2178  );
2179  }
2180 
2183  FwIndexType portNum,
2184  U32 context
2185  )
2186  {
2187  // Make sure port number is valid
2188  FW_ASSERT(
2189  (0 <= portNum) && (portNum < this->getNum_run1Hz_InputPorts()),
2190  static_cast<FwAssertArgType>(portNum)
2191  );
2192 
2193  // Call pre-message hook
2195  portNum,
2196  context
2197  );
2198  ComponentIpcSerializableBuffer msg;
2200 
2201  // Serialize message ID
2202  _status = msg.serializeFrom(
2203  static_cast<FwEnumStoreType>(RUN1HZ_SCHED)
2204  );
2205  FW_ASSERT(
2206  _status == Fw::FW_SERIALIZE_OK,
2207  static_cast<FwAssertArgType>(_status)
2208  );
2209 
2210  // Serialize port number
2211  _status = msg.serializeFrom(portNum);
2212  FW_ASSERT(
2213  _status == Fw::FW_SERIALIZE_OK,
2214  static_cast<FwAssertArgType>(_status)
2215  );
2216 
2217  // Serialize argument context
2218  _status = msg.serializeFrom(context);
2219  FW_ASSERT(
2220  _status == Fw::FW_SERIALIZE_OK,
2221  static_cast<FwAssertArgType>(_status)
2222  );
2223 
2224  // Send message
2226  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2227 
2228  FW_ASSERT(
2229  qStatus == Os::Queue::OP_OK,
2230  static_cast<FwAssertArgType>(qStatus)
2231  );
2232  }
2233 
2234  // ----------------------------------------------------------------------
2235  // Pre-message hooks for typed async input ports
2236  //
2237  // Each of these functions is invoked just before processing a message
2238  // on the corresponding port. By default, they do nothing. You can
2239  // override them to provide specific pre-message behavior.
2240  // ----------------------------------------------------------------------
2241 
2244  FwIndexType portNum,
2245  Fw::Buffer& fwBuffer
2246  )
2247  {
2248  // Default: no-op
2249  }
2250 
2253  FwIndexType portNum,
2254  Fw::Buffer& fwBuffer
2255  )
2256  {
2257  // Default: no-op
2258  }
2259 
2262  FwIndexType portNum,
2263  U32 key
2264  )
2265  {
2266  // Default: no-op
2267  }
2268 
2271  FwIndexType portNum,
2272  U32 context
2273  )
2274  {
2275  // Default: no-op
2276  }
2277 
2278 #if !FW_DIRECT_PORT_CALLS
2279 
2280  // ----------------------------------------------------------------------
2281  // Invocation functions for typed output ports
2282  // ----------------------------------------------------------------------
2283 
2286  FwIndexType portNum,
2287  FwSizeType size
2288  ) const
2289  {
2290  FW_ASSERT(
2291  (0 <= portNum) && (portNum < this->getNum_bufferAllocate_OutputPorts()),
2292  static_cast<FwAssertArgType>(portNum)
2293  );
2294 
2295  FW_ASSERT(
2296  this->m_bufferAllocate_OutputPort[portNum].isConnected(),
2297  static_cast<FwAssertArgType>(portNum)
2298  );
2299  return this->m_bufferAllocate_OutputPort[portNum].invoke(
2300  size
2301  );
2302  }
2303 
2306  FwIndexType portNum,
2307  Fw::Buffer& fwBuffer
2308  ) const
2309  {
2310  FW_ASSERT(
2311  (0 <= portNum) && (portNum < this->getNum_bufferDeallocate_OutputPorts()),
2312  static_cast<FwAssertArgType>(portNum)
2313  );
2314 
2315  FW_ASSERT(
2316  this->m_bufferDeallocate_OutputPort[portNum].isConnected(),
2317  static_cast<FwAssertArgType>(portNum)
2318  );
2319  this->m_bufferDeallocate_OutputPort[portNum].invoke(
2320  fwBuffer
2321  );
2322  }
2323 
2326  FwIndexType portNum,
2327  Fw::Buffer& fwBuffer
2328  ) const
2329  {
2330  FW_ASSERT(
2331  (0 <= portNum) && (portNum < this->getNum_dataInReturn_OutputPorts()),
2332  static_cast<FwAssertArgType>(portNum)
2333  );
2334 
2335  FW_ASSERT(
2336  this->m_dataInReturn_OutputPort[portNum].isConnected(),
2337  static_cast<FwAssertArgType>(portNum)
2338  );
2339  this->m_dataInReturn_OutputPort[portNum].invoke(
2340  fwBuffer
2341  );
2342  }
2343 
2346  FwIndexType portNum,
2347  Fw::Buffer& fwBuffer
2348  ) const
2349  {
2350  FW_ASSERT(
2351  (0 <= portNum) && (portNum < this->getNum_dataOut_OutputPorts()),
2352  static_cast<FwAssertArgType>(portNum)
2353  );
2354 
2355  FW_ASSERT(
2356  this->m_dataOut_OutputPort[portNum].isConnected(),
2357  static_cast<FwAssertArgType>(portNum)
2358  );
2359  this->m_dataOut_OutputPort[portNum].invoke(
2360  fwBuffer
2361  );
2362  }
2363 
2366  FwIndexType portNum,
2367  const Svc::SendFileResponse& resp
2368  ) const
2369  {
2370  FW_ASSERT(
2371  (0 <= portNum) && (portNum < this->getNum_fileDoneOut_OutputPorts()),
2372  static_cast<FwAssertArgType>(portNum)
2373  );
2374 
2375  FW_ASSERT(
2376  this->m_fileDoneOut_OutputPort[portNum].isConnected(),
2377  static_cast<FwAssertArgType>(portNum)
2378  );
2379  this->m_fileDoneOut_OutputPort[portNum].invoke(
2380  resp
2381  );
2382  }
2383 
2386  FwIndexType portNum,
2387  U32 key
2388  ) const
2389  {
2390  FW_ASSERT(
2391  (0 <= portNum) && (portNum < this->getNum_pingOut_OutputPorts()),
2392  static_cast<FwAssertArgType>(portNum)
2393  );
2394 
2395  FW_ASSERT(
2396  this->m_pingOut_OutputPort[portNum].isConnected(),
2397  static_cast<FwAssertArgType>(portNum)
2398  );
2399  this->m_pingOut_OutputPort[portNum].invoke(
2400  key
2401  );
2402  }
2403 
2404 #endif
2405 
2406  // ----------------------------------------------------------------------
2407  // Command response
2408  // ----------------------------------------------------------------------
2409 
2412  FwOpcodeType opCode,
2413  U32 cmdSeq,
2414  Fw::CmdResponse response
2415  )
2416  {
2418  this->cmdResponseOut_out(0, opCode, cmdSeq, response);
2419  }
2420 
2421  // ----------------------------------------------------------------------
2422  // Command handler base-class functions
2423  //
2424  // Call these functions directly to bypass the command input port
2425  // ----------------------------------------------------------------------
2426 
2429  FwOpcodeType opCode,
2430  U32 cmdSeq,
2431  Fw::CmdArgBuffer& args
2432  )
2433  {
2434  // Call pre-message hook
2435  this->SendFile_preMsgHook(opCode,cmdSeq);
2436 
2437  // Defer deserializing arguments to the message dispatcher
2438  // to avoid deserializing and reserializing just for IPC
2439  ComponentIpcSerializableBuffer msg;
2441 
2442  // Serialize for IPC
2443  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SENDFILE));
2444  FW_ASSERT (
2445  _status == Fw::FW_SERIALIZE_OK,
2446  static_cast<FwAssertArgType>(_status)
2447  );
2448 
2449  // Fake port number to make message dequeue work
2450  FwIndexType port = 0;
2451 
2452  _status = msg.serializeFrom(port);
2453  FW_ASSERT (
2454  _status == Fw::FW_SERIALIZE_OK,
2455  static_cast<FwAssertArgType>(_status)
2456  );
2457 
2458  _status = msg.serializeFrom(opCode);
2459  FW_ASSERT (
2460  _status == Fw::FW_SERIALIZE_OK,
2461  static_cast<FwAssertArgType>(_status)
2462  );
2463 
2464  _status = msg.serializeFrom(cmdSeq);
2465  FW_ASSERT (
2466  _status == Fw::FW_SERIALIZE_OK,
2467  static_cast<FwAssertArgType>(_status)
2468  );
2469 
2470  _status = msg.serializeFrom(args);
2471  FW_ASSERT (
2472  _status == Fw::FW_SERIALIZE_OK,
2473  static_cast<FwAssertArgType>(_status)
2474  );
2475 
2476  // Send message
2478  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2479 
2480  FW_ASSERT(
2481  qStatus == Os::Queue::OP_OK,
2482  static_cast<FwAssertArgType>(qStatus)
2483  );
2484  }
2485 
2488  FwOpcodeType opCode,
2489  U32 cmdSeq,
2490  Fw::CmdArgBuffer& args
2491  )
2492  {
2493  // Call pre-message hook
2494  this->PlaybackDirectory_preMsgHook(opCode,cmdSeq);
2495 
2496  // Defer deserializing arguments to the message dispatcher
2497  // to avoid deserializing and reserializing just for IPC
2498  ComponentIpcSerializableBuffer msg;
2500 
2501  // Serialize for IPC
2502  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_PLAYBACKDIRECTORY));
2503  FW_ASSERT (
2504  _status == Fw::FW_SERIALIZE_OK,
2505  static_cast<FwAssertArgType>(_status)
2506  );
2507 
2508  // Fake port number to make message dequeue work
2509  FwIndexType port = 0;
2510 
2511  _status = msg.serializeFrom(port);
2512  FW_ASSERT (
2513  _status == Fw::FW_SERIALIZE_OK,
2514  static_cast<FwAssertArgType>(_status)
2515  );
2516 
2517  _status = msg.serializeFrom(opCode);
2518  FW_ASSERT (
2519  _status == Fw::FW_SERIALIZE_OK,
2520  static_cast<FwAssertArgType>(_status)
2521  );
2522 
2523  _status = msg.serializeFrom(cmdSeq);
2524  FW_ASSERT (
2525  _status == Fw::FW_SERIALIZE_OK,
2526  static_cast<FwAssertArgType>(_status)
2527  );
2528 
2529  _status = msg.serializeFrom(args);
2530  FW_ASSERT (
2531  _status == Fw::FW_SERIALIZE_OK,
2532  static_cast<FwAssertArgType>(_status)
2533  );
2534 
2535  // Send message
2537  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2538 
2539  FW_ASSERT(
2540  qStatus == Os::Queue::OP_OK,
2541  static_cast<FwAssertArgType>(qStatus)
2542  );
2543  }
2544 
2547  FwOpcodeType opCode,
2548  U32 cmdSeq,
2549  Fw::CmdArgBuffer& args
2550  )
2551  {
2552  // Call pre-message hook
2553  this->PollDirectory_preMsgHook(opCode,cmdSeq);
2554 
2555  // Defer deserializing arguments to the message dispatcher
2556  // to avoid deserializing and reserializing just for IPC
2557  ComponentIpcSerializableBuffer msg;
2559 
2560  // Serialize for IPC
2561  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_POLLDIRECTORY));
2562  FW_ASSERT (
2563  _status == Fw::FW_SERIALIZE_OK,
2564  static_cast<FwAssertArgType>(_status)
2565  );
2566 
2567  // Fake port number to make message dequeue work
2568  FwIndexType port = 0;
2569 
2570  _status = msg.serializeFrom(port);
2571  FW_ASSERT (
2572  _status == Fw::FW_SERIALIZE_OK,
2573  static_cast<FwAssertArgType>(_status)
2574  );
2575 
2576  _status = msg.serializeFrom(opCode);
2577  FW_ASSERT (
2578  _status == Fw::FW_SERIALIZE_OK,
2579  static_cast<FwAssertArgType>(_status)
2580  );
2581 
2582  _status = msg.serializeFrom(cmdSeq);
2583  FW_ASSERT (
2584  _status == Fw::FW_SERIALIZE_OK,
2585  static_cast<FwAssertArgType>(_status)
2586  );
2587 
2588  _status = msg.serializeFrom(args);
2589  FW_ASSERT (
2590  _status == Fw::FW_SERIALIZE_OK,
2591  static_cast<FwAssertArgType>(_status)
2592  );
2593 
2594  // Send message
2596  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2597 
2598  FW_ASSERT(
2599  qStatus == Os::Queue::OP_OK,
2600  static_cast<FwAssertArgType>(qStatus)
2601  );
2602  }
2603 
2606  FwOpcodeType opCode,
2607  U32 cmdSeq,
2608  Fw::CmdArgBuffer& args
2609  )
2610  {
2611  // Call pre-message hook
2612  this->StopPollDirectory_preMsgHook(opCode,cmdSeq);
2613 
2614  // Defer deserializing arguments to the message dispatcher
2615  // to avoid deserializing and reserializing just for IPC
2616  ComponentIpcSerializableBuffer msg;
2618 
2619  // Serialize for IPC
2620  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_STOPPOLLDIRECTORY));
2621  FW_ASSERT (
2622  _status == Fw::FW_SERIALIZE_OK,
2623  static_cast<FwAssertArgType>(_status)
2624  );
2625 
2626  // Fake port number to make message dequeue work
2627  FwIndexType port = 0;
2628 
2629  _status = msg.serializeFrom(port);
2630  FW_ASSERT (
2631  _status == Fw::FW_SERIALIZE_OK,
2632  static_cast<FwAssertArgType>(_status)
2633  );
2634 
2635  _status = msg.serializeFrom(opCode);
2636  FW_ASSERT (
2637  _status == Fw::FW_SERIALIZE_OK,
2638  static_cast<FwAssertArgType>(_status)
2639  );
2640 
2641  _status = msg.serializeFrom(cmdSeq);
2642  FW_ASSERT (
2643  _status == Fw::FW_SERIALIZE_OK,
2644  static_cast<FwAssertArgType>(_status)
2645  );
2646 
2647  _status = msg.serializeFrom(args);
2648  FW_ASSERT (
2649  _status == Fw::FW_SERIALIZE_OK,
2650  static_cast<FwAssertArgType>(_status)
2651  );
2652 
2653  // Send message
2655  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2656 
2657  FW_ASSERT(
2658  qStatus == Os::Queue::OP_OK,
2659  static_cast<FwAssertArgType>(qStatus)
2660  );
2661  }
2662 
2665  FwOpcodeType opCode,
2666  U32 cmdSeq,
2667  Fw::CmdArgBuffer& args
2668  )
2669  {
2670  // Call pre-message hook
2671  this->SetChannelFlow_preMsgHook(opCode,cmdSeq);
2672 
2673  // Defer deserializing arguments to the message dispatcher
2674  // to avoid deserializing and reserializing just for IPC
2675  ComponentIpcSerializableBuffer msg;
2677 
2678  // Serialize for IPC
2679  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SETCHANNELFLOW));
2680  FW_ASSERT (
2681  _status == Fw::FW_SERIALIZE_OK,
2682  static_cast<FwAssertArgType>(_status)
2683  );
2684 
2685  // Fake port number to make message dequeue work
2686  FwIndexType port = 0;
2687 
2688  _status = msg.serializeFrom(port);
2689  FW_ASSERT (
2690  _status == Fw::FW_SERIALIZE_OK,
2691  static_cast<FwAssertArgType>(_status)
2692  );
2693 
2694  _status = msg.serializeFrom(opCode);
2695  FW_ASSERT (
2696  _status == Fw::FW_SERIALIZE_OK,
2697  static_cast<FwAssertArgType>(_status)
2698  );
2699 
2700  _status = msg.serializeFrom(cmdSeq);
2701  FW_ASSERT (
2702  _status == Fw::FW_SERIALIZE_OK,
2703  static_cast<FwAssertArgType>(_status)
2704  );
2705 
2706  _status = msg.serializeFrom(args);
2707  FW_ASSERT (
2708  _status == Fw::FW_SERIALIZE_OK,
2709  static_cast<FwAssertArgType>(_status)
2710  );
2711 
2712  // Send message
2714  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2715 
2716  FW_ASSERT(
2717  qStatus == Os::Queue::OP_OK,
2718  static_cast<FwAssertArgType>(qStatus)
2719  );
2720  }
2721 
2724  FwOpcodeType opCode,
2725  U32 cmdSeq,
2726  Fw::CmdArgBuffer& args
2727  )
2728  {
2729  // Call pre-message hook
2730  this->SuspendResumeTransaction_preMsgHook(opCode,cmdSeq);
2731 
2732  // Defer deserializing arguments to the message dispatcher
2733  // to avoid deserializing and reserializing just for IPC
2734  ComponentIpcSerializableBuffer msg;
2736 
2737  // Serialize for IPC
2738  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SUSPENDRESUMETRANSACTION));
2739  FW_ASSERT (
2740  _status == Fw::FW_SERIALIZE_OK,
2741  static_cast<FwAssertArgType>(_status)
2742  );
2743 
2744  // Fake port number to make message dequeue work
2745  FwIndexType port = 0;
2746 
2747  _status = msg.serializeFrom(port);
2748  FW_ASSERT (
2749  _status == Fw::FW_SERIALIZE_OK,
2750  static_cast<FwAssertArgType>(_status)
2751  );
2752 
2753  _status = msg.serializeFrom(opCode);
2754  FW_ASSERT (
2755  _status == Fw::FW_SERIALIZE_OK,
2756  static_cast<FwAssertArgType>(_status)
2757  );
2758 
2759  _status = msg.serializeFrom(cmdSeq);
2760  FW_ASSERT (
2761  _status == Fw::FW_SERIALIZE_OK,
2762  static_cast<FwAssertArgType>(_status)
2763  );
2764 
2765  _status = msg.serializeFrom(args);
2766  FW_ASSERT (
2767  _status == Fw::FW_SERIALIZE_OK,
2768  static_cast<FwAssertArgType>(_status)
2769  );
2770 
2771  // Send message
2773  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2774 
2775  FW_ASSERT(
2776  qStatus == Os::Queue::OP_OK,
2777  static_cast<FwAssertArgType>(qStatus)
2778  );
2779  }
2780 
2783  FwOpcodeType opCode,
2784  U32 cmdSeq,
2785  Fw::CmdArgBuffer& args
2786  )
2787  {
2788  // Call pre-message hook
2789  this->CancelTransaction_preMsgHook(opCode,cmdSeq);
2790 
2791  // Defer deserializing arguments to the message dispatcher
2792  // to avoid deserializing and reserializing just for IPC
2793  ComponentIpcSerializableBuffer msg;
2795 
2796  // Serialize for IPC
2797  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CANCELTRANSACTION));
2798  FW_ASSERT (
2799  _status == Fw::FW_SERIALIZE_OK,
2800  static_cast<FwAssertArgType>(_status)
2801  );
2802 
2803  // Fake port number to make message dequeue work
2804  FwIndexType port = 0;
2805 
2806  _status = msg.serializeFrom(port);
2807  FW_ASSERT (
2808  _status == Fw::FW_SERIALIZE_OK,
2809  static_cast<FwAssertArgType>(_status)
2810  );
2811 
2812  _status = msg.serializeFrom(opCode);
2813  FW_ASSERT (
2814  _status == Fw::FW_SERIALIZE_OK,
2815  static_cast<FwAssertArgType>(_status)
2816  );
2817 
2818  _status = msg.serializeFrom(cmdSeq);
2819  FW_ASSERT (
2820  _status == Fw::FW_SERIALIZE_OK,
2821  static_cast<FwAssertArgType>(_status)
2822  );
2823 
2824  _status = msg.serializeFrom(args);
2825  FW_ASSERT (
2826  _status == Fw::FW_SERIALIZE_OK,
2827  static_cast<FwAssertArgType>(_status)
2828  );
2829 
2830  // Send message
2832  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2833 
2834  FW_ASSERT(
2835  qStatus == Os::Queue::OP_OK,
2836  static_cast<FwAssertArgType>(qStatus)
2837  );
2838  }
2839 
2842  FwOpcodeType opCode,
2843  U32 cmdSeq,
2844  Fw::CmdArgBuffer& args
2845  )
2846  {
2847  // Call pre-message hook
2848  this->AbandonTransaction_preMsgHook(opCode,cmdSeq);
2849 
2850  // Defer deserializing arguments to the message dispatcher
2851  // to avoid deserializing and reserializing just for IPC
2852  ComponentIpcSerializableBuffer msg;
2854 
2855  // Serialize for IPC
2856  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_ABANDONTRANSACTION));
2857  FW_ASSERT (
2858  _status == Fw::FW_SERIALIZE_OK,
2859  static_cast<FwAssertArgType>(_status)
2860  );
2861 
2862  // Fake port number to make message dequeue work
2863  FwIndexType port = 0;
2864 
2865  _status = msg.serializeFrom(port);
2866  FW_ASSERT (
2867  _status == Fw::FW_SERIALIZE_OK,
2868  static_cast<FwAssertArgType>(_status)
2869  );
2870 
2871  _status = msg.serializeFrom(opCode);
2872  FW_ASSERT (
2873  _status == Fw::FW_SERIALIZE_OK,
2874  static_cast<FwAssertArgType>(_status)
2875  );
2876 
2877  _status = msg.serializeFrom(cmdSeq);
2878  FW_ASSERT (
2879  _status == Fw::FW_SERIALIZE_OK,
2880  static_cast<FwAssertArgType>(_status)
2881  );
2882 
2883  _status = msg.serializeFrom(args);
2884  FW_ASSERT (
2885  _status == Fw::FW_SERIALIZE_OK,
2886  static_cast<FwAssertArgType>(_status)
2887  );
2888 
2889  // Send message
2891  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2892 
2893  FW_ASSERT(
2894  qStatus == Os::Queue::OP_OK,
2895  static_cast<FwAssertArgType>(qStatus)
2896  );
2897  }
2898 
2901  FwOpcodeType opCode,
2902  U32 cmdSeq,
2903  Fw::CmdArgBuffer& args
2904  )
2905  {
2906  // Call pre-message hook
2907  this->ResetCounters_preMsgHook(opCode,cmdSeq);
2908 
2909  // Defer deserializing arguments to the message dispatcher
2910  // to avoid deserializing and reserializing just for IPC
2911  ComponentIpcSerializableBuffer msg;
2913 
2914  // Serialize for IPC
2915  _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_RESETCOUNTERS));
2916  FW_ASSERT (
2917  _status == Fw::FW_SERIALIZE_OK,
2918  static_cast<FwAssertArgType>(_status)
2919  );
2920 
2921  // Fake port number to make message dequeue work
2922  FwIndexType port = 0;
2923 
2924  _status = msg.serializeFrom(port);
2925  FW_ASSERT (
2926  _status == Fw::FW_SERIALIZE_OK,
2927  static_cast<FwAssertArgType>(_status)
2928  );
2929 
2930  _status = msg.serializeFrom(opCode);
2931  FW_ASSERT (
2932  _status == Fw::FW_SERIALIZE_OK,
2933  static_cast<FwAssertArgType>(_status)
2934  );
2935 
2936  _status = msg.serializeFrom(cmdSeq);
2937  FW_ASSERT (
2938  _status == Fw::FW_SERIALIZE_OK,
2939  static_cast<FwAssertArgType>(_status)
2940  );
2941 
2942  _status = msg.serializeFrom(args);
2943  FW_ASSERT (
2944  _status == Fw::FW_SERIALIZE_OK,
2945  static_cast<FwAssertArgType>(_status)
2946  );
2947 
2948  // Send message
2950  Os::Queue::Status qStatus = this->m_queue.send(msg, 0, _block);
2951 
2952  FW_ASSERT(
2953  qStatus == Os::Queue::OP_OK,
2954  static_cast<FwAssertArgType>(qStatus)
2955  );
2956  }
2957 
2958  // ----------------------------------------------------------------------
2959  // Pre-message hooks for async commands
2960  //
2961  // Each of these functions is invoked just before processing the
2962  // corresponding command. By default they do nothing. You can
2963  // override them to provide specific pre-command behavior.
2964  // ----------------------------------------------------------------------
2965 
2968  FwOpcodeType opCode,
2969  U32 cmdSeq
2970  )
2971  {
2972  // Defaults to no-op; can be overridden
2973  (void) opCode;
2974  (void) cmdSeq;
2975  }
2976 
2979  FwOpcodeType opCode,
2980  U32 cmdSeq
2981  )
2982  {
2983  // Defaults to no-op; can be overridden
2984  (void) opCode;
2985  (void) cmdSeq;
2986  }
2987 
2990  FwOpcodeType opCode,
2991  U32 cmdSeq
2992  )
2993  {
2994  // Defaults to no-op; can be overridden
2995  (void) opCode;
2996  (void) cmdSeq;
2997  }
2998 
3001  FwOpcodeType opCode,
3002  U32 cmdSeq
3003  )
3004  {
3005  // Defaults to no-op; can be overridden
3006  (void) opCode;
3007  (void) cmdSeq;
3008  }
3009 
3012  FwOpcodeType opCode,
3013  U32 cmdSeq
3014  )
3015  {
3016  // Defaults to no-op; can be overridden
3017  (void) opCode;
3018  (void) cmdSeq;
3019  }
3020 
3023  FwOpcodeType opCode,
3024  U32 cmdSeq
3025  )
3026  {
3027  // Defaults to no-op; can be overridden
3028  (void) opCode;
3029  (void) cmdSeq;
3030  }
3031 
3034  FwOpcodeType opCode,
3035  U32 cmdSeq
3036  )
3037  {
3038  // Defaults to no-op; can be overridden
3039  (void) opCode;
3040  (void) cmdSeq;
3041  }
3042 
3045  FwOpcodeType opCode,
3046  U32 cmdSeq
3047  )
3048  {
3049  // Defaults to no-op; can be overridden
3050  (void) opCode;
3051  (void) cmdSeq;
3052  }
3053 
3056  FwOpcodeType opCode,
3057  U32 cmdSeq
3058  )
3059  {
3060  // Defaults to no-op; can be overridden
3061  (void) opCode;
3062  (void) cmdSeq;
3063  }
3064 
3065  // ----------------------------------------------------------------------
3066  // Event logging functions
3067  // ----------------------------------------------------------------------
3068 
3071  {
3072  // Get the time
3073  Fw::Time _logTime;
3074  if (this->isConnected_timeCaller_OutputPort(0)) {
3075  this->timeCaller_out(0, _logTime);
3076  }
3077 
3078  const FwEventIdType _id = this->getIdBase() + EVENTID_BUFFERSEXHAUSTED;
3079 
3080  // Emit the event on the log port
3081  if (this->isConnected_logOut_OutputPort(0)) {
3082  Fw::LogBuffer _logBuff;
3083 
3084 #if FW_AMPCS_COMPATIBLE
3086  // Serialize the number of arguments
3087  _status = _logBuff.serializeFrom(static_cast<U8>(0));
3088  FW_ASSERT(
3089  _status == Fw::FW_SERIALIZE_OK,
3090  static_cast<FwAssertArgType>(_status)
3091  );
3092 #endif
3093 
3094  this->logOut_out(
3095  0,
3096  _id,
3097  _logTime,
3099  _logBuff
3100  );
3101  }
3102 
3103  // Emit the event on the text log port
3104 #if FW_ENABLE_TEXT_LOGGING
3105  if (this->isConnected_logTextOut_OutputPort(0)) {
3106 #if FW_OBJECT_NAMES == 1
3107  const char* _formatString =
3108  "(%s) %s: Unable to allocate a PDU buffer";
3109 #else
3110  const char* _formatString =
3111  "%s: Unable to allocate a PDU buffer";
3112 #endif
3113 
3114  Fw::TextLogString _logString;
3115  (void) _logString.format(
3116  _formatString,
3117 #if FW_OBJECT_NAMES == 1
3118  this->m_objName.toChar(),
3119 #endif
3120  "BuffersExhausted "
3121  );
3122 
3123  this->logTextOut_out(
3124  0,
3125  _id,
3126  _logTime,
3128  _logString
3129  );
3130  }
3131 #endif
3132  }
3133 
3136  U8 channelId,
3137  U8 maxChannelId
3138  ) const
3139  {
3140  // Get the time
3141  Fw::Time _logTime;
3142  if (this->isConnected_timeCaller_OutputPort(0)) {
3143  this->timeCaller_out(0, _logTime);
3144  }
3145 
3146  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDCHANNEL;
3147 
3148  // Emit the event on the log port
3149  if (this->isConnected_logOut_OutputPort(0)) {
3150  Fw::LogBuffer _logBuff;
3152 
3153 #if FW_AMPCS_COMPATIBLE
3154  // Serialize the number of arguments
3155  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3156  FW_ASSERT(
3157  _status == Fw::FW_SERIALIZE_OK,
3158  static_cast<FwAssertArgType>(_status)
3159  );
3160 #endif
3161 
3162 #if FW_AMPCS_COMPATIBLE
3163  // Serialize the argument size
3164  _status = _logBuff.serializeFrom(
3165  static_cast<U8>(sizeof(U8))
3166  );
3167  FW_ASSERT(
3168  _status == Fw::FW_SERIALIZE_OK,
3169  static_cast<FwAssertArgType>(_status)
3170  );
3171 #endif
3172  _status = _logBuff.serializeFrom(channelId);
3173  FW_ASSERT(
3174  _status == Fw::FW_SERIALIZE_OK,
3175  static_cast<FwAssertArgType>(_status)
3176  );
3177 
3178 #if FW_AMPCS_COMPATIBLE
3179  // Serialize the argument size
3180  _status = _logBuff.serializeFrom(
3181  static_cast<U8>(sizeof(U8))
3182  );
3183  FW_ASSERT(
3184  _status == Fw::FW_SERIALIZE_OK,
3185  static_cast<FwAssertArgType>(_status)
3186  );
3187 #endif
3188  _status = _logBuff.serializeFrom(maxChannelId);
3189  FW_ASSERT(
3190  _status == Fw::FW_SERIALIZE_OK,
3191  static_cast<FwAssertArgType>(_status)
3192  );
3193 
3194  this->logOut_out(
3195  0,
3196  _id,
3197  _logTime,
3199  _logBuff
3200  );
3201  }
3202 
3203  // Emit the event on the text log port
3204 #if FW_ENABLE_TEXT_LOGGING
3205  if (this->isConnected_logTextOut_OutputPort(0)) {
3206 #if FW_OBJECT_NAMES == 1
3207  const char* _formatString =
3208  "(%s) %s: Invalid channel ID %" PRIu8 ", maximum channel ID is %" PRIu8 "";
3209 #else
3210  const char* _formatString =
3211  "%s: Invalid channel ID %" PRIu8 ", maximum channel ID is %" PRIu8 "";
3212 #endif
3213 
3214  Fw::TextLogString _logString;
3215  (void) _logString.format(
3216  _formatString,
3217 #if FW_OBJECT_NAMES == 1
3218  this->m_objName.toChar(),
3219 #endif
3220  "InvalidChannel ",
3221  channelId,
3222  maxChannelId
3223  );
3224 
3225  this->logTextOut_out(
3226  0,
3227  _id,
3228  _logTime,
3230  _logString
3231  );
3232  }
3233 #endif
3234  }
3235 
3238  const Fw::StringBase& sourceFileName,
3239  U32 transactionSeq
3240  ) const
3241  {
3242  // Get the time
3243  Fw::Time _logTime;
3244  if (this->isConnected_timeCaller_OutputPort(0)) {
3245  this->timeCaller_out(0, _logTime);
3246  }
3247 
3248  const FwEventIdType _id = this->getIdBase() + EVENTID_TXFILEQUEUED;
3249 
3250  // Emit the event on the log port
3251  if (this->isConnected_logOut_OutputPort(0)) {
3252  Fw::LogBuffer _logBuff;
3254 
3255 #if FW_AMPCS_COMPATIBLE
3256  // Serialize the number of arguments
3257  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3258  FW_ASSERT(
3259  _status == Fw::FW_SERIALIZE_OK,
3260  static_cast<FwAssertArgType>(_status)
3261  );
3262 #endif
3263 
3264  _status = sourceFileName.serializeTo(
3265  _logBuff,
3266  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3267  );
3268  FW_ASSERT(
3269  _status == Fw::FW_SERIALIZE_OK,
3270  static_cast<FwAssertArgType>(_status)
3271  );
3272 
3273 #if FW_AMPCS_COMPATIBLE
3274  // Serialize the argument size
3275  _status = _logBuff.serializeFrom(
3276  static_cast<U8>(sizeof(U32))
3277  );
3278  FW_ASSERT(
3279  _status == Fw::FW_SERIALIZE_OK,
3280  static_cast<FwAssertArgType>(_status)
3281  );
3282 #endif
3283  _status = _logBuff.serializeFrom(transactionSeq);
3284  FW_ASSERT(
3285  _status == Fw::FW_SERIALIZE_OK,
3286  static_cast<FwAssertArgType>(_status)
3287  );
3288 
3289  this->logOut_out(
3290  0,
3291  _id,
3292  _logTime,
3294  _logBuff
3295  );
3296  }
3297 
3298  // Emit the event on the text log port
3299 #if FW_ENABLE_TEXT_LOGGING
3300  if (this->isConnected_logTextOut_OutputPort(0)) {
3301 #if FW_OBJECT_NAMES == 1
3302  const char* _formatString =
3303  "(%s) %s: TX file queued for %s (transaction %" PRIu32 ")";
3304 #else
3305  const char* _formatString =
3306  "%s: TX file queued for %s (transaction %" PRIu32 ")";
3307 #endif
3308 
3309  Fw::TextLogString _logString;
3310  (void) _logString.format(
3311  _formatString,
3312 #if FW_OBJECT_NAMES == 1
3313  this->m_objName.toChar(),
3314 #endif
3315  "TxFileQueued ",
3316  sourceFileName.toChar(),
3317  transactionSeq
3318  );
3319 
3320  this->logTextOut_out(
3321  0,
3322  _id,
3323  _logTime,
3325  _logString
3326  );
3327  }
3328 #endif
3329  }
3330 
3333  U32 offset,
3334  U32 length
3335  ) const
3336  {
3337  // Get the time
3338  Fw::Time _logTime;
3339  if (this->isConnected_timeCaller_OutputPort(0)) {
3340  this->timeCaller_out(0, _logTime);
3341  }
3342 
3344 
3345  // Emit the event on the log port
3346  if (this->isConnected_logOut_OutputPort(0)) {
3347  Fw::LogBuffer _logBuff;
3349 
3350 #if FW_AMPCS_COMPATIBLE
3351  // Serialize the number of arguments
3352  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3353  FW_ASSERT(
3354  _status == Fw::FW_SERIALIZE_OK,
3355  static_cast<FwAssertArgType>(_status)
3356  );
3357 #endif
3358 
3359 #if FW_AMPCS_COMPATIBLE
3360  // Serialize the argument size
3361  _status = _logBuff.serializeFrom(
3362  static_cast<U8>(sizeof(U32))
3363  );
3364  FW_ASSERT(
3365  _status == Fw::FW_SERIALIZE_OK,
3366  static_cast<FwAssertArgType>(_status)
3367  );
3368 #endif
3369  _status = _logBuff.serializeFrom(offset);
3370  FW_ASSERT(
3371  _status == Fw::FW_SERIALIZE_OK,
3372  static_cast<FwAssertArgType>(_status)
3373  );
3374 
3375 #if FW_AMPCS_COMPATIBLE
3376  // Serialize the argument size
3377  _status = _logBuff.serializeFrom(
3378  static_cast<U8>(sizeof(U32))
3379  );
3380  FW_ASSERT(
3381  _status == Fw::FW_SERIALIZE_OK,
3382  static_cast<FwAssertArgType>(_status)
3383  );
3384 #endif
3385  _status = _logBuff.serializeFrom(length);
3386  FW_ASSERT(
3387  _status == Fw::FW_SERIALIZE_OK,
3388  static_cast<FwAssertArgType>(_status)
3389  );
3390 
3391  this->logOut_out(
3392  0,
3393  _id,
3394  _logTime,
3396  _logBuff
3397  );
3398  }
3399 
3400  // Emit the event on the text log port
3401 #if FW_ENABLE_TEXT_LOGGING
3402  if (this->isConnected_logTextOut_OutputPort(0)) {
3403 #if FW_OBJECT_NAMES == 1
3404  const char* _formatString =
3405  "(%s) %s: Invalid send file port request with offset %" PRIu32 ", length %" PRIu32 "";
3406 #else
3407  const char* _formatString =
3408  "%s: Invalid send file port request with offset %" PRIu32 ", length %" PRIu32 "";
3409 #endif
3410 
3411  Fw::TextLogString _logString;
3412  (void) _logString.format(
3413  _formatString,
3414 #if FW_OBJECT_NAMES == 1
3415  this->m_objName.toChar(),
3416 #endif
3417  "UnsupportedSendFileArguments ",
3418  offset,
3419  length
3420  );
3421 
3422  this->logTextOut_out(
3423  0,
3424  _id,
3425  _logTime,
3427  _logString
3428  );
3429  }
3430 #endif
3431  }
3432 
3435  {
3436  // Get the time
3437  Fw::Time _logTime;
3438  if (this->isConnected_timeCaller_OutputPort(0)) {
3439  this->timeCaller_out(0, _logTime);
3440  }
3441 
3443 
3444  // Emit the event on the log port
3445  if (this->isConnected_logOut_OutputPort(0)) {
3446  Fw::LogBuffer _logBuff;
3448 
3449 #if FW_AMPCS_COMPATIBLE
3450  // Serialize the number of arguments
3451  _status = _logBuff.serializeFrom(static_cast<U8>(1));
3452  FW_ASSERT(
3453  _status == Fw::FW_SERIALIZE_OK,
3454  static_cast<FwAssertArgType>(_status)
3455  );
3456 #endif
3457 
3458  _status = sourceFileName.serializeTo(
3459  _logBuff,
3460  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3461  );
3462  FW_ASSERT(
3463  _status == Fw::FW_SERIALIZE_OK,
3464  static_cast<FwAssertArgType>(_status)
3465  );
3466 
3467  this->logOut_out(
3468  0,
3469  _id,
3470  _logTime,
3472  _logBuff
3473  );
3474  }
3475 
3476  // Emit the event on the text log port
3477 #if FW_ENABLE_TEXT_LOGGING
3478  if (this->isConnected_logTextOut_OutputPort(0)) {
3479 #if FW_OBJECT_NAMES == 1
3480  const char* _formatString =
3481  "(%s) %s: Failed to initiate file send transfer for %s";
3482 #else
3483  const char* _formatString =
3484  "%s: Failed to initiate file send transfer for %s";
3485 #endif
3486 
3487  Fw::TextLogString _logString;
3488  (void) _logString.format(
3489  _formatString,
3490 #if FW_OBJECT_NAMES == 1
3491  this->m_objName.toChar(),
3492 #endif
3493  "SendFileInitiateFail ",
3494  sourceFileName.toChar()
3495  );
3496 
3497  this->logTextOut_out(
3498  0,
3499  _id,
3500  _logTime,
3502  _logString
3503  );
3504  }
3505 #endif
3506  }
3507 
3510  {
3511  // Get the time
3512  Fw::Time _logTime;
3513  if (this->isConnected_timeCaller_OutputPort(0)) {
3514  this->timeCaller_out(0, _logTime);
3515  }
3516 
3517  const FwEventIdType _id = this->getIdBase() + EVENTID_PLAYBACKINITIATED;
3518 
3519  // Emit the event on the log port
3520  if (this->isConnected_logOut_OutputPort(0)) {
3521  Fw::LogBuffer _logBuff;
3523 
3524 #if FW_AMPCS_COMPATIBLE
3525  // Serialize the number of arguments
3526  _status = _logBuff.serializeFrom(static_cast<U8>(1));
3527  FW_ASSERT(
3528  _status == Fw::FW_SERIALIZE_OK,
3529  static_cast<FwAssertArgType>(_status)
3530  );
3531 #endif
3532 
3533  _status = sourceDirectory.serializeTo(
3534  _logBuff,
3535  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3536  );
3537  FW_ASSERT(
3538  _status == Fw::FW_SERIALIZE_OK,
3539  static_cast<FwAssertArgType>(_status)
3540  );
3541 
3542  this->logOut_out(
3543  0,
3544  _id,
3545  _logTime,
3547  _logBuff
3548  );
3549  }
3550 
3551  // Emit the event on the text log port
3552 #if FW_ENABLE_TEXT_LOGGING
3553  if (this->isConnected_logTextOut_OutputPort(0)) {
3554 #if FW_OBJECT_NAMES == 1
3555  const char* _formatString =
3556  "(%s) %s: Successfully initiated directory playback for %s";
3557 #else
3558  const char* _formatString =
3559  "%s: Successfully initiated directory playback for %s";
3560 #endif
3561 
3562  Fw::TextLogString _logString;
3563  (void) _logString.format(
3564  _formatString,
3565 #if FW_OBJECT_NAMES == 1
3566  this->m_objName.toChar(),
3567 #endif
3568  "PlaybackInitiated ",
3569  sourceDirectory.toChar()
3570  );
3571 
3572  this->logTextOut_out(
3573  0,
3574  _id,
3575  _logTime,
3577  _logString
3578  );
3579  }
3580 #endif
3581  }
3582 
3585  const Fw::StringBase& sourceDirectory,
3586  U8 pollId
3587  ) const
3588  {
3589  // Get the time
3590  Fw::Time _logTime;
3591  if (this->isConnected_timeCaller_OutputPort(0)) {
3592  this->timeCaller_out(0, _logTime);
3593  }
3594 
3595  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRINITIATED;
3596 
3597  // Emit the event on the log port
3598  if (this->isConnected_logOut_OutputPort(0)) {
3599  Fw::LogBuffer _logBuff;
3601 
3602 #if FW_AMPCS_COMPATIBLE
3603  // Serialize the number of arguments
3604  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3605  FW_ASSERT(
3606  _status == Fw::FW_SERIALIZE_OK,
3607  static_cast<FwAssertArgType>(_status)
3608  );
3609 #endif
3610 
3611  _status = sourceDirectory.serializeTo(
3612  _logBuff,
3613  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
3614  );
3615  FW_ASSERT(
3616  _status == Fw::FW_SERIALIZE_OK,
3617  static_cast<FwAssertArgType>(_status)
3618  );
3619 
3620 #if FW_AMPCS_COMPATIBLE
3621  // Serialize the argument size
3622  _status = _logBuff.serializeFrom(
3623  static_cast<U8>(sizeof(U8))
3624  );
3625  FW_ASSERT(
3626  _status == Fw::FW_SERIALIZE_OK,
3627  static_cast<FwAssertArgType>(_status)
3628  );
3629 #endif
3630  _status = _logBuff.serializeFrom(pollId);
3631  FW_ASSERT(
3632  _status == Fw::FW_SERIALIZE_OK,
3633  static_cast<FwAssertArgType>(_status)
3634  );
3635 
3636  this->logOut_out(
3637  0,
3638  _id,
3639  _logTime,
3641  _logBuff
3642  );
3643  }
3644 
3645  // Emit the event on the text log port
3646 #if FW_ENABLE_TEXT_LOGGING
3647  if (this->isConnected_logTextOut_OutputPort(0)) {
3648 #if FW_OBJECT_NAMES == 1
3649  const char* _formatString =
3650  "(%s) %s: Successfully initiated directory poll for %s (index %" PRIu8 ")";
3651 #else
3652  const char* _formatString =
3653  "%s: Successfully initiated directory poll for %s (index %" PRIu8 ")";
3654 #endif
3655 
3656  Fw::TextLogString _logString;
3657  (void) _logString.format(
3658  _formatString,
3659 #if FW_OBJECT_NAMES == 1
3660  this->m_objName.toChar(),
3661 #endif
3662  "PollDirInitiated ",
3663  sourceDirectory.toChar(),
3664  pollId
3665  );
3666 
3667  this->logTextOut_out(
3668  0,
3669  _id,
3670  _logTime,
3672  _logString
3673  );
3674  }
3675 #endif
3676  }
3677 
3680  U8 channelId,
3681  U8 pollId
3682  ) const
3683  {
3684  // Get the time
3685  Fw::Time _logTime;
3686  if (this->isConnected_timeCaller_OutputPort(0)) {
3687  this->timeCaller_out(0, _logTime);
3688  }
3689 
3690  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRSTOPPED;
3691 
3692  // Emit the event on the log port
3693  if (this->isConnected_logOut_OutputPort(0)) {
3694  Fw::LogBuffer _logBuff;
3696 
3697 #if FW_AMPCS_COMPATIBLE
3698  // Serialize the number of arguments
3699  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3700  FW_ASSERT(
3701  _status == Fw::FW_SERIALIZE_OK,
3702  static_cast<FwAssertArgType>(_status)
3703  );
3704 #endif
3705 
3706 #if FW_AMPCS_COMPATIBLE
3707  // Serialize the argument size
3708  _status = _logBuff.serializeFrom(
3709  static_cast<U8>(sizeof(U8))
3710  );
3711  FW_ASSERT(
3712  _status == Fw::FW_SERIALIZE_OK,
3713  static_cast<FwAssertArgType>(_status)
3714  );
3715 #endif
3716  _status = _logBuff.serializeFrom(channelId);
3717  FW_ASSERT(
3718  _status == Fw::FW_SERIALIZE_OK,
3719  static_cast<FwAssertArgType>(_status)
3720  );
3721 
3722 #if FW_AMPCS_COMPATIBLE
3723  // Serialize the argument size
3724  _status = _logBuff.serializeFrom(
3725  static_cast<U8>(sizeof(U8))
3726  );
3727  FW_ASSERT(
3728  _status == Fw::FW_SERIALIZE_OK,
3729  static_cast<FwAssertArgType>(_status)
3730  );
3731 #endif
3732  _status = _logBuff.serializeFrom(pollId);
3733  FW_ASSERT(
3734  _status == Fw::FW_SERIALIZE_OK,
3735  static_cast<FwAssertArgType>(_status)
3736  );
3737 
3738  this->logOut_out(
3739  0,
3740  _id,
3741  _logTime,
3743  _logBuff
3744  );
3745  }
3746 
3747  // Emit the event on the text log port
3748 #if FW_ENABLE_TEXT_LOGGING
3749  if (this->isConnected_logTextOut_OutputPort(0)) {
3750 #if FW_OBJECT_NAMES == 1
3751  const char* _formatString =
3752  "(%s) %s: Successfully stopped directory poll for channel %" PRIu8 ", index %" PRIu8 "";
3753 #else
3754  const char* _formatString =
3755  "%s: Successfully stopped directory poll for channel %" PRIu8 ", index %" PRIu8 "";
3756 #endif
3757 
3758  Fw::TextLogString _logString;
3759  (void) _logString.format(
3760  _formatString,
3761 #if FW_OBJECT_NAMES == 1
3762  this->m_objName.toChar(),
3763 #endif
3764  "PollDirStopped ",
3765  channelId,
3766  pollId
3767  );
3768 
3769  this->logTextOut_out(
3770  0,
3771  _id,
3772  _logTime,
3774  _logString
3775  );
3776  }
3777 #endif
3778  }
3779 
3782  U8 channelId,
3783  U8 pollId
3784  ) const
3785  {
3786  // Get the time
3787  Fw::Time _logTime;
3788  if (this->isConnected_timeCaller_OutputPort(0)) {
3789  this->timeCaller_out(0, _logTime);
3790  }
3791 
3792  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRBUSY;
3793 
3794  // Emit the event on the log port
3795  if (this->isConnected_logOut_OutputPort(0)) {
3796  Fw::LogBuffer _logBuff;
3798 
3799 #if FW_AMPCS_COMPATIBLE
3800  // Serialize the number of arguments
3801  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3802  FW_ASSERT(
3803  _status == Fw::FW_SERIALIZE_OK,
3804  static_cast<FwAssertArgType>(_status)
3805  );
3806 #endif
3807 
3808 #if FW_AMPCS_COMPATIBLE
3809  // Serialize the argument size
3810  _status = _logBuff.serializeFrom(
3811  static_cast<U8>(sizeof(U8))
3812  );
3813  FW_ASSERT(
3814  _status == Fw::FW_SERIALIZE_OK,
3815  static_cast<FwAssertArgType>(_status)
3816  );
3817 #endif
3818  _status = _logBuff.serializeFrom(channelId);
3819  FW_ASSERT(
3820  _status == Fw::FW_SERIALIZE_OK,
3821  static_cast<FwAssertArgType>(_status)
3822  );
3823 
3824 #if FW_AMPCS_COMPATIBLE
3825  // Serialize the argument size
3826  _status = _logBuff.serializeFrom(
3827  static_cast<U8>(sizeof(U8))
3828  );
3829  FW_ASSERT(
3830  _status == Fw::FW_SERIALIZE_OK,
3831  static_cast<FwAssertArgType>(_status)
3832  );
3833 #endif
3834  _status = _logBuff.serializeFrom(pollId);
3835  FW_ASSERT(
3836  _status == Fw::FW_SERIALIZE_OK,
3837  static_cast<FwAssertArgType>(_status)
3838  );
3839 
3840  this->logOut_out(
3841  0,
3842  _id,
3843  _logTime,
3845  _logBuff
3846  );
3847  }
3848 
3849  // Emit the event on the text log port
3850 #if FW_ENABLE_TEXT_LOGGING
3851  if (this->isConnected_logTextOut_OutputPort(0)) {
3852 #if FW_OBJECT_NAMES == 1
3853  const char* _formatString =
3854  "(%s) %s: Cannot start directory poll - channel %" PRIu8 " poll %" PRIu8 " already in use";
3855 #else
3856  const char* _formatString =
3857  "%s: Cannot start directory poll - channel %" PRIu8 " poll %" PRIu8 " already in use";
3858 #endif
3859 
3860  Fw::TextLogString _logString;
3861  (void) _logString.format(
3862  _formatString,
3863 #if FW_OBJECT_NAMES == 1
3864  this->m_objName.toChar(),
3865 #endif
3866  "PollDirBusy ",
3867  channelId,
3868  pollId
3869  );
3870 
3871  this->logTextOut_out(
3872  0,
3873  _id,
3874  _logTime,
3876  _logString
3877  );
3878  }
3879 #endif
3880  }
3881 
3884  U8 channelId,
3885  U8 pollId
3886  ) const
3887  {
3888  // Get the time
3889  Fw::Time _logTime;
3890  if (this->isConnected_timeCaller_OutputPort(0)) {
3891  this->timeCaller_out(0, _logTime);
3892  }
3893 
3894  const FwEventIdType _id = this->getIdBase() + EVENTID_POLLDIRNOTACTIVE;
3895 
3896  // Emit the event on the log port
3897  if (this->isConnected_logOut_OutputPort(0)) {
3898  Fw::LogBuffer _logBuff;
3900 
3901 #if FW_AMPCS_COMPATIBLE
3902  // Serialize the number of arguments
3903  _status = _logBuff.serializeFrom(static_cast<U8>(2));
3904  FW_ASSERT(
3905  _status == Fw::FW_SERIALIZE_OK,
3906  static_cast<FwAssertArgType>(_status)
3907  );
3908 #endif
3909 
3910 #if FW_AMPCS_COMPATIBLE
3911  // Serialize the argument size
3912  _status = _logBuff.serializeFrom(
3913  static_cast<U8>(sizeof(U8))
3914  );
3915  FW_ASSERT(
3916  _status == Fw::FW_SERIALIZE_OK,
3917  static_cast<FwAssertArgType>(_status)
3918  );
3919 #endif
3920  _status = _logBuff.serializeFrom(channelId);
3921  FW_ASSERT(
3922  _status == Fw::FW_SERIALIZE_OK,
3923  static_cast<FwAssertArgType>(_status)
3924  );
3925 
3926 #if FW_AMPCS_COMPATIBLE
3927  // Serialize the argument size
3928  _status = _logBuff.serializeFrom(
3929  static_cast<U8>(sizeof(U8))
3930  );
3931  FW_ASSERT(
3932  _status == Fw::FW_SERIALIZE_OK,
3933  static_cast<FwAssertArgType>(_status)
3934  );
3935 #endif
3936  _status = _logBuff.serializeFrom(pollId);
3937  FW_ASSERT(
3938  _status == Fw::FW_SERIALIZE_OK,
3939  static_cast<FwAssertArgType>(_status)
3940  );
3941 
3942  this->logOut_out(
3943  0,
3944  _id,
3945  _logTime,
3947  _logBuff
3948  );
3949  }
3950 
3951  // Emit the event on the text log port
3952 #if FW_ENABLE_TEXT_LOGGING
3953  if (this->isConnected_logTextOut_OutputPort(0)) {
3954 #if FW_OBJECT_NAMES == 1
3955  const char* _formatString =
3956  "(%s) %s: Cannot stop directory poll - channel %" PRIu8 " poll %" PRIu8 " is not active";
3957 #else
3958  const char* _formatString =
3959  "%s: Cannot stop directory poll - channel %" PRIu8 " poll %" PRIu8 " is not active";
3960 #endif
3961 
3962  Fw::TextLogString _logString;
3963  (void) _logString.format(
3964  _formatString,
3965 #if FW_OBJECT_NAMES == 1
3966  this->m_objName.toChar(),
3967 #endif
3968  "PollDirNotActive ",
3969  channelId,
3970  pollId
3971  );
3972 
3973  this->logTextOut_out(
3974  0,
3975  _id,
3976  _logTime,
3978  _logString
3979  );
3980  }
3981 #endif
3982  }
3983 
3986  U8 channelId,
3987  const Svc::Ccsds::Cfdp::Flow& flowState
3988  ) const
3989  {
3990  // Get the time
3991  Fw::Time _logTime;
3992  if (this->isConnected_timeCaller_OutputPort(0)) {
3993  this->timeCaller_out(0, _logTime);
3994  }
3995 
3996  const FwEventIdType _id = this->getIdBase() + EVENTID_SETFLOWSTATE;
3997 
3998  // Emit the event on the log port
3999  if (this->isConnected_logOut_OutputPort(0)) {
4000  Fw::LogBuffer _logBuff;
4002 
4003 #if FW_AMPCS_COMPATIBLE
4004  // Serialize the number of arguments
4005  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4006  FW_ASSERT(
4007  _status == Fw::FW_SERIALIZE_OK,
4008  static_cast<FwAssertArgType>(_status)
4009  );
4010 #endif
4011 
4012 #if FW_AMPCS_COMPATIBLE
4013  // Serialize the argument size
4014  _status = _logBuff.serializeFrom(
4015  static_cast<U8>(sizeof(U8))
4016  );
4017  FW_ASSERT(
4018  _status == Fw::FW_SERIALIZE_OK,
4019  static_cast<FwAssertArgType>(_status)
4020  );
4021 #endif
4022  _status = _logBuff.serializeFrom(channelId);
4023  FW_ASSERT(
4024  _status == Fw::FW_SERIALIZE_OK,
4025  static_cast<FwAssertArgType>(_status)
4026  );
4027 
4028 #if FW_AMPCS_COMPATIBLE
4029  // Serialize the argument size
4030  _status = _logBuff.serializeFrom(
4032  );
4033  FW_ASSERT(
4034  _status == Fw::FW_SERIALIZE_OK,
4035  static_cast<FwAssertArgType>(_status)
4036  );
4037 #endif
4038  _status = _logBuff.serializeFrom(flowState);
4039  FW_ASSERT(
4040  _status == Fw::FW_SERIALIZE_OK,
4041  static_cast<FwAssertArgType>(_status)
4042  );
4043 
4044  this->logOut_out(
4045  0,
4046  _id,
4047  _logTime,
4049  _logBuff
4050  );
4051  }
4052 
4053  // Emit the event on the text log port
4054 #if FW_ENABLE_TEXT_LOGGING
4055  if (this->isConnected_logTextOut_OutputPort(0)) {
4056 #if FW_OBJECT_NAMES == 1
4057  const char* _formatString =
4058  "(%s) %s: Set channel %" PRIu8 " to %s";
4059 #else
4060  const char* _formatString =
4061  "%s: Set channel %" PRIu8 " to %s";
4062 #endif
4063 
4064  Fw::String flowStateStr;
4065  flowState.toString(flowStateStr);
4066 
4067  Fw::TextLogString _logString;
4068  (void) _logString.format(
4069  _formatString,
4070 #if FW_OBJECT_NAMES == 1
4071  this->m_objName.toChar(),
4072 #endif
4073  "SetFlowState ",
4074  channelId,
4075  flowStateStr.toChar()
4076  );
4077 
4078  this->logTextOut_out(
4079  0,
4080  _id,
4081  _logTime,
4083  _logString
4084  );
4085  }
4086 #endif
4087  }
4088 
4091  U8 pollId,
4092  U8 maxPollId
4093  ) const
4094  {
4095  // Get the time
4096  Fw::Time _logTime;
4097  if (this->isConnected_timeCaller_OutputPort(0)) {
4098  this->timeCaller_out(0, _logTime);
4099  }
4100 
4101  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDCHANNELPOLL;
4102 
4103  // Emit the event on the log port
4104  if (this->isConnected_logOut_OutputPort(0)) {
4105  Fw::LogBuffer _logBuff;
4107 
4108 #if FW_AMPCS_COMPATIBLE
4109  // Serialize the number of arguments
4110  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4111  FW_ASSERT(
4112  _status == Fw::FW_SERIALIZE_OK,
4113  static_cast<FwAssertArgType>(_status)
4114  );
4115 #endif
4116 
4117 #if FW_AMPCS_COMPATIBLE
4118  // Serialize the argument size
4119  _status = _logBuff.serializeFrom(
4120  static_cast<U8>(sizeof(U8))
4121  );
4122  FW_ASSERT(
4123  _status == Fw::FW_SERIALIZE_OK,
4124  static_cast<FwAssertArgType>(_status)
4125  );
4126 #endif
4127  _status = _logBuff.serializeFrom(pollId);
4128  FW_ASSERT(
4129  _status == Fw::FW_SERIALIZE_OK,
4130  static_cast<FwAssertArgType>(_status)
4131  );
4132 
4133 #if FW_AMPCS_COMPATIBLE
4134  // Serialize the argument size
4135  _status = _logBuff.serializeFrom(
4136  static_cast<U8>(sizeof(U8))
4137  );
4138  FW_ASSERT(
4139  _status == Fw::FW_SERIALIZE_OK,
4140  static_cast<FwAssertArgType>(_status)
4141  );
4142 #endif
4143  _status = _logBuff.serializeFrom(maxPollId);
4144  FW_ASSERT(
4145  _status == Fw::FW_SERIALIZE_OK,
4146  static_cast<FwAssertArgType>(_status)
4147  );
4148 
4149  this->logOut_out(
4150  0,
4151  _id,
4152  _logTime,
4154  _logBuff
4155  );
4156  }
4157 
4158  // Emit the event on the text log port
4159 #if FW_ENABLE_TEXT_LOGGING
4160  if (this->isConnected_logTextOut_OutputPort(0)) {
4161 #if FW_OBJECT_NAMES == 1
4162  const char* _formatString =
4163  "(%s) %s: Invalid poll ID %" PRIu8 ", maximum poll ID is %" PRIu8 "";
4164 #else
4165  const char* _formatString =
4166  "%s: Invalid poll ID %" PRIu8 ", maximum poll ID is %" PRIu8 "";
4167 #endif
4168 
4169  Fw::TextLogString _logString;
4170  (void) _logString.format(
4171  _formatString,
4172 #if FW_OBJECT_NAMES == 1
4173  this->m_objName.toChar(),
4174 #endif
4175  "InvalidChannelPoll ",
4176  pollId,
4177  maxPollId
4178  );
4179 
4180  this->logTextOut_out(
4181  0,
4182  _id,
4183  _logTime,
4185  _logString
4186  );
4187  }
4188 #endif
4189  }
4190 
4193  {
4194  // Get the time
4195  Fw::Time _logTime;
4196  if (this->isConnected_timeCaller_OutputPort(0)) {
4197  this->timeCaller_out(0, _logTime);
4198  }
4199 
4200  const FwEventIdType _id = this->getIdBase() + EVENTID_INVALIDPOLLINTERVAL;
4201 
4202  // Emit the event on the log port
4203  if (this->isConnected_logOut_OutputPort(0)) {
4204  Fw::LogBuffer _logBuff;
4206 
4207 #if FW_AMPCS_COMPATIBLE
4208  // Serialize the number of arguments
4209  _status = _logBuff.serializeFrom(static_cast<U8>(1));
4210  FW_ASSERT(
4211  _status == Fw::FW_SERIALIZE_OK,
4212  static_cast<FwAssertArgType>(_status)
4213  );
4214 #endif
4215 
4216 #if FW_AMPCS_COMPATIBLE
4217  // Serialize the argument size
4218  _status = _logBuff.serializeFrom(
4219  static_cast<U8>(sizeof(U32))
4220  );
4221  FW_ASSERT(
4222  _status == Fw::FW_SERIALIZE_OK,
4223  static_cast<FwAssertArgType>(_status)
4224  );
4225 #endif
4226  _status = _logBuff.serializeFrom(interval);
4227  FW_ASSERT(
4228  _status == Fw::FW_SERIALIZE_OK,
4229  static_cast<FwAssertArgType>(_status)
4230  );
4231 
4232  this->logOut_out(
4233  0,
4234  _id,
4235  _logTime,
4237  _logBuff
4238  );
4239  }
4240 
4241  // Emit the event on the text log port
4242 #if FW_ENABLE_TEXT_LOGGING
4243  if (this->isConnected_logTextOut_OutputPort(0)) {
4244 #if FW_OBJECT_NAMES == 1
4245  const char* _formatString =
4246  "(%s) %s: Invalid poll interval %" PRIu32 " seconds, must be non-zero";
4247 #else
4248  const char* _formatString =
4249  "%s: Invalid poll interval %" PRIu32 " seconds, must be non-zero";
4250 #endif
4251 
4252  Fw::TextLogString _logString;
4253  (void) _logString.format(
4254  _formatString,
4255 #if FW_OBJECT_NAMES == 1
4256  this->m_objName.toChar(),
4257 #endif
4258  "InvalidPollInterval ",
4259  interval
4260  );
4261 
4262  this->logTextOut_out(
4263  0,
4264  _id,
4265  _logTime,
4267  _logString
4268  );
4269  }
4270 #endif
4271  }
4272 
4275  const Fw::StringBase& srcFile,
4276  const Fw::StringBase& moveDir,
4277  I32 status
4278  ) const
4279  {
4280  // Get the time
4281  Fw::Time _logTime;
4282  if (this->isConnected_timeCaller_OutputPort(0)) {
4283  this->timeCaller_out(0, _logTime);
4284  }
4285 
4286  const FwEventIdType _id = this->getIdBase() + EVENTID_FAILKEEPFILEMOVE;
4287 
4288  // Emit the event on the log port
4289  if (this->isConnected_logOut_OutputPort(0)) {
4290  Fw::LogBuffer _logBuff;
4292 
4293 #if FW_AMPCS_COMPATIBLE
4294  // Serialize the number of arguments
4295  _status = _logBuff.serializeFrom(static_cast<U8>(3));
4296  FW_ASSERT(
4297  _status == Fw::FW_SERIALIZE_OK,
4298  static_cast<FwAssertArgType>(_status)
4299  );
4300 #endif
4301 
4302  _status = srcFile.serializeTo(
4303  _logBuff,
4304  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4305  );
4306  FW_ASSERT(
4307  _status == Fw::FW_SERIALIZE_OK,
4308  static_cast<FwAssertArgType>(_status)
4309  );
4310 
4311  _status = moveDir.serializeTo(
4312  _logBuff,
4313  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4314  );
4315  FW_ASSERT(
4316  _status == Fw::FW_SERIALIZE_OK,
4317  static_cast<FwAssertArgType>(_status)
4318  );
4319 
4320 #if FW_AMPCS_COMPATIBLE
4321  // Serialize the argument size
4322  _status = _logBuff.serializeFrom(
4323  static_cast<U8>(sizeof(I32))
4324  );
4325  FW_ASSERT(
4326  _status == Fw::FW_SERIALIZE_OK,
4327  static_cast<FwAssertArgType>(_status)
4328  );
4329 #endif
4330  _status = _logBuff.serializeFrom(status);
4331  FW_ASSERT(
4332  _status == Fw::FW_SERIALIZE_OK,
4333  static_cast<FwAssertArgType>(_status)
4334  );
4335 
4336  this->logOut_out(
4337  0,
4338  _id,
4339  _logTime,
4341  _logBuff
4342  );
4343  }
4344 
4345  // Emit the event on the text log port
4346 #if FW_ENABLE_TEXT_LOGGING
4347  if (this->isConnected_logTextOut_OutputPort(0)) {
4348 #if FW_OBJECT_NAMES == 1
4349  const char* _formatString =
4350  "(%s) %s: Failed to move %s to %s error %" PRIi32 "";
4351 #else
4352  const char* _formatString =
4353  "%s: Failed to move %s to %s error %" PRIi32 "";
4354 #endif
4355 
4356  Fw::TextLogString _logString;
4357  (void) _logString.format(
4358  _formatString,
4359 #if FW_OBJECT_NAMES == 1
4360  this->m_objName.toChar(),
4361 #endif
4362  "FailKeepFileMove ",
4363  srcFile.toChar(),
4364  moveDir.toChar(),
4365  status
4366  );
4367 
4368  this->logTextOut_out(
4369  0,
4370  _id,
4371  _logTime,
4373  _logString
4374  );
4375  }
4376 #endif
4377  }
4378 
4381  const Fw::StringBase& srcFile,
4382  const Fw::StringBase& failDir,
4383  I32 status
4384  ) const
4385  {
4386  // Get the time
4387  Fw::Time _logTime;
4388  if (this->isConnected_timeCaller_OutputPort(0)) {
4389  this->timeCaller_out(0, _logTime);
4390  }
4391 
4392  const FwEventIdType _id = this->getIdBase() + EVENTID_FAILPOLLFILEMOVE;
4393 
4394  // Emit the event on the log port
4395  if (this->isConnected_logOut_OutputPort(0)) {
4396  Fw::LogBuffer _logBuff;
4398 
4399 #if FW_AMPCS_COMPATIBLE
4400  // Serialize the number of arguments
4401  _status = _logBuff.serializeFrom(static_cast<U8>(3));
4402  FW_ASSERT(
4403  _status == Fw::FW_SERIALIZE_OK,
4404  static_cast<FwAssertArgType>(_status)
4405  );
4406 #endif
4407 
4408  _status = srcFile.serializeTo(
4409  _logBuff,
4410  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4411  );
4412  FW_ASSERT(
4413  _status == Fw::FW_SERIALIZE_OK,
4414  static_cast<FwAssertArgType>(_status)
4415  );
4416 
4417  _status = failDir.serializeTo(
4418  _logBuff,
4419  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
4420  );
4421  FW_ASSERT(
4422  _status == Fw::FW_SERIALIZE_OK,
4423  static_cast<FwAssertArgType>(_status)
4424  );
4425 
4426 #if FW_AMPCS_COMPATIBLE
4427  // Serialize the argument size
4428  _status = _logBuff.serializeFrom(
4429  static_cast<U8>(sizeof(I32))
4430  );
4431  FW_ASSERT(
4432  _status == Fw::FW_SERIALIZE_OK,
4433  static_cast<FwAssertArgType>(_status)
4434  );
4435 #endif
4436  _status = _logBuff.serializeFrom(status);
4437  FW_ASSERT(
4438  _status == Fw::FW_SERIALIZE_OK,
4439  static_cast<FwAssertArgType>(_status)
4440  );
4441 
4442  this->logOut_out(
4443  0,
4444  _id,
4445  _logTime,
4447  _logBuff
4448  );
4449  }
4450 
4451  // Emit the event on the text log port
4452 #if FW_ENABLE_TEXT_LOGGING
4453  if (this->isConnected_logTextOut_OutputPort(0)) {
4454 #if FW_OBJECT_NAMES == 1
4455  const char* _formatString =
4456  "(%s) %s: Failed to move %s to %s error %" PRIi32 "";
4457 #else
4458  const char* _formatString =
4459  "%s: Failed to move %s to %s error %" PRIi32 "";
4460 #endif
4461 
4462  Fw::TextLogString _logString;
4463  (void) _logString.format(
4464  _formatString,
4465 #if FW_OBJECT_NAMES == 1
4466  this->m_objName.toChar(),
4467 #endif
4468  "FailPollFileMove ",
4469  srcFile.toChar(),
4470  failDir.toChar(),
4471  status
4472  );
4473 
4474  this->logTextOut_out(
4475  0,
4476  _id,
4477  _logTime,
4479  _logString
4480  );
4481  }
4482 #endif
4483  }
4484 
4487  U8 channelId,
4488  I32 status
4489  ) const
4490  {
4491  // Get the time
4492  Fw::Time _logTime;
4493  if (this->isConnected_timeCaller_OutputPort(0)) {
4494  this->timeCaller_out(0, _logTime);
4495  }
4496 
4498 
4499  // Emit the event on the log port
4500  if (this->isConnected_logOut_OutputPort(0)) {
4501  Fw::LogBuffer _logBuff;
4503 
4504 #if FW_AMPCS_COMPATIBLE
4505  // Serialize the number of arguments
4506  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4507  FW_ASSERT(
4508  _status == Fw::FW_SERIALIZE_OK,
4509  static_cast<FwAssertArgType>(_status)
4510  );
4511 #endif
4512 
4513 #if FW_AMPCS_COMPATIBLE
4514  // Serialize the argument size
4515  _status = _logBuff.serializeFrom(
4516  static_cast<U8>(sizeof(U8))
4517  );
4518  FW_ASSERT(
4519  _status == Fw::FW_SERIALIZE_OK,
4520  static_cast<FwAssertArgType>(_status)
4521  );
4522 #endif
4523  _status = _logBuff.serializeFrom(channelId);
4524  FW_ASSERT(
4525  _status == Fw::FW_SERIALIZE_OK,
4526  static_cast<FwAssertArgType>(_status)
4527  );
4528 
4529 #if FW_AMPCS_COMPATIBLE
4530  // Serialize the argument size
4531  _status = _logBuff.serializeFrom(
4532  static_cast<U8>(sizeof(I32))
4533  );
4534  FW_ASSERT(
4535  _status == Fw::FW_SERIALIZE_OK,
4536  static_cast<FwAssertArgType>(_status)
4537  );
4538 #endif
4539  _status = _logBuff.serializeFrom(status);
4540  FW_ASSERT(
4541  _status == Fw::FW_SERIALIZE_OK,
4542  static_cast<FwAssertArgType>(_status)
4543  );
4544 
4545  this->logOut_out(
4546  0,
4547  _id,
4548  _logTime,
4550  _logBuff
4551  );
4552  }
4553 
4554  // Emit the event on the text log port
4555 #if FW_ENABLE_TEXT_LOGGING
4556  if (this->isConnected_logTextOut_OutputPort(0)) {
4557 #if FW_OBJECT_NAMES == 1
4558  const char* _formatString =
4559  "(%s) %s: Failed to deserialize PDU header on channel %" PRIu8 ", status %" PRIi32 "";
4560 #else
4561  const char* _formatString =
4562  "%s: Failed to deserialize PDU header on channel %" PRIu8 ", status %" PRIi32 "";
4563 #endif
4564 
4565  Fw::TextLogString _logString;
4566  (void) _logString.format(
4567  _formatString,
4568 #if FW_OBJECT_NAMES == 1
4569  this->m_objName.toChar(),
4570 #endif
4571  "FailPduHeaderDeserialization ",
4572  channelId,
4573  status
4574  );
4575 
4576  this->logTextOut_out(
4577  0,
4578  _id,
4579  _logTime,
4581  _logString
4582  );
4583  }
4584 #endif
4585  }
4586 
4589  U8 channelId,
4590  const Svc::Ccsds::Cfdp::PduTypeEnum& pduType,
4591  I32 status
4592  ) const
4593  {
4594  // Get the time
4595  Fw::Time _logTime;
4596  if (this->isConnected_timeCaller_OutputPort(0)) {
4597  this->timeCaller_out(0, _logTime);
4598  }
4599 
4601 
4602  // Emit the event on the log port
4603  if (this->isConnected_logOut_OutputPort(0)) {
4604  Fw::LogBuffer _logBuff;
4606 
4607 #if FW_AMPCS_COMPATIBLE
4608  // Serialize the number of arguments
4609  _status = _logBuff.serializeFrom(static_cast<U8>(3));
4610  FW_ASSERT(
4611  _status == Fw::FW_SERIALIZE_OK,
4612  static_cast<FwAssertArgType>(_status)
4613  );
4614 #endif
4615 
4616 #if FW_AMPCS_COMPATIBLE
4617  // Serialize the argument size
4618  _status = _logBuff.serializeFrom(
4619  static_cast<U8>(sizeof(U8))
4620  );
4621  FW_ASSERT(
4622  _status == Fw::FW_SERIALIZE_OK,
4623  static_cast<FwAssertArgType>(_status)
4624  );
4625 #endif
4626  _status = _logBuff.serializeFrom(channelId);
4627  FW_ASSERT(
4628  _status == Fw::FW_SERIALIZE_OK,
4629  static_cast<FwAssertArgType>(_status)
4630  );
4631 
4632 #if FW_AMPCS_COMPATIBLE
4633  // Serialize the argument size
4634  _status = _logBuff.serializeFrom(
4636  );
4637  FW_ASSERT(
4638  _status == Fw::FW_SERIALIZE_OK,
4639  static_cast<FwAssertArgType>(_status)
4640  );
4641 #endif
4642  _status = _logBuff.serializeFrom(pduType);
4643  FW_ASSERT(
4644  _status == Fw::FW_SERIALIZE_OK,
4645  static_cast<FwAssertArgType>(_status)
4646  );
4647 
4648 #if FW_AMPCS_COMPATIBLE
4649  // Serialize the argument size
4650  _status = _logBuff.serializeFrom(
4651  static_cast<U8>(sizeof(I32))
4652  );
4653  FW_ASSERT(
4654  _status == Fw::FW_SERIALIZE_OK,
4655  static_cast<FwAssertArgType>(_status)
4656  );
4657 #endif
4658  _status = _logBuff.serializeFrom(status);
4659  FW_ASSERT(
4660  _status == Fw::FW_SERIALIZE_OK,
4661  static_cast<FwAssertArgType>(_status)
4662  );
4663 
4664  this->logOut_out(
4665  0,
4666  _id,
4667  _logTime,
4669  _logBuff
4670  );
4671  }
4672 
4673  // Emit the event on the text log port
4674 #if FW_ENABLE_TEXT_LOGGING
4675  if (this->isConnected_logTextOut_OutputPort(0)) {
4676 #if FW_OBJECT_NAMES == 1
4677  const char* _formatString =
4678  "(%s) %s: Failed to serialize %" PRIu8 " PDU on channel %s, status %" PRIi32 "";
4679 #else
4680  const char* _formatString =
4681  "%s: Failed to serialize %" PRIu8 " PDU on channel %s, status %" PRIi32 "";
4682 #endif
4683 
4684  Fw::String pduTypeStr;
4685  pduType.toString(pduTypeStr);
4686 
4687  Fw::TextLogString _logString;
4688  (void) _logString.format(
4689  _formatString,
4690 #if FW_OBJECT_NAMES == 1
4691  this->m_objName.toChar(),
4692 #endif
4693  "FailPduSerialization ",
4694  channelId,
4695  pduTypeStr.toChar(),
4696  status
4697  );
4698 
4699  this->logTextOut_out(
4700  0,
4701  _id,
4702  _logTime,
4704  _logString
4705  );
4706  }
4707 #endif
4708  }
4709 
4712  U8 channelId,
4713  I32 status
4714  ) const
4715  {
4716  // Get the time
4717  Fw::Time _logTime;
4718  if (this->isConnected_timeCaller_OutputPort(0)) {
4719  this->timeCaller_out(0, _logTime);
4720  }
4721 
4723 
4724  // Emit the event on the log port
4725  if (this->isConnected_logOut_OutputPort(0)) {
4726  Fw::LogBuffer _logBuff;
4728 
4729 #if FW_AMPCS_COMPATIBLE
4730  // Serialize the number of arguments
4731  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4732  FW_ASSERT(
4733  _status == Fw::FW_SERIALIZE_OK,
4734  static_cast<FwAssertArgType>(_status)
4735  );
4736 #endif
4737 
4738 #if FW_AMPCS_COMPATIBLE
4739  // Serialize the argument size
4740  _status = _logBuff.serializeFrom(
4741  static_cast<U8>(sizeof(U8))
4742  );
4743  FW_ASSERT(
4744  _status == Fw::FW_SERIALIZE_OK,
4745  static_cast<FwAssertArgType>(_status)
4746  );
4747 #endif
4748  _status = _logBuff.serializeFrom(channelId);
4749  FW_ASSERT(
4750  _status == Fw::FW_SERIALIZE_OK,
4751  static_cast<FwAssertArgType>(_status)
4752  );
4753 
4754 #if FW_AMPCS_COMPATIBLE
4755  // Serialize the argument size
4756  _status = _logBuff.serializeFrom(
4757  static_cast<U8>(sizeof(I32))
4758  );
4759  FW_ASSERT(
4760  _status == Fw::FW_SERIALIZE_OK,
4761  static_cast<FwAssertArgType>(_status)
4762  );
4763 #endif
4764  _status = _logBuff.serializeFrom(status);
4765  FW_ASSERT(
4766  _status == Fw::FW_SERIALIZE_OK,
4767  static_cast<FwAssertArgType>(_status)
4768  );
4769 
4770  this->logOut_out(
4771  0,
4772  _id,
4773  _logTime,
4775  _logBuff
4776  );
4777  }
4778 
4779  // Emit the event on the text log port
4780 #if FW_ENABLE_TEXT_LOGGING
4781  if (this->isConnected_logTextOut_OutputPort(0)) {
4782 #if FW_OBJECT_NAMES == 1
4783  const char* _formatString =
4784  "(%s) %s: Failed to deserialize Metadata PDU on channel %" PRIu8 ", status %" PRIi32 "";
4785 #else
4786  const char* _formatString =
4787  "%s: Failed to deserialize Metadata PDU on channel %" PRIu8 ", status %" PRIi32 "";
4788 #endif
4789 
4790  Fw::TextLogString _logString;
4791  (void) _logString.format(
4792  _formatString,
4793 #if FW_OBJECT_NAMES == 1
4794  this->m_objName.toChar(),
4795 #endif
4796  "FailMetadataPduDeserialization ",
4797  channelId,
4798  status
4799  );
4800 
4801  this->logTextOut_out(
4802  0,
4803  _id,
4804  _logTime,
4806  _logString
4807  );
4808  }
4809 #endif
4810  }
4811 
4814  U8 channelId,
4815  I32 status
4816  ) const
4817  {
4818  // Get the time
4819  Fw::Time _logTime;
4820  if (this->isConnected_timeCaller_OutputPort(0)) {
4821  this->timeCaller_out(0, _logTime);
4822  }
4823 
4825 
4826  // Emit the event on the log port
4827  if (this->isConnected_logOut_OutputPort(0)) {
4828  Fw::LogBuffer _logBuff;
4830 
4831 #if FW_AMPCS_COMPATIBLE
4832  // Serialize the number of arguments
4833  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4834  FW_ASSERT(
4835  _status == Fw::FW_SERIALIZE_OK,
4836  static_cast<FwAssertArgType>(_status)
4837  );
4838 #endif
4839 
4840 #if FW_AMPCS_COMPATIBLE
4841  // Serialize the argument size
4842  _status = _logBuff.serializeFrom(
4843  static_cast<U8>(sizeof(U8))
4844  );
4845  FW_ASSERT(
4846  _status == Fw::FW_SERIALIZE_OK,
4847  static_cast<FwAssertArgType>(_status)
4848  );
4849 #endif
4850  _status = _logBuff.serializeFrom(channelId);
4851  FW_ASSERT(
4852  _status == Fw::FW_SERIALIZE_OK,
4853  static_cast<FwAssertArgType>(_status)
4854  );
4855 
4856 #if FW_AMPCS_COMPATIBLE
4857  // Serialize the argument size
4858  _status = _logBuff.serializeFrom(
4859  static_cast<U8>(sizeof(I32))
4860  );
4861  FW_ASSERT(
4862  _status == Fw::FW_SERIALIZE_OK,
4863  static_cast<FwAssertArgType>(_status)
4864  );
4865 #endif
4866  _status = _logBuff.serializeFrom(status);
4867  FW_ASSERT(
4868  _status == Fw::FW_SERIALIZE_OK,
4869  static_cast<FwAssertArgType>(_status)
4870  );
4871 
4872  this->logOut_out(
4873  0,
4874  _id,
4875  _logTime,
4877  _logBuff
4878  );
4879  }
4880 
4881  // Emit the event on the text log port
4882 #if FW_ENABLE_TEXT_LOGGING
4883  if (this->isConnected_logTextOut_OutputPort(0)) {
4884 #if FW_OBJECT_NAMES == 1
4885  const char* _formatString =
4886  "(%s) %s: Failed to deserialize File Data PDU on channel %" PRIu8 ", status %" PRIi32 "";
4887 #else
4888  const char* _formatString =
4889  "%s: Failed to deserialize File Data PDU on channel %" PRIu8 ", status %" PRIi32 "";
4890 #endif
4891 
4892  Fw::TextLogString _logString;
4893  (void) _logString.format(
4894  _formatString,
4895 #if FW_OBJECT_NAMES == 1
4896  this->m_objName.toChar(),
4897 #endif
4898  "FailFileDataPduDeserialization ",
4899  channelId,
4900  status
4901  );
4902 
4903  this->logTextOut_out(
4904  0,
4905  _id,
4906  _logTime,
4908  _logString
4909  );
4910  }
4911 #endif
4912  }
4913 
4916  U8 channelId,
4917  I32 status
4918  ) const
4919  {
4920  // Get the time
4921  Fw::Time _logTime;
4922  if (this->isConnected_timeCaller_OutputPort(0)) {
4923  this->timeCaller_out(0, _logTime);
4924  }
4925 
4927 
4928  // Emit the event on the log port
4929  if (this->isConnected_logOut_OutputPort(0)) {
4930  Fw::LogBuffer _logBuff;
4932 
4933 #if FW_AMPCS_COMPATIBLE
4934  // Serialize the number of arguments
4935  _status = _logBuff.serializeFrom(static_cast<U8>(2));
4936  FW_ASSERT(
4937  _status == Fw::FW_SERIALIZE_OK,
4938  static_cast<FwAssertArgType>(_status)
4939  );
4940 #endif
4941 
4942 #if FW_AMPCS_COMPATIBLE
4943  // Serialize the argument size
4944  _status = _logBuff.serializeFrom(
4945  static_cast<U8>(sizeof(U8))
4946  );
4947  FW_ASSERT(
4948  _status == Fw::FW_SERIALIZE_OK,
4949  static_cast<FwAssertArgType>(_status)
4950  );
4951 #endif
4952  _status = _logBuff.serializeFrom(channelId);
4953  FW_ASSERT(
4954  _status == Fw::FW_SERIALIZE_OK,
4955  static_cast<FwAssertArgType>(_status)
4956  );
4957 
4958 #if FW_AMPCS_COMPATIBLE
4959  // Serialize the argument size
4960  _status = _logBuff.serializeFrom(
4961  static_cast<U8>(sizeof(I32))
4962  );
4963  FW_ASSERT(
4964  _status == Fw::FW_SERIALIZE_OK,
4965  static_cast<FwAssertArgType>(_status)
4966  );
4967 #endif
4968  _status = _logBuff.serializeFrom(status);
4969  FW_ASSERT(
4970  _status == Fw::FW_SERIALIZE_OK,
4971  static_cast<FwAssertArgType>(_status)
4972  );
4973 
4974  this->logOut_out(
4975  0,
4976  _id,
4977  _logTime,
4979  _logBuff
4980  );
4981  }
4982 
4983  // Emit the event on the text log port
4984 #if FW_ENABLE_TEXT_LOGGING
4985  if (this->isConnected_logTextOut_OutputPort(0)) {
4986 #if FW_OBJECT_NAMES == 1
4987  const char* _formatString =
4988  "(%s) %s: Failed to deserialize EOF PDU on channel %" PRIu8 ", status %" PRIi32 "";
4989 #else
4990  const char* _formatString =
4991  "%s: Failed to deserialize EOF PDU on channel %" PRIu8 ", status %" PRIi32 "";
4992 #endif
4993 
4994  Fw::TextLogString _logString;
4995  (void) _logString.format(
4996  _formatString,
4997 #if FW_OBJECT_NAMES == 1
4998  this->m_objName.toChar(),
4999 #endif
5000  "FailEofPduDeserialization ",
5001  channelId,
5002  status
5003  );
5004 
5005  this->logTextOut_out(
5006  0,
5007  _id,
5008  _logTime,
5010  _logString
5011  );
5012  }
5013 #endif
5014  }
5015 
5018  U8 channelId,
5019  I32 status
5020  ) const
5021  {
5022  // Get the time
5023  Fw::Time _logTime;
5024  if (this->isConnected_timeCaller_OutputPort(0)) {
5025  this->timeCaller_out(0, _logTime);
5026  }
5027 
5029 
5030  // Emit the event on the log port
5031  if (this->isConnected_logOut_OutputPort(0)) {
5032  Fw::LogBuffer _logBuff;
5034 
5035 #if FW_AMPCS_COMPATIBLE
5036  // Serialize the number of arguments
5037  _status = _logBuff.serializeFrom(static_cast<U8>(2));
5038  FW_ASSERT(
5039  _status == Fw::FW_SERIALIZE_OK,
5040  static_cast<FwAssertArgType>(_status)
5041  );
5042 #endif
5043 
5044 #if FW_AMPCS_COMPATIBLE
5045  // Serialize the argument size
5046  _status = _logBuff.serializeFrom(
5047  static_cast<U8>(sizeof(U8))
5048  );
5049  FW_ASSERT(
5050  _status == Fw::FW_SERIALIZE_OK,
5051  static_cast<FwAssertArgType>(_status)
5052  );
5053 #endif
5054  _status = _logBuff.serializeFrom(channelId);
5055  FW_ASSERT(
5056  _status == Fw::FW_SERIALIZE_OK,
5057  static_cast<FwAssertArgType>(_status)
5058  );
5059 
5060 #if FW_AMPCS_COMPATIBLE
5061  // Serialize the argument size
5062  _status = _logBuff.serializeFrom(
5063  static_cast<U8>(sizeof(I32))
5064  );
5065  FW_ASSERT(
5066  _status == Fw::FW_SERIALIZE_OK,
5067  static_cast<FwAssertArgType>(_status)
5068  );
5069 #endif
5070  _status = _logBuff.serializeFrom(status);
5071  FW_ASSERT(
5072  _status == Fw::FW_SERIALIZE_OK,
5073  static_cast<FwAssertArgType>(_status)
5074  );
5075 
5076  this->logOut_out(
5077  0,
5078  _id,
5079  _logTime,
5081  _logBuff
5082  );
5083  }
5084 
5085  // Emit the event on the text log port
5086 #if FW_ENABLE_TEXT_LOGGING
5087  if (this->isConnected_logTextOut_OutputPort(0)) {
5088 #if FW_OBJECT_NAMES == 1
5089  const char* _formatString =
5090  "(%s) %s: Failed to deserialize ACK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5091 #else
5092  const char* _formatString =
5093  "%s: Failed to deserialize ACK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5094 #endif
5095 
5096  Fw::TextLogString _logString;
5097  (void) _logString.format(
5098  _formatString,
5099 #if FW_OBJECT_NAMES == 1
5100  this->m_objName.toChar(),
5101 #endif
5102  "FailAckPduDeserialization ",
5103  channelId,
5104  status
5105  );
5106 
5107  this->logTextOut_out(
5108  0,
5109  _id,
5110  _logTime,
5112  _logString
5113  );
5114  }
5115 #endif
5116  }
5117 
5120  U8 channelId,
5121  I32 status
5122  ) const
5123  {
5124  // Get the time
5125  Fw::Time _logTime;
5126  if (this->isConnected_timeCaller_OutputPort(0)) {
5127  this->timeCaller_out(0, _logTime);
5128  }
5129 
5131 
5132  // Emit the event on the log port
5133  if (this->isConnected_logOut_OutputPort(0)) {
5134  Fw::LogBuffer _logBuff;
5136 
5137 #if FW_AMPCS_COMPATIBLE
5138  // Serialize the number of arguments
5139  _status = _logBuff.serializeFrom(static_cast<U8>(2));
5140  FW_ASSERT(
5141  _status == Fw::FW_SERIALIZE_OK,
5142  static_cast<FwAssertArgType>(_status)
5143  );
5144 #endif
5145 
5146 #if FW_AMPCS_COMPATIBLE
5147  // Serialize the argument size
5148  _status = _logBuff.serializeFrom(
5149  static_cast<U8>(sizeof(U8))
5150  );
5151  FW_ASSERT(
5152  _status == Fw::FW_SERIALIZE_OK,
5153  static_cast<FwAssertArgType>(_status)
5154  );
5155 #endif
5156  _status = _logBuff.serializeFrom(channelId);
5157  FW_ASSERT(
5158  _status == Fw::FW_SERIALIZE_OK,
5159  static_cast<FwAssertArgType>(_status)
5160  );
5161 
5162 #if FW_AMPCS_COMPATIBLE
5163  // Serialize the argument size
5164  _status = _logBuff.serializeFrom(
5165  static_cast<U8>(sizeof(I32))
5166  );
5167  FW_ASSERT(
5168  _status == Fw::FW_SERIALIZE_OK,
5169  static_cast<FwAssertArgType>(_status)
5170  );
5171 #endif
5172  _status = _logBuff.serializeFrom(status);
5173  FW_ASSERT(
5174  _status == Fw::FW_SERIALIZE_OK,
5175  static_cast<FwAssertArgType>(_status)
5176  );
5177 
5178  this->logOut_out(
5179  0,
5180  _id,
5181  _logTime,
5183  _logBuff
5184  );
5185  }
5186 
5187  // Emit the event on the text log port
5188 #if FW_ENABLE_TEXT_LOGGING
5189  if (this->isConnected_logTextOut_OutputPort(0)) {
5190 #if FW_OBJECT_NAMES == 1
5191  const char* _formatString =
5192  "(%s) %s: Failed to deserialize FIN PDU on channel %" PRIu8 ", status %" PRIi32 "";
5193 #else
5194  const char* _formatString =
5195  "%s: Failed to deserialize FIN PDU on channel %" PRIu8 ", status %" PRIi32 "";
5196 #endif
5197 
5198  Fw::TextLogString _logString;
5199  (void) _logString.format(
5200  _formatString,
5201 #if FW_OBJECT_NAMES == 1
5202  this->m_objName.toChar(),
5203 #endif
5204  "FailFinPduDeserialization ",
5205  channelId,
5206  status
5207  );
5208 
5209  this->logTextOut_out(
5210  0,
5211  _id,
5212  _logTime,
5214  _logString
5215  );
5216  }
5217 #endif
5218  }
5219 
5222  U8 channelId,
5223  I32 status
5224  ) const
5225  {
5226  // Get the time
5227  Fw::Time _logTime;
5228  if (this->isConnected_timeCaller_OutputPort(0)) {
5229  this->timeCaller_out(0, _logTime);
5230  }
5231 
5233 
5234  // Emit the event on the log port
5235  if (this->isConnected_logOut_OutputPort(0)) {
5236  Fw::LogBuffer _logBuff;
5238 
5239 #if FW_AMPCS_COMPATIBLE
5240  // Serialize the number of arguments
5241  _status = _logBuff.serializeFrom(static_cast<U8>(2));
5242  FW_ASSERT(
5243  _status == Fw::FW_SERIALIZE_OK,
5244  static_cast<FwAssertArgType>(_status)
5245  );
5246 #endif
5247 
5248 #if FW_AMPCS_COMPATIBLE
5249  // Serialize the argument size
5250  _status = _logBuff.serializeFrom(
5251  static_cast<U8>(sizeof(U8))
5252  );
5253  FW_ASSERT(
5254  _status == Fw::FW_SERIALIZE_OK,
5255  static_cast<FwAssertArgType>(_status)
5256  );
5257 #endif
5258  _status = _logBuff.serializeFrom(channelId);
5259  FW_ASSERT(
5260  _status == Fw::FW_SERIALIZE_OK,
5261  static_cast<FwAssertArgType>(_status)
5262  );
5263 
5264 #if FW_AMPCS_COMPATIBLE
5265  // Serialize the argument size
5266  _status = _logBuff.serializeFrom(
5267  static_cast<U8>(sizeof(I32))
5268  );
5269  FW_ASSERT(
5270  _status == Fw::FW_SERIALIZE_OK,
5271  static_cast<FwAssertArgType>(_status)
5272  );
5273 #endif
5274  _status = _logBuff.serializeFrom(status);
5275  FW_ASSERT(
5276  _status == Fw::FW_SERIALIZE_OK,
5277  static_cast<FwAssertArgType>(_status)
5278  );
5279 
5280  this->logOut_out(
5281  0,
5282  _id,
5283  _logTime,
5285  _logBuff
5286  );
5287  }
5288 
5289  // Emit the event on the text log port
5290 #if FW_ENABLE_TEXT_LOGGING
5291  if (this->isConnected_logTextOut_OutputPort(0)) {
5292 #if FW_OBJECT_NAMES == 1
5293  const char* _formatString =
5294  "(%s) %s: Failed to deserialize NAK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5295 #else
5296  const char* _formatString =
5297  "%s: Failed to deserialize NAK PDU on channel %" PRIu8 ", status %" PRIi32 "";
5298 #endif
5299 
5300  Fw::TextLogString _logString;
5301  (void) _logString.format(
5302  _formatString,
5303 #if FW_OBJECT_NAMES == 1
5304  this->m_objName.toChar(),
5305 #endif
5306  "FailNakPduDeserialization ",
5307  channelId,
5308  status
5309  );
5310 
5311  this->logTextOut_out(
5312  0,
5313  _id,
5314  _logTime,
5316  _logString
5317  );
5318  }
5319 #endif
5320  }
5321 
5324  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5325  U32 srcEid,
5326  U32 seqNum
5327  ) const
5328  {
5329  // Get the time
5330  Fw::Time _logTime;
5331  if (this->isConnected_timeCaller_OutputPort(0)) {
5332  this->timeCaller_out(0, _logTime);
5333  }
5334 
5335  const FwEventIdType _id = this->getIdBase() + EVENTID_RXACKLIMITREACHED;
5336 
5337  // Emit the event on the log port
5338  if (this->isConnected_logOut_OutputPort(0)) {
5339  Fw::LogBuffer _logBuff;
5341 
5342 #if FW_AMPCS_COMPATIBLE
5343  // Serialize the number of arguments
5344  _status = _logBuff.serializeFrom(static_cast<U8>(3));
5345  FW_ASSERT(
5346  _status == Fw::FW_SERIALIZE_OK,
5347  static_cast<FwAssertArgType>(_status)
5348  );
5349 #endif
5350 
5351 #if FW_AMPCS_COMPATIBLE
5352  // Serialize the argument size
5353  _status = _logBuff.serializeFrom(
5355  );
5356  FW_ASSERT(
5357  _status == Fw::FW_SERIALIZE_OK,
5358  static_cast<FwAssertArgType>(_status)
5359  );
5360 #endif
5361  _status = _logBuff.serializeFrom(cfdpClass);
5362  FW_ASSERT(
5363  _status == Fw::FW_SERIALIZE_OK,
5364  static_cast<FwAssertArgType>(_status)
5365  );
5366 
5367 #if FW_AMPCS_COMPATIBLE
5368  // Serialize the argument size
5369  _status = _logBuff.serializeFrom(
5370  static_cast<U8>(sizeof(U32))
5371  );
5372  FW_ASSERT(
5373  _status == Fw::FW_SERIALIZE_OK,
5374  static_cast<FwAssertArgType>(_status)
5375  );
5376 #endif
5377  _status = _logBuff.serializeFrom(srcEid);
5378  FW_ASSERT(
5379  _status == Fw::FW_SERIALIZE_OK,
5380  static_cast<FwAssertArgType>(_status)
5381  );
5382 
5383 #if FW_AMPCS_COMPATIBLE
5384  // Serialize the argument size
5385  _status = _logBuff.serializeFrom(
5386  static_cast<U8>(sizeof(U32))
5387  );
5388  FW_ASSERT(
5389  _status == Fw::FW_SERIALIZE_OK,
5390  static_cast<FwAssertArgType>(_status)
5391  );
5392 #endif
5393  _status = _logBuff.serializeFrom(seqNum);
5394  FW_ASSERT(
5395  _status == Fw::FW_SERIALIZE_OK,
5396  static_cast<FwAssertArgType>(_status)
5397  );
5398 
5399  this->logOut_out(
5400  0,
5401  _id,
5402  _logTime,
5404  _logBuff
5405  );
5406  }
5407 
5408  // Emit the event on the text log port
5409 #if FW_ENABLE_TEXT_LOGGING
5410  if (this->isConnected_logTextOut_OutputPort(0)) {
5411 #if FW_OBJECT_NAMES == 1
5412  const char* _formatString =
5413  "(%s) %s: RX class %s ACK limit reached for transaction %" PRIu32 ":%" PRIu32 ", no fin-ack sent";
5414 #else
5415  const char* _formatString =
5416  "%s: RX class %s ACK limit reached for transaction %" PRIu32 ":%" PRIu32 ", no fin-ack sent";
5417 #endif
5418 
5419  Fw::String cfdpClassStr;
5420  cfdpClass.toString(cfdpClassStr);
5421 
5422  Fw::TextLogString _logString;
5423  (void) _logString.format(
5424  _formatString,
5425 #if FW_OBJECT_NAMES == 1
5426  this->m_objName.toChar(),
5427 #endif
5428  "RxAckLimitReached ",
5429  cfdpClassStr.toChar(),
5430  srcEid,
5431  seqNum
5432  );
5433 
5434  this->logTextOut_out(
5435  0,
5436  _id,
5437  _logTime,
5439  _logString
5440  );
5441  }
5442 #endif
5443  }
5444 
5447  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5448  U32 srcEid,
5449  U32 seqNum,
5450  const Fw::StringBase& filename
5451  ) const
5452  {
5453  // Get the time
5454  Fw::Time _logTime;
5455  if (this->isConnected_timeCaller_OutputPort(0)) {
5456  this->timeCaller_out(0, _logTime);
5457  }
5458 
5459  const FwEventIdType _id = this->getIdBase() + EVENTID_RXTEMPFILECREATED;
5460 
5461  // Emit the event on the log port
5462  if (this->isConnected_logOut_OutputPort(0)) {
5463  Fw::LogBuffer _logBuff;
5465 
5466 #if FW_AMPCS_COMPATIBLE
5467  // Serialize the number of arguments
5468  _status = _logBuff.serializeFrom(static_cast<U8>(4));
5469  FW_ASSERT(
5470  _status == Fw::FW_SERIALIZE_OK,
5471  static_cast<FwAssertArgType>(_status)
5472  );
5473 #endif
5474 
5475 #if FW_AMPCS_COMPATIBLE
5476  // Serialize the argument size
5477  _status = _logBuff.serializeFrom(
5479  );
5480  FW_ASSERT(
5481  _status == Fw::FW_SERIALIZE_OK,
5482  static_cast<FwAssertArgType>(_status)
5483  );
5484 #endif
5485  _status = _logBuff.serializeFrom(cfdpClass);
5486  FW_ASSERT(
5487  _status == Fw::FW_SERIALIZE_OK,
5488  static_cast<FwAssertArgType>(_status)
5489  );
5490 
5491 #if FW_AMPCS_COMPATIBLE
5492  // Serialize the argument size
5493  _status = _logBuff.serializeFrom(
5494  static_cast<U8>(sizeof(U32))
5495  );
5496  FW_ASSERT(
5497  _status == Fw::FW_SERIALIZE_OK,
5498  static_cast<FwAssertArgType>(_status)
5499  );
5500 #endif
5501  _status = _logBuff.serializeFrom(srcEid);
5502  FW_ASSERT(
5503  _status == Fw::FW_SERIALIZE_OK,
5504  static_cast<FwAssertArgType>(_status)
5505  );
5506 
5507 #if FW_AMPCS_COMPATIBLE
5508  // Serialize the argument size
5509  _status = _logBuff.serializeFrom(
5510  static_cast<U8>(sizeof(U32))
5511  );
5512  FW_ASSERT(
5513  _status == Fw::FW_SERIALIZE_OK,
5514  static_cast<FwAssertArgType>(_status)
5515  );
5516 #endif
5517  _status = _logBuff.serializeFrom(seqNum);
5518  FW_ASSERT(
5519  _status == Fw::FW_SERIALIZE_OK,
5520  static_cast<FwAssertArgType>(_status)
5521  );
5522 
5523  _status = filename.serializeTo(
5524  _logBuff,
5525  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
5526  );
5527  FW_ASSERT(
5528  _status == Fw::FW_SERIALIZE_OK,
5529  static_cast<FwAssertArgType>(_status)
5530  );
5531 
5532  this->logOut_out(
5533  0,
5534  _id,
5535  _logTime,
5537  _logBuff
5538  );
5539  }
5540 
5541  // Emit the event on the text log port
5542 #if FW_ENABLE_TEXT_LOGGING
5543  if (this->isConnected_logTextOut_OutputPort(0)) {
5544 #if FW_OBJECT_NAMES == 1
5545  const char* _formatString =
5546  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " creating temp file %s without metadata";
5547 #else
5548  const char* _formatString =
5549  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " creating temp file %s without metadata";
5550 #endif
5551 
5552  Fw::String cfdpClassStr;
5553  cfdpClass.toString(cfdpClassStr);
5554 
5555  Fw::TextLogString _logString;
5556  (void) _logString.format(
5557  _formatString,
5558 #if FW_OBJECT_NAMES == 1
5559  this->m_objName.toChar(),
5560 #endif
5561  "RxTempFileCreated ",
5562  cfdpClassStr.toChar(),
5563  srcEid,
5564  seqNum,
5565  filename.toChar()
5566  );
5567 
5568  this->logTextOut_out(
5569  0,
5570  _id,
5571  _logTime,
5573  _logString
5574  );
5575  }
5576 #endif
5577  }
5578 
5581  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5582  U32 srcEid,
5583  U32 seqNum,
5584  const Fw::StringBase& filename,
5585  I32 status
5586  ) const
5587  {
5588  // Get the time
5589  Fw::Time _logTime;
5590  if (this->isConnected_timeCaller_OutputPort(0)) {
5591  this->timeCaller_out(0, _logTime);
5592  }
5593 
5594  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILECREATEFAILED;
5595 
5596  // Emit the event on the log port
5597  if (this->isConnected_logOut_OutputPort(0)) {
5598  Fw::LogBuffer _logBuff;
5600 
5601 #if FW_AMPCS_COMPATIBLE
5602  // Serialize the number of arguments
5603  _status = _logBuff.serializeFrom(static_cast<U8>(5));
5604  FW_ASSERT(
5605  _status == Fw::FW_SERIALIZE_OK,
5606  static_cast<FwAssertArgType>(_status)
5607  );
5608 #endif
5609 
5610 #if FW_AMPCS_COMPATIBLE
5611  // Serialize the argument size
5612  _status = _logBuff.serializeFrom(
5614  );
5615  FW_ASSERT(
5616  _status == Fw::FW_SERIALIZE_OK,
5617  static_cast<FwAssertArgType>(_status)
5618  );
5619 #endif
5620  _status = _logBuff.serializeFrom(cfdpClass);
5621  FW_ASSERT(
5622  _status == Fw::FW_SERIALIZE_OK,
5623  static_cast<FwAssertArgType>(_status)
5624  );
5625 
5626 #if FW_AMPCS_COMPATIBLE
5627  // Serialize the argument size
5628  _status = _logBuff.serializeFrom(
5629  static_cast<U8>(sizeof(U32))
5630  );
5631  FW_ASSERT(
5632  _status == Fw::FW_SERIALIZE_OK,
5633  static_cast<FwAssertArgType>(_status)
5634  );
5635 #endif
5636  _status = _logBuff.serializeFrom(srcEid);
5637  FW_ASSERT(
5638  _status == Fw::FW_SERIALIZE_OK,
5639  static_cast<FwAssertArgType>(_status)
5640  );
5641 
5642 #if FW_AMPCS_COMPATIBLE
5643  // Serialize the argument size
5644  _status = _logBuff.serializeFrom(
5645  static_cast<U8>(sizeof(U32))
5646  );
5647  FW_ASSERT(
5648  _status == Fw::FW_SERIALIZE_OK,
5649  static_cast<FwAssertArgType>(_status)
5650  );
5651 #endif
5652  _status = _logBuff.serializeFrom(seqNum);
5653  FW_ASSERT(
5654  _status == Fw::FW_SERIALIZE_OK,
5655  static_cast<FwAssertArgType>(_status)
5656  );
5657 
5658  _status = filename.serializeTo(
5659  _logBuff,
5660  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
5661  );
5662  FW_ASSERT(
5663  _status == Fw::FW_SERIALIZE_OK,
5664  static_cast<FwAssertArgType>(_status)
5665  );
5666 
5667 #if FW_AMPCS_COMPATIBLE
5668  // Serialize the argument size
5669  _status = _logBuff.serializeFrom(
5670  static_cast<U8>(sizeof(I32))
5671  );
5672  FW_ASSERT(
5673  _status == Fw::FW_SERIALIZE_OK,
5674  static_cast<FwAssertArgType>(_status)
5675  );
5676 #endif
5677  _status = _logBuff.serializeFrom(status);
5678  FW_ASSERT(
5679  _status == Fw::FW_SERIALIZE_OK,
5680  static_cast<FwAssertArgType>(_status)
5681  );
5682 
5683  this->logOut_out(
5684  0,
5685  _id,
5686  _logTime,
5688  _logBuff
5689  );
5690  }
5691 
5692  // Emit the event on the text log port
5693 #if FW_ENABLE_TEXT_LOGGING
5694  if (this->isConnected_logTextOut_OutputPort(0)) {
5695 #if FW_OBJECT_NAMES == 1
5696  const char* _formatString =
5697  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to create file %s, error=%" PRIi32 "";
5698 #else
5699  const char* _formatString =
5700  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to create file %s, error=%" PRIi32 "";
5701 #endif
5702 
5703  Fw::String cfdpClassStr;
5704  cfdpClass.toString(cfdpClassStr);
5705 
5706  Fw::TextLogString _logString;
5707  (void) _logString.format(
5708  _formatString,
5709 #if FW_OBJECT_NAMES == 1
5710  this->m_objName.toChar(),
5711 #endif
5712  "RxFileCreateFailed ",
5713  cfdpClassStr.toChar(),
5714  srcEid,
5715  seqNum,
5716  filename.toChar(),
5717  status
5718  );
5719 
5720  this->logTextOut_out(
5721  0,
5722  _id,
5723  _logTime,
5725  _logString
5726  );
5727  }
5728 #endif
5729  }
5730 
5733  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5734  U32 srcEid,
5735  U32 seqNum,
5736  U32 expected,
5737  U32 actual
5738  ) const
5739  {
5740  // Get the time
5741  Fw::Time _logTime;
5742  if (this->isConnected_timeCaller_OutputPort(0)) {
5743  this->timeCaller_out(0, _logTime);
5744  }
5745 
5746  const FwEventIdType _id = this->getIdBase() + EVENTID_RXCRCMISMATCH;
5747 
5748  // Emit the event on the log port
5749  if (this->isConnected_logOut_OutputPort(0)) {
5750  Fw::LogBuffer _logBuff;
5752 
5753 #if FW_AMPCS_COMPATIBLE
5754  // Serialize the number of arguments
5755  _status = _logBuff.serializeFrom(static_cast<U8>(5));
5756  FW_ASSERT(
5757  _status == Fw::FW_SERIALIZE_OK,
5758  static_cast<FwAssertArgType>(_status)
5759  );
5760 #endif
5761 
5762 #if FW_AMPCS_COMPATIBLE
5763  // Serialize the argument size
5764  _status = _logBuff.serializeFrom(
5766  );
5767  FW_ASSERT(
5768  _status == Fw::FW_SERIALIZE_OK,
5769  static_cast<FwAssertArgType>(_status)
5770  );
5771 #endif
5772  _status = _logBuff.serializeFrom(cfdpClass);
5773  FW_ASSERT(
5774  _status == Fw::FW_SERIALIZE_OK,
5775  static_cast<FwAssertArgType>(_status)
5776  );
5777 
5778 #if FW_AMPCS_COMPATIBLE
5779  // Serialize the argument size
5780  _status = _logBuff.serializeFrom(
5781  static_cast<U8>(sizeof(U32))
5782  );
5783  FW_ASSERT(
5784  _status == Fw::FW_SERIALIZE_OK,
5785  static_cast<FwAssertArgType>(_status)
5786  );
5787 #endif
5788  _status = _logBuff.serializeFrom(srcEid);
5789  FW_ASSERT(
5790  _status == Fw::FW_SERIALIZE_OK,
5791  static_cast<FwAssertArgType>(_status)
5792  );
5793 
5794 #if FW_AMPCS_COMPATIBLE
5795  // Serialize the argument size
5796  _status = _logBuff.serializeFrom(
5797  static_cast<U8>(sizeof(U32))
5798  );
5799  FW_ASSERT(
5800  _status == Fw::FW_SERIALIZE_OK,
5801  static_cast<FwAssertArgType>(_status)
5802  );
5803 #endif
5804  _status = _logBuff.serializeFrom(seqNum);
5805  FW_ASSERT(
5806  _status == Fw::FW_SERIALIZE_OK,
5807  static_cast<FwAssertArgType>(_status)
5808  );
5809 
5810 #if FW_AMPCS_COMPATIBLE
5811  // Serialize the argument size
5812  _status = _logBuff.serializeFrom(
5813  static_cast<U8>(sizeof(U32))
5814  );
5815  FW_ASSERT(
5816  _status == Fw::FW_SERIALIZE_OK,
5817  static_cast<FwAssertArgType>(_status)
5818  );
5819 #endif
5820  _status = _logBuff.serializeFrom(expected);
5821  FW_ASSERT(
5822  _status == Fw::FW_SERIALIZE_OK,
5823  static_cast<FwAssertArgType>(_status)
5824  );
5825 
5826 #if FW_AMPCS_COMPATIBLE
5827  // Serialize the argument size
5828  _status = _logBuff.serializeFrom(
5829  static_cast<U8>(sizeof(U32))
5830  );
5831  FW_ASSERT(
5832  _status == Fw::FW_SERIALIZE_OK,
5833  static_cast<FwAssertArgType>(_status)
5834  );
5835 #endif
5836  _status = _logBuff.serializeFrom(actual);
5837  FW_ASSERT(
5838  _status == Fw::FW_SERIALIZE_OK,
5839  static_cast<FwAssertArgType>(_status)
5840  );
5841 
5842  this->logOut_out(
5843  0,
5844  _id,
5845  _logTime,
5847  _logBuff
5848  );
5849  }
5850 
5851  // Emit the event on the text log port
5852 #if FW_ENABLE_TEXT_LOGGING
5853  if (this->isConnected_logTextOut_OutputPort(0)) {
5854 #if FW_OBJECT_NAMES == 1
5855  const char* _formatString =
5856  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " CRC mismatch: expected 0x%" PRIx32 " actual 0x%" PRIx32 "";
5857 #else
5858  const char* _formatString =
5859  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " CRC mismatch: expected 0x%" PRIx32 " actual 0x%" PRIx32 "";
5860 #endif
5861 
5862  Fw::String cfdpClassStr;
5863  cfdpClass.toString(cfdpClassStr);
5864 
5865  Fw::TextLogString _logString;
5866  (void) _logString.format(
5867  _formatString,
5868 #if FW_OBJECT_NAMES == 1
5869  this->m_objName.toChar(),
5870 #endif
5871  "RxCrcMismatch ",
5872  cfdpClassStr.toChar(),
5873  srcEid,
5874  seqNum,
5875  expected,
5876  actual
5877  );
5878 
5879  this->logTextOut_out(
5880  0,
5881  _id,
5882  _logTime,
5884  _logString
5885  );
5886  }
5887 #endif
5888  }
5889 
5892  const Svc::Ccsds::Cfdp::Class& cfdpClass,
5893  U32 srcEid,
5894  U32 seqNum
5895  ) const
5896  {
5897  // Get the time
5898  Fw::Time _logTime;
5899  if (this->isConnected_timeCaller_OutputPort(0)) {
5900  this->timeCaller_out(0, _logTime);
5901  }
5902 
5903  const FwEventIdType _id = this->getIdBase() + EVENTID_RXNAKLIMITREACHED;
5904 
5905  // Emit the event on the log port
5906  if (this->isConnected_logOut_OutputPort(0)) {
5907  Fw::LogBuffer _logBuff;
5909 
5910 #if FW_AMPCS_COMPATIBLE
5911  // Serialize the number of arguments
5912  _status = _logBuff.serializeFrom(static_cast<U8>(3));
5913  FW_ASSERT(
5914  _status == Fw::FW_SERIALIZE_OK,
5915  static_cast<FwAssertArgType>(_status)
5916  );
5917 #endif
5918 
5919 #if FW_AMPCS_COMPATIBLE
5920  // Serialize the argument size
5921  _status = _logBuff.serializeFrom(
5923  );
5924  FW_ASSERT(
5925  _status == Fw::FW_SERIALIZE_OK,
5926  static_cast<FwAssertArgType>(_status)
5927  );
5928 #endif
5929  _status = _logBuff.serializeFrom(cfdpClass);
5930  FW_ASSERT(
5931  _status == Fw::FW_SERIALIZE_OK,
5932  static_cast<FwAssertArgType>(_status)
5933  );
5934 
5935 #if FW_AMPCS_COMPATIBLE
5936  // Serialize the argument size
5937  _status = _logBuff.serializeFrom(
5938  static_cast<U8>(sizeof(U32))
5939  );
5940  FW_ASSERT(
5941  _status == Fw::FW_SERIALIZE_OK,
5942  static_cast<FwAssertArgType>(_status)
5943  );
5944 #endif
5945  _status = _logBuff.serializeFrom(srcEid);
5946  FW_ASSERT(
5947  _status == Fw::FW_SERIALIZE_OK,
5948  static_cast<FwAssertArgType>(_status)
5949  );
5950 
5951 #if FW_AMPCS_COMPATIBLE
5952  // Serialize the argument size
5953  _status = _logBuff.serializeFrom(
5954  static_cast<U8>(sizeof(U32))
5955  );
5956  FW_ASSERT(
5957  _status == Fw::FW_SERIALIZE_OK,
5958  static_cast<FwAssertArgType>(_status)
5959  );
5960 #endif
5961  _status = _logBuff.serializeFrom(seqNum);
5962  FW_ASSERT(
5963  _status == Fw::FW_SERIALIZE_OK,
5964  static_cast<FwAssertArgType>(_status)
5965  );
5966 
5967  this->logOut_out(
5968  0,
5969  _id,
5970  _logTime,
5972  _logBuff
5973  );
5974  }
5975 
5976  // Emit the event on the text log port
5977 #if FW_ENABLE_TEXT_LOGGING
5978  if (this->isConnected_logTextOut_OutputPort(0)) {
5979 #if FW_OBJECT_NAMES == 1
5980  const char* _formatString =
5981  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " NAK limit reached";
5982 #else
5983  const char* _formatString =
5984  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " NAK limit reached";
5985 #endif
5986 
5987  Fw::String cfdpClassStr;
5988  cfdpClass.toString(cfdpClassStr);
5989 
5990  Fw::TextLogString _logString;
5991  (void) _logString.format(
5992  _formatString,
5993 #if FW_OBJECT_NAMES == 1
5994  this->m_objName.toChar(),
5995 #endif
5996  "RxNakLimitReached ",
5997  cfdpClassStr.toChar(),
5998  srcEid,
5999  seqNum
6000  );
6001 
6002  this->logTextOut_out(
6003  0,
6004  _id,
6005  _logTime,
6007  _logString
6008  );
6009  }
6010 #endif
6011  }
6012 
6015  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6016  U32 srcEid,
6017  U32 seqNum,
6018  U32 offset,
6019  I32 status
6020  ) const
6021  {
6022  // Get the time
6023  Fw::Time _logTime;
6024  if (this->isConnected_timeCaller_OutputPort(0)) {
6025  this->timeCaller_out(0, _logTime);
6026  }
6027 
6028  const FwEventIdType _id = this->getIdBase() + EVENTID_RXSEEKFAILED;
6029 
6030  // Emit the event on the log port
6031  if (this->isConnected_logOut_OutputPort(0)) {
6032  Fw::LogBuffer _logBuff;
6034 
6035 #if FW_AMPCS_COMPATIBLE
6036  // Serialize the number of arguments
6037  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6038  FW_ASSERT(
6039  _status == Fw::FW_SERIALIZE_OK,
6040  static_cast<FwAssertArgType>(_status)
6041  );
6042 #endif
6043 
6044 #if FW_AMPCS_COMPATIBLE
6045  // Serialize the argument size
6046  _status = _logBuff.serializeFrom(
6048  );
6049  FW_ASSERT(
6050  _status == Fw::FW_SERIALIZE_OK,
6051  static_cast<FwAssertArgType>(_status)
6052  );
6053 #endif
6054  _status = _logBuff.serializeFrom(cfdpClass);
6055  FW_ASSERT(
6056  _status == Fw::FW_SERIALIZE_OK,
6057  static_cast<FwAssertArgType>(_status)
6058  );
6059 
6060 #if FW_AMPCS_COMPATIBLE
6061  // Serialize the argument size
6062  _status = _logBuff.serializeFrom(
6063  static_cast<U8>(sizeof(U32))
6064  );
6065  FW_ASSERT(
6066  _status == Fw::FW_SERIALIZE_OK,
6067  static_cast<FwAssertArgType>(_status)
6068  );
6069 #endif
6070  _status = _logBuff.serializeFrom(srcEid);
6071  FW_ASSERT(
6072  _status == Fw::FW_SERIALIZE_OK,
6073  static_cast<FwAssertArgType>(_status)
6074  );
6075 
6076 #if FW_AMPCS_COMPATIBLE
6077  // Serialize the argument size
6078  _status = _logBuff.serializeFrom(
6079  static_cast<U8>(sizeof(U32))
6080  );
6081  FW_ASSERT(
6082  _status == Fw::FW_SERIALIZE_OK,
6083  static_cast<FwAssertArgType>(_status)
6084  );
6085 #endif
6086  _status = _logBuff.serializeFrom(seqNum);
6087  FW_ASSERT(
6088  _status == Fw::FW_SERIALIZE_OK,
6089  static_cast<FwAssertArgType>(_status)
6090  );
6091 
6092 #if FW_AMPCS_COMPATIBLE
6093  // Serialize the argument size
6094  _status = _logBuff.serializeFrom(
6095  static_cast<U8>(sizeof(U32))
6096  );
6097  FW_ASSERT(
6098  _status == Fw::FW_SERIALIZE_OK,
6099  static_cast<FwAssertArgType>(_status)
6100  );
6101 #endif
6102  _status = _logBuff.serializeFrom(offset);
6103  FW_ASSERT(
6104  _status == Fw::FW_SERIALIZE_OK,
6105  static_cast<FwAssertArgType>(_status)
6106  );
6107 
6108 #if FW_AMPCS_COMPATIBLE
6109  // Serialize the argument size
6110  _status = _logBuff.serializeFrom(
6111  static_cast<U8>(sizeof(I32))
6112  );
6113  FW_ASSERT(
6114  _status == Fw::FW_SERIALIZE_OK,
6115  static_cast<FwAssertArgType>(_status)
6116  );
6117 #endif
6118  _status = _logBuff.serializeFrom(status);
6119  FW_ASSERT(
6120  _status == Fw::FW_SERIALIZE_OK,
6121  static_cast<FwAssertArgType>(_status)
6122  );
6123 
6124  this->logOut_out(
6125  0,
6126  _id,
6127  _logTime,
6129  _logBuff
6130  );
6131  }
6132 
6133  // Emit the event on the text log port
6134 #if FW_ENABLE_TEXT_LOGGING
6135  if (this->isConnected_logTextOut_OutputPort(0)) {
6136 #if FW_OBJECT_NAMES == 1
6137  const char* _formatString =
6138  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to offset %" PRIu32 ", error=%" PRIi32 "";
6139 #else
6140  const char* _formatString =
6141  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to offset %" PRIu32 ", error=%" PRIi32 "";
6142 #endif
6143 
6144  Fw::String cfdpClassStr;
6145  cfdpClass.toString(cfdpClassStr);
6146 
6147  Fw::TextLogString _logString;
6148  (void) _logString.format(
6149  _formatString,
6150 #if FW_OBJECT_NAMES == 1
6151  this->m_objName.toChar(),
6152 #endif
6153  "RxSeekFailed ",
6154  cfdpClassStr.toChar(),
6155  srcEid,
6156  seqNum,
6157  offset,
6158  status
6159  );
6160 
6161  this->logTextOut_out(
6162  0,
6163  _id,
6164  _logTime,
6166  _logString
6167  );
6168  }
6169 #endif
6170  }
6171 
6174  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6175  U32 srcEid,
6176  U32 seqNum,
6177  U32 expected,
6178  I32 actual
6179  ) const
6180  {
6181  // Get the time
6182  Fw::Time _logTime;
6183  if (this->isConnected_timeCaller_OutputPort(0)) {
6184  this->timeCaller_out(0, _logTime);
6185  }
6186 
6187  const FwEventIdType _id = this->getIdBase() + EVENTID_RXWRITEFAILED;
6188 
6189  // Emit the event on the log port
6190  if (this->isConnected_logOut_OutputPort(0)) {
6191  Fw::LogBuffer _logBuff;
6193 
6194 #if FW_AMPCS_COMPATIBLE
6195  // Serialize the number of arguments
6196  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6197  FW_ASSERT(
6198  _status == Fw::FW_SERIALIZE_OK,
6199  static_cast<FwAssertArgType>(_status)
6200  );
6201 #endif
6202 
6203 #if FW_AMPCS_COMPATIBLE
6204  // Serialize the argument size
6205  _status = _logBuff.serializeFrom(
6207  );
6208  FW_ASSERT(
6209  _status == Fw::FW_SERIALIZE_OK,
6210  static_cast<FwAssertArgType>(_status)
6211  );
6212 #endif
6213  _status = _logBuff.serializeFrom(cfdpClass);
6214  FW_ASSERT(
6215  _status == Fw::FW_SERIALIZE_OK,
6216  static_cast<FwAssertArgType>(_status)
6217  );
6218 
6219 #if FW_AMPCS_COMPATIBLE
6220  // Serialize the argument size
6221  _status = _logBuff.serializeFrom(
6222  static_cast<U8>(sizeof(U32))
6223  );
6224  FW_ASSERT(
6225  _status == Fw::FW_SERIALIZE_OK,
6226  static_cast<FwAssertArgType>(_status)
6227  );
6228 #endif
6229  _status = _logBuff.serializeFrom(srcEid);
6230  FW_ASSERT(
6231  _status == Fw::FW_SERIALIZE_OK,
6232  static_cast<FwAssertArgType>(_status)
6233  );
6234 
6235 #if FW_AMPCS_COMPATIBLE
6236  // Serialize the argument size
6237  _status = _logBuff.serializeFrom(
6238  static_cast<U8>(sizeof(U32))
6239  );
6240  FW_ASSERT(
6241  _status == Fw::FW_SERIALIZE_OK,
6242  static_cast<FwAssertArgType>(_status)
6243  );
6244 #endif
6245  _status = _logBuff.serializeFrom(seqNum);
6246  FW_ASSERT(
6247  _status == Fw::FW_SERIALIZE_OK,
6248  static_cast<FwAssertArgType>(_status)
6249  );
6250 
6251 #if FW_AMPCS_COMPATIBLE
6252  // Serialize the argument size
6253  _status = _logBuff.serializeFrom(
6254  static_cast<U8>(sizeof(U32))
6255  );
6256  FW_ASSERT(
6257  _status == Fw::FW_SERIALIZE_OK,
6258  static_cast<FwAssertArgType>(_status)
6259  );
6260 #endif
6261  _status = _logBuff.serializeFrom(expected);
6262  FW_ASSERT(
6263  _status == Fw::FW_SERIALIZE_OK,
6264  static_cast<FwAssertArgType>(_status)
6265  );
6266 
6267 #if FW_AMPCS_COMPATIBLE
6268  // Serialize the argument size
6269  _status = _logBuff.serializeFrom(
6270  static_cast<U8>(sizeof(I32))
6271  );
6272  FW_ASSERT(
6273  _status == Fw::FW_SERIALIZE_OK,
6274  static_cast<FwAssertArgType>(_status)
6275  );
6276 #endif
6277  _status = _logBuff.serializeFrom(actual);
6278  FW_ASSERT(
6279  _status == Fw::FW_SERIALIZE_OK,
6280  static_cast<FwAssertArgType>(_status)
6281  );
6282 
6283  this->logOut_out(
6284  0,
6285  _id,
6286  _logTime,
6288  _logBuff
6289  );
6290  }
6291 
6292  // Emit the event on the text log port
6293 #if FW_ENABLE_TEXT_LOGGING
6294  if (this->isConnected_logTextOut_OutputPort(0)) {
6295 #if FW_OBJECT_NAMES == 1
6296  const char* _formatString =
6297  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " write failed: expected %" PRIu32 " bytes, got %" PRIi32 "";
6298 #else
6299  const char* _formatString =
6300  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " write failed: expected %" PRIu32 " bytes, got %" PRIi32 "";
6301 #endif
6302 
6303  Fw::String cfdpClassStr;
6304  cfdpClass.toString(cfdpClassStr);
6305 
6306  Fw::TextLogString _logString;
6307  (void) _logString.format(
6308  _formatString,
6309 #if FW_OBJECT_NAMES == 1
6310  this->m_objName.toChar(),
6311 #endif
6312  "RxWriteFailed ",
6313  cfdpClassStr.toChar(),
6314  srcEid,
6315  seqNum,
6316  expected,
6317  actual
6318  );
6319 
6320  this->logTextOut_out(
6321  0,
6322  _id,
6323  _logTime,
6325  _logString
6326  );
6327  }
6328 #endif
6329  }
6330 
6333  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6334  U32 srcEid,
6335  U32 seqNum,
6336  U32 offset,
6337  U32 dataSize,
6338  U32 fileSize
6339  ) const
6340  {
6341  // Get the time
6342  Fw::Time _logTime;
6343  if (this->isConnected_timeCaller_OutputPort(0)) {
6344  this->timeCaller_out(0, _logTime);
6345  }
6346 
6348 
6349  // Emit the event on the log port
6350  if (this->isConnected_logOut_OutputPort(0)) {
6351  Fw::LogBuffer _logBuff;
6353 
6354 #if FW_AMPCS_COMPATIBLE
6355  // Serialize the number of arguments
6356  _status = _logBuff.serializeFrom(static_cast<U8>(6));
6357  FW_ASSERT(
6358  _status == Fw::FW_SERIALIZE_OK,
6359  static_cast<FwAssertArgType>(_status)
6360  );
6361 #endif
6362 
6363 #if FW_AMPCS_COMPATIBLE
6364  // Serialize the argument size
6365  _status = _logBuff.serializeFrom(
6367  );
6368  FW_ASSERT(
6369  _status == Fw::FW_SERIALIZE_OK,
6370  static_cast<FwAssertArgType>(_status)
6371  );
6372 #endif
6373  _status = _logBuff.serializeFrom(cfdpClass);
6374  FW_ASSERT(
6375  _status == Fw::FW_SERIALIZE_OK,
6376  static_cast<FwAssertArgType>(_status)
6377  );
6378 
6379 #if FW_AMPCS_COMPATIBLE
6380  // Serialize the argument size
6381  _status = _logBuff.serializeFrom(
6382  static_cast<U8>(sizeof(U32))
6383  );
6384  FW_ASSERT(
6385  _status == Fw::FW_SERIALIZE_OK,
6386  static_cast<FwAssertArgType>(_status)
6387  );
6388 #endif
6389  _status = _logBuff.serializeFrom(srcEid);
6390  FW_ASSERT(
6391  _status == Fw::FW_SERIALIZE_OK,
6392  static_cast<FwAssertArgType>(_status)
6393  );
6394 
6395 #if FW_AMPCS_COMPATIBLE
6396  // Serialize the argument size
6397  _status = _logBuff.serializeFrom(
6398  static_cast<U8>(sizeof(U32))
6399  );
6400  FW_ASSERT(
6401  _status == Fw::FW_SERIALIZE_OK,
6402  static_cast<FwAssertArgType>(_status)
6403  );
6404 #endif
6405  _status = _logBuff.serializeFrom(seqNum);
6406  FW_ASSERT(
6407  _status == Fw::FW_SERIALIZE_OK,
6408  static_cast<FwAssertArgType>(_status)
6409  );
6410 
6411 #if FW_AMPCS_COMPATIBLE
6412  // Serialize the argument size
6413  _status = _logBuff.serializeFrom(
6414  static_cast<U8>(sizeof(U32))
6415  );
6416  FW_ASSERT(
6417  _status == Fw::FW_SERIALIZE_OK,
6418  static_cast<FwAssertArgType>(_status)
6419  );
6420 #endif
6421  _status = _logBuff.serializeFrom(offset);
6422  FW_ASSERT(
6423  _status == Fw::FW_SERIALIZE_OK,
6424  static_cast<FwAssertArgType>(_status)
6425  );
6426 
6427 #if FW_AMPCS_COMPATIBLE
6428  // Serialize the argument size
6429  _status = _logBuff.serializeFrom(
6430  static_cast<U8>(sizeof(U32))
6431  );
6432  FW_ASSERT(
6433  _status == Fw::FW_SERIALIZE_OK,
6434  static_cast<FwAssertArgType>(_status)
6435  );
6436 #endif
6437  _status = _logBuff.serializeFrom(dataSize);
6438  FW_ASSERT(
6439  _status == Fw::FW_SERIALIZE_OK,
6440  static_cast<FwAssertArgType>(_status)
6441  );
6442 
6443 #if FW_AMPCS_COMPATIBLE
6444  // Serialize the argument size
6445  _status = _logBuff.serializeFrom(
6446  static_cast<U8>(sizeof(U32))
6447  );
6448  FW_ASSERT(
6449  _status == Fw::FW_SERIALIZE_OK,
6450  static_cast<FwAssertArgType>(_status)
6451  );
6452 #endif
6453  _status = _logBuff.serializeFrom(fileSize);
6454  FW_ASSERT(
6455  _status == Fw::FW_SERIALIZE_OK,
6456  static_cast<FwAssertArgType>(_status)
6457  );
6458 
6459  this->logOut_out(
6460  0,
6461  _id,
6462  _logTime,
6464  _logBuff
6465  );
6466  }
6467 
6468  // Emit the event on the text log port
6469 #if FW_ENABLE_TEXT_LOGGING
6470  if (this->isConnected_logTextOut_OutputPort(0)) {
6471 #if FW_OBJECT_NAMES == 1
6472  const char* _formatString =
6473  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " file data [%" PRIu32 ", +%" PRIu32 "] exceeds file size bound %" PRIu32 ", PDU rejected";
6474 #else
6475  const char* _formatString =
6476  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " file data [%" PRIu32 ", +%" PRIu32 "] exceeds file size bound %" PRIu32 ", PDU rejected";
6477 #endif
6478 
6479  Fw::String cfdpClassStr;
6480  cfdpClass.toString(cfdpClassStr);
6481 
6482  Fw::TextLogString _logString;
6483  (void) _logString.format(
6484  _formatString,
6485 #if FW_OBJECT_NAMES == 1
6486  this->m_objName.toChar(),
6487 #endif
6488  "RxFileDataOutOfBounds ",
6489  cfdpClassStr.toChar(),
6490  srcEid,
6491  seqNum,
6492  offset,
6493  dataSize,
6494  fileSize
6495  );
6496 
6497  this->logTextOut_out(
6498  0,
6499  _id,
6500  _logTime,
6502  _logString
6503  );
6504  }
6505 #endif
6506  }
6507 
6510  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6511  U32 srcEid,
6512  U32 seqNum,
6513  U32 expected,
6514  U32 actual
6515  ) const
6516  {
6517  // Get the time
6518  Fw::Time _logTime;
6519  if (this->isConnected_timeCaller_OutputPort(0)) {
6520  this->timeCaller_out(0, _logTime);
6521  }
6522 
6523  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILESIZEMISMATCH;
6524 
6525  // Emit the event on the log port
6526  if (this->isConnected_logOut_OutputPort(0)) {
6527  Fw::LogBuffer _logBuff;
6529 
6530 #if FW_AMPCS_COMPATIBLE
6531  // Serialize the number of arguments
6532  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6533  FW_ASSERT(
6534  _status == Fw::FW_SERIALIZE_OK,
6535  static_cast<FwAssertArgType>(_status)
6536  );
6537 #endif
6538 
6539 #if FW_AMPCS_COMPATIBLE
6540  // Serialize the argument size
6541  _status = _logBuff.serializeFrom(
6543  );
6544  FW_ASSERT(
6545  _status == Fw::FW_SERIALIZE_OK,
6546  static_cast<FwAssertArgType>(_status)
6547  );
6548 #endif
6549  _status = _logBuff.serializeFrom(cfdpClass);
6550  FW_ASSERT(
6551  _status == Fw::FW_SERIALIZE_OK,
6552  static_cast<FwAssertArgType>(_status)
6553  );
6554 
6555 #if FW_AMPCS_COMPATIBLE
6556  // Serialize the argument size
6557  _status = _logBuff.serializeFrom(
6558  static_cast<U8>(sizeof(U32))
6559  );
6560  FW_ASSERT(
6561  _status == Fw::FW_SERIALIZE_OK,
6562  static_cast<FwAssertArgType>(_status)
6563  );
6564 #endif
6565  _status = _logBuff.serializeFrom(srcEid);
6566  FW_ASSERT(
6567  _status == Fw::FW_SERIALIZE_OK,
6568  static_cast<FwAssertArgType>(_status)
6569  );
6570 
6571 #if FW_AMPCS_COMPATIBLE
6572  // Serialize the argument size
6573  _status = _logBuff.serializeFrom(
6574  static_cast<U8>(sizeof(U32))
6575  );
6576  FW_ASSERT(
6577  _status == Fw::FW_SERIALIZE_OK,
6578  static_cast<FwAssertArgType>(_status)
6579  );
6580 #endif
6581  _status = _logBuff.serializeFrom(seqNum);
6582  FW_ASSERT(
6583  _status == Fw::FW_SERIALIZE_OK,
6584  static_cast<FwAssertArgType>(_status)
6585  );
6586 
6587 #if FW_AMPCS_COMPATIBLE
6588  // Serialize the argument size
6589  _status = _logBuff.serializeFrom(
6590  static_cast<U8>(sizeof(U32))
6591  );
6592  FW_ASSERT(
6593  _status == Fw::FW_SERIALIZE_OK,
6594  static_cast<FwAssertArgType>(_status)
6595  );
6596 #endif
6597  _status = _logBuff.serializeFrom(expected);
6598  FW_ASSERT(
6599  _status == Fw::FW_SERIALIZE_OK,
6600  static_cast<FwAssertArgType>(_status)
6601  );
6602 
6603 #if FW_AMPCS_COMPATIBLE
6604  // Serialize the argument size
6605  _status = _logBuff.serializeFrom(
6606  static_cast<U8>(sizeof(U32))
6607  );
6608  FW_ASSERT(
6609  _status == Fw::FW_SERIALIZE_OK,
6610  static_cast<FwAssertArgType>(_status)
6611  );
6612 #endif
6613  _status = _logBuff.serializeFrom(actual);
6614  FW_ASSERT(
6615  _status == Fw::FW_SERIALIZE_OK,
6616  static_cast<FwAssertArgType>(_status)
6617  );
6618 
6619  this->logOut_out(
6620  0,
6621  _id,
6622  _logTime,
6624  _logBuff
6625  );
6626  }
6627 
6628  // Emit the event on the text log port
6629 #if FW_ENABLE_TEXT_LOGGING
6630  if (this->isConnected_logTextOut_OutputPort(0)) {
6631 #if FW_OBJECT_NAMES == 1
6632  const char* _formatString =
6633  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF file size mismatch: expected %" PRIu32 " got %" PRIu32 "";
6634 #else
6635  const char* _formatString =
6636  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF file size mismatch: expected %" PRIu32 " got %" PRIu32 "";
6637 #endif
6638 
6639  Fw::String cfdpClassStr;
6640  cfdpClass.toString(cfdpClassStr);
6641 
6642  Fw::TextLogString _logString;
6643  (void) _logString.format(
6644  _formatString,
6645 #if FW_OBJECT_NAMES == 1
6646  this->m_objName.toChar(),
6647 #endif
6648  "RxFileSizeMismatch ",
6649  cfdpClassStr.toChar(),
6650  srcEid,
6651  seqNum,
6652  expected,
6653  actual
6654  );
6655 
6656  this->logTextOut_out(
6657  0,
6658  _id,
6659  _logTime,
6661  _logString
6662  );
6663  }
6664 #endif
6665  }
6666 
6669  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6670  U32 srcEid,
6671  U32 seqNum
6672  ) const
6673  {
6674  // Get the time
6675  Fw::Time _logTime;
6676  if (this->isConnected_timeCaller_OutputPort(0)) {
6677  this->timeCaller_out(0, _logTime);
6678  }
6679 
6680  const FwEventIdType _id = this->getIdBase() + EVENTID_RXEOFCANCELRECEIVED;
6681 
6682  // Emit the event on the log port
6683  if (this->isConnected_logOut_OutputPort(0)) {
6684  Fw::LogBuffer _logBuff;
6686 
6687 #if FW_AMPCS_COMPATIBLE
6688  // Serialize the number of arguments
6689  _status = _logBuff.serializeFrom(static_cast<U8>(3));
6690  FW_ASSERT(
6691  _status == Fw::FW_SERIALIZE_OK,
6692  static_cast<FwAssertArgType>(_status)
6693  );
6694 #endif
6695 
6696 #if FW_AMPCS_COMPATIBLE
6697  // Serialize the argument size
6698  _status = _logBuff.serializeFrom(
6700  );
6701  FW_ASSERT(
6702  _status == Fw::FW_SERIALIZE_OK,
6703  static_cast<FwAssertArgType>(_status)
6704  );
6705 #endif
6706  _status = _logBuff.serializeFrom(cfdpClass);
6707  FW_ASSERT(
6708  _status == Fw::FW_SERIALIZE_OK,
6709  static_cast<FwAssertArgType>(_status)
6710  );
6711 
6712 #if FW_AMPCS_COMPATIBLE
6713  // Serialize the argument size
6714  _status = _logBuff.serializeFrom(
6715  static_cast<U8>(sizeof(U32))
6716  );
6717  FW_ASSERT(
6718  _status == Fw::FW_SERIALIZE_OK,
6719  static_cast<FwAssertArgType>(_status)
6720  );
6721 #endif
6722  _status = _logBuff.serializeFrom(srcEid);
6723  FW_ASSERT(
6724  _status == Fw::FW_SERIALIZE_OK,
6725  static_cast<FwAssertArgType>(_status)
6726  );
6727 
6728 #if FW_AMPCS_COMPATIBLE
6729  // Serialize the argument size
6730  _status = _logBuff.serializeFrom(
6731  static_cast<U8>(sizeof(U32))
6732  );
6733  FW_ASSERT(
6734  _status == Fw::FW_SERIALIZE_OK,
6735  static_cast<FwAssertArgType>(_status)
6736  );
6737 #endif
6738  _status = _logBuff.serializeFrom(seqNum);
6739  FW_ASSERT(
6740  _status == Fw::FW_SERIALIZE_OK,
6741  static_cast<FwAssertArgType>(_status)
6742  );
6743 
6744  this->logOut_out(
6745  0,
6746  _id,
6747  _logTime,
6749  _logBuff
6750  );
6751  }
6752 
6753  // Emit the event on the text log port
6754 #if FW_ENABLE_TEXT_LOGGING
6755  if (this->isConnected_logTextOut_OutputPort(0)) {
6756 #if FW_OBJECT_NAMES == 1
6757  const char* _formatString =
6758  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " cancelled by sender";
6759 #else
6760  const char* _formatString =
6761  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " cancelled by sender";
6762 #endif
6763 
6764  Fw::String cfdpClassStr;
6765  cfdpClass.toString(cfdpClassStr);
6766 
6767  Fw::TextLogString _logString;
6768  (void) _logString.format(
6769  _formatString,
6770 #if FW_OBJECT_NAMES == 1
6771  this->m_objName.toChar(),
6772 #endif
6773  "RxEofCancelReceived ",
6774  cfdpClassStr.toChar(),
6775  srcEid,
6776  seqNum
6777  );
6778 
6779  this->logTextOut_out(
6780  0,
6781  _id,
6782  _logTime,
6784  _logString
6785  );
6786  }
6787 #endif
6788  }
6789 
6792  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6793  U32 srcEid,
6794  U32 seqNum,
6795  U8 conditionCode
6796  ) const
6797  {
6798  // Get the time
6799  Fw::Time _logTime;
6800  if (this->isConnected_timeCaller_OutputPort(0)) {
6801  this->timeCaller_out(0, _logTime);
6802  }
6803 
6804  const FwEventIdType _id = this->getIdBase() + EVENTID_RXEOFWITHERROR;
6805 
6806  // Emit the event on the log port
6807  if (this->isConnected_logOut_OutputPort(0)) {
6808  Fw::LogBuffer _logBuff;
6810 
6811 #if FW_AMPCS_COMPATIBLE
6812  // Serialize the number of arguments
6813  _status = _logBuff.serializeFrom(static_cast<U8>(4));
6814  FW_ASSERT(
6815  _status == Fw::FW_SERIALIZE_OK,
6816  static_cast<FwAssertArgType>(_status)
6817  );
6818 #endif
6819 
6820 #if FW_AMPCS_COMPATIBLE
6821  // Serialize the argument size
6822  _status = _logBuff.serializeFrom(
6824  );
6825  FW_ASSERT(
6826  _status == Fw::FW_SERIALIZE_OK,
6827  static_cast<FwAssertArgType>(_status)
6828  );
6829 #endif
6830  _status = _logBuff.serializeFrom(cfdpClass);
6831  FW_ASSERT(
6832  _status == Fw::FW_SERIALIZE_OK,
6833  static_cast<FwAssertArgType>(_status)
6834  );
6835 
6836 #if FW_AMPCS_COMPATIBLE
6837  // Serialize the argument size
6838  _status = _logBuff.serializeFrom(
6839  static_cast<U8>(sizeof(U32))
6840  );
6841  FW_ASSERT(
6842  _status == Fw::FW_SERIALIZE_OK,
6843  static_cast<FwAssertArgType>(_status)
6844  );
6845 #endif
6846  _status = _logBuff.serializeFrom(srcEid);
6847  FW_ASSERT(
6848  _status == Fw::FW_SERIALIZE_OK,
6849  static_cast<FwAssertArgType>(_status)
6850  );
6851 
6852 #if FW_AMPCS_COMPATIBLE
6853  // Serialize the argument size
6854  _status = _logBuff.serializeFrom(
6855  static_cast<U8>(sizeof(U32))
6856  );
6857  FW_ASSERT(
6858  _status == Fw::FW_SERIALIZE_OK,
6859  static_cast<FwAssertArgType>(_status)
6860  );
6861 #endif
6862  _status = _logBuff.serializeFrom(seqNum);
6863  FW_ASSERT(
6864  _status == Fw::FW_SERIALIZE_OK,
6865  static_cast<FwAssertArgType>(_status)
6866  );
6867 
6868 #if FW_AMPCS_COMPATIBLE
6869  // Serialize the argument size
6870  _status = _logBuff.serializeFrom(
6871  static_cast<U8>(sizeof(U8))
6872  );
6873  FW_ASSERT(
6874  _status == Fw::FW_SERIALIZE_OK,
6875  static_cast<FwAssertArgType>(_status)
6876  );
6877 #endif
6878  _status = _logBuff.serializeFrom(conditionCode);
6879  FW_ASSERT(
6880  _status == Fw::FW_SERIALIZE_OK,
6881  static_cast<FwAssertArgType>(_status)
6882  );
6883 
6884  this->logOut_out(
6885  0,
6886  _id,
6887  _logTime,
6889  _logBuff
6890  );
6891  }
6892 
6893  // Emit the event on the text log port
6894 #if FW_ENABLE_TEXT_LOGGING
6895  if (this->isConnected_logTextOut_OutputPort(0)) {
6896 #if FW_OBJECT_NAMES == 1
6897  const char* _formatString =
6898  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received EOF with error condition code %" PRIu8 "";
6899 #else
6900  const char* _formatString =
6901  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received EOF with error condition code %" PRIu8 "";
6902 #endif
6903 
6904  Fw::String cfdpClassStr;
6905  cfdpClass.toString(cfdpClassStr);
6906 
6907  Fw::TextLogString _logString;
6908  (void) _logString.format(
6909  _formatString,
6910 #if FW_OBJECT_NAMES == 1
6911  this->m_objName.toChar(),
6912 #endif
6913  "RxEofWithError ",
6914  cfdpClassStr.toChar(),
6915  srcEid,
6916  seqNum,
6917  conditionCode
6918  );
6919 
6920  this->logTextOut_out(
6921  0,
6922  _id,
6923  _logTime,
6925  _logString
6926  );
6927  }
6928 #endif
6929  }
6930 
6933  const Svc::Ccsds::Cfdp::Class& cfdpClass,
6934  U32 srcEid,
6935  U32 seqNum,
6936  U32 offset,
6937  I32 status
6938  ) const
6939  {
6940  // Get the time
6941  Fw::Time _logTime;
6942  if (this->isConnected_timeCaller_OutputPort(0)) {
6943  this->timeCaller_out(0, _logTime);
6944  }
6945 
6946  const FwEventIdType _id = this->getIdBase() + EVENTID_RXSEEKCRCFAILED;
6947 
6948  // Emit the event on the log port
6949  if (this->isConnected_logOut_OutputPort(0)) {
6950  Fw::LogBuffer _logBuff;
6952 
6953 #if FW_AMPCS_COMPATIBLE
6954  // Serialize the number of arguments
6955  _status = _logBuff.serializeFrom(static_cast<U8>(5));
6956  FW_ASSERT(
6957  _status == Fw::FW_SERIALIZE_OK,
6958  static_cast<FwAssertArgType>(_status)
6959  );
6960 #endif
6961 
6962 #if FW_AMPCS_COMPATIBLE
6963  // Serialize the argument size
6964  _status = _logBuff.serializeFrom(
6966  );
6967  FW_ASSERT(
6968  _status == Fw::FW_SERIALIZE_OK,
6969  static_cast<FwAssertArgType>(_status)
6970  );
6971 #endif
6972  _status = _logBuff.serializeFrom(cfdpClass);
6973  FW_ASSERT(
6974  _status == Fw::FW_SERIALIZE_OK,
6975  static_cast<FwAssertArgType>(_status)
6976  );
6977 
6978 #if FW_AMPCS_COMPATIBLE
6979  // Serialize the argument size
6980  _status = _logBuff.serializeFrom(
6981  static_cast<U8>(sizeof(U32))
6982  );
6983  FW_ASSERT(
6984  _status == Fw::FW_SERIALIZE_OK,
6985  static_cast<FwAssertArgType>(_status)
6986  );
6987 #endif
6988  _status = _logBuff.serializeFrom(srcEid);
6989  FW_ASSERT(
6990  _status == Fw::FW_SERIALIZE_OK,
6991  static_cast<FwAssertArgType>(_status)
6992  );
6993 
6994 #if FW_AMPCS_COMPATIBLE
6995  // Serialize the argument size
6996  _status = _logBuff.serializeFrom(
6997  static_cast<U8>(sizeof(U32))
6998  );
6999  FW_ASSERT(
7000  _status == Fw::FW_SERIALIZE_OK,
7001  static_cast<FwAssertArgType>(_status)
7002  );
7003 #endif
7004  _status = _logBuff.serializeFrom(seqNum);
7005  FW_ASSERT(
7006  _status == Fw::FW_SERIALIZE_OK,
7007  static_cast<FwAssertArgType>(_status)
7008  );
7009 
7010 #if FW_AMPCS_COMPATIBLE
7011  // Serialize the argument size
7012  _status = _logBuff.serializeFrom(
7013  static_cast<U8>(sizeof(U32))
7014  );
7015  FW_ASSERT(
7016  _status == Fw::FW_SERIALIZE_OK,
7017  static_cast<FwAssertArgType>(_status)
7018  );
7019 #endif
7020  _status = _logBuff.serializeFrom(offset);
7021  FW_ASSERT(
7022  _status == Fw::FW_SERIALIZE_OK,
7023  static_cast<FwAssertArgType>(_status)
7024  );
7025 
7026 #if FW_AMPCS_COMPATIBLE
7027  // Serialize the argument size
7028  _status = _logBuff.serializeFrom(
7029  static_cast<U8>(sizeof(I32))
7030  );
7031  FW_ASSERT(
7032  _status == Fw::FW_SERIALIZE_OK,
7033  static_cast<FwAssertArgType>(_status)
7034  );
7035 #endif
7036  _status = _logBuff.serializeFrom(status);
7037  FW_ASSERT(
7038  _status == Fw::FW_SERIALIZE_OK,
7039  static_cast<FwAssertArgType>(_status)
7040  );
7041 
7042  this->logOut_out(
7043  0,
7044  _id,
7045  _logTime,
7047  _logBuff
7048  );
7049  }
7050 
7051  // Emit the event on the text log port
7052 #if FW_ENABLE_TEXT_LOGGING
7053  if (this->isConnected_logTextOut_OutputPort(0)) {
7054 #if FW_OBJECT_NAMES == 1
7055  const char* _formatString =
7056  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek offset %" PRIu32 " during CRC calculation, error=%" PRIi32 "";
7057 #else
7058  const char* _formatString =
7059  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek offset %" PRIu32 " during CRC calculation, error=%" PRIi32 "";
7060 #endif
7061 
7062  Fw::String cfdpClassStr;
7063  cfdpClass.toString(cfdpClassStr);
7064 
7065  Fw::TextLogString _logString;
7066  (void) _logString.format(
7067  _formatString,
7068 #if FW_OBJECT_NAMES == 1
7069  this->m_objName.toChar(),
7070 #endif
7071  "RxSeekCrcFailed ",
7072  cfdpClassStr.toChar(),
7073  srcEid,
7074  seqNum,
7075  offset,
7076  status
7077  );
7078 
7079  this->logTextOut_out(
7080  0,
7081  _id,
7082  _logTime,
7084  _logString
7085  );
7086  }
7087 #endif
7088  }
7089 
7092  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7093  U32 srcEid,
7094  U32 seqNum,
7095  U32 expected,
7096  I32 actual
7097  ) const
7098  {
7099  // Get the time
7100  Fw::Time _logTime;
7101  if (this->isConnected_timeCaller_OutputPort(0)) {
7102  this->timeCaller_out(0, _logTime);
7103  }
7104 
7105  const FwEventIdType _id = this->getIdBase() + EVENTID_RXREADCRCFAILED;
7106 
7107  // Emit the event on the log port
7108  if (this->isConnected_logOut_OutputPort(0)) {
7109  Fw::LogBuffer _logBuff;
7111 
7112 #if FW_AMPCS_COMPATIBLE
7113  // Serialize the number of arguments
7114  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7115  FW_ASSERT(
7116  _status == Fw::FW_SERIALIZE_OK,
7117  static_cast<FwAssertArgType>(_status)
7118  );
7119 #endif
7120 
7121 #if FW_AMPCS_COMPATIBLE
7122  // Serialize the argument size
7123  _status = _logBuff.serializeFrom(
7125  );
7126  FW_ASSERT(
7127  _status == Fw::FW_SERIALIZE_OK,
7128  static_cast<FwAssertArgType>(_status)
7129  );
7130 #endif
7131  _status = _logBuff.serializeFrom(cfdpClass);
7132  FW_ASSERT(
7133  _status == Fw::FW_SERIALIZE_OK,
7134  static_cast<FwAssertArgType>(_status)
7135  );
7136 
7137 #if FW_AMPCS_COMPATIBLE
7138  // Serialize the argument size
7139  _status = _logBuff.serializeFrom(
7140  static_cast<U8>(sizeof(U32))
7141  );
7142  FW_ASSERT(
7143  _status == Fw::FW_SERIALIZE_OK,
7144  static_cast<FwAssertArgType>(_status)
7145  );
7146 #endif
7147  _status = _logBuff.serializeFrom(srcEid);
7148  FW_ASSERT(
7149  _status == Fw::FW_SERIALIZE_OK,
7150  static_cast<FwAssertArgType>(_status)
7151  );
7152 
7153 #if FW_AMPCS_COMPATIBLE
7154  // Serialize the argument size
7155  _status = _logBuff.serializeFrom(
7156  static_cast<U8>(sizeof(U32))
7157  );
7158  FW_ASSERT(
7159  _status == Fw::FW_SERIALIZE_OK,
7160  static_cast<FwAssertArgType>(_status)
7161  );
7162 #endif
7163  _status = _logBuff.serializeFrom(seqNum);
7164  FW_ASSERT(
7165  _status == Fw::FW_SERIALIZE_OK,
7166  static_cast<FwAssertArgType>(_status)
7167  );
7168 
7169 #if FW_AMPCS_COMPATIBLE
7170  // Serialize the argument size
7171  _status = _logBuff.serializeFrom(
7172  static_cast<U8>(sizeof(U32))
7173  );
7174  FW_ASSERT(
7175  _status == Fw::FW_SERIALIZE_OK,
7176  static_cast<FwAssertArgType>(_status)
7177  );
7178 #endif
7179  _status = _logBuff.serializeFrom(expected);
7180  FW_ASSERT(
7181  _status == Fw::FW_SERIALIZE_OK,
7182  static_cast<FwAssertArgType>(_status)
7183  );
7184 
7185 #if FW_AMPCS_COMPATIBLE
7186  // Serialize the argument size
7187  _status = _logBuff.serializeFrom(
7188  static_cast<U8>(sizeof(I32))
7189  );
7190  FW_ASSERT(
7191  _status == Fw::FW_SERIALIZE_OK,
7192  static_cast<FwAssertArgType>(_status)
7193  );
7194 #endif
7195  _status = _logBuff.serializeFrom(actual);
7196  FW_ASSERT(
7197  _status == Fw::FW_SERIALIZE_OK,
7198  static_cast<FwAssertArgType>(_status)
7199  );
7200 
7201  this->logOut_out(
7202  0,
7203  _id,
7204  _logTime,
7206  _logBuff
7207  );
7208  }
7209 
7210  // Emit the event on the text log port
7211 #if FW_ENABLE_TEXT_LOGGING
7212  if (this->isConnected_logTextOut_OutputPort(0)) {
7213 #if FW_OBJECT_NAMES == 1
7214  const char* _formatString =
7215  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to read during CRC calculation: expected %" PRIu32 " bytes, got %" PRIi32 "";
7216 #else
7217  const char* _formatString =
7218  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to read during CRC calculation: expected %" PRIu32 " bytes, got %" PRIi32 "";
7219 #endif
7220 
7221  Fw::String cfdpClassStr;
7222  cfdpClass.toString(cfdpClassStr);
7223 
7224  Fw::TextLogString _logString;
7225  (void) _logString.format(
7226  _formatString,
7227 #if FW_OBJECT_NAMES == 1
7228  this->m_objName.toChar(),
7229 #endif
7230  "RxReadCrcFailed ",
7231  cfdpClassStr.toChar(),
7232  srcEid,
7233  seqNum,
7234  expected,
7235  actual
7236  );
7237 
7238  this->logTextOut_out(
7239  0,
7240  _id,
7241  _logTime,
7243  _logString
7244  );
7245  }
7246 #endif
7247  }
7248 
7251  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7252  U32 srcEid,
7253  U32 seqNum,
7254  U32 mdSize,
7255  U32 eofSize
7256  ) const
7257  {
7258  // Get the time
7259  Fw::Time _logTime;
7260  if (this->isConnected_timeCaller_OutputPort(0)) {
7261  this->timeCaller_out(0, _logTime);
7262  }
7263 
7264  const FwEventIdType _id = this->getIdBase() + EVENTID_RXEOFMDSIZEMISMATCH;
7265 
7266  // Emit the event on the log port
7267  if (this->isConnected_logOut_OutputPort(0)) {
7268  Fw::LogBuffer _logBuff;
7270 
7271 #if FW_AMPCS_COMPATIBLE
7272  // Serialize the number of arguments
7273  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7274  FW_ASSERT(
7275  _status == Fw::FW_SERIALIZE_OK,
7276  static_cast<FwAssertArgType>(_status)
7277  );
7278 #endif
7279 
7280 #if FW_AMPCS_COMPATIBLE
7281  // Serialize the argument size
7282  _status = _logBuff.serializeFrom(
7284  );
7285  FW_ASSERT(
7286  _status == Fw::FW_SERIALIZE_OK,
7287  static_cast<FwAssertArgType>(_status)
7288  );
7289 #endif
7290  _status = _logBuff.serializeFrom(cfdpClass);
7291  FW_ASSERT(
7292  _status == Fw::FW_SERIALIZE_OK,
7293  static_cast<FwAssertArgType>(_status)
7294  );
7295 
7296 #if FW_AMPCS_COMPATIBLE
7297  // Serialize the argument size
7298  _status = _logBuff.serializeFrom(
7299  static_cast<U8>(sizeof(U32))
7300  );
7301  FW_ASSERT(
7302  _status == Fw::FW_SERIALIZE_OK,
7303  static_cast<FwAssertArgType>(_status)
7304  );
7305 #endif
7306  _status = _logBuff.serializeFrom(srcEid);
7307  FW_ASSERT(
7308  _status == Fw::FW_SERIALIZE_OK,
7309  static_cast<FwAssertArgType>(_status)
7310  );
7311 
7312 #if FW_AMPCS_COMPATIBLE
7313  // Serialize the argument size
7314  _status = _logBuff.serializeFrom(
7315  static_cast<U8>(sizeof(U32))
7316  );
7317  FW_ASSERT(
7318  _status == Fw::FW_SERIALIZE_OK,
7319  static_cast<FwAssertArgType>(_status)
7320  );
7321 #endif
7322  _status = _logBuff.serializeFrom(seqNum);
7323  FW_ASSERT(
7324  _status == Fw::FW_SERIALIZE_OK,
7325  static_cast<FwAssertArgType>(_status)
7326  );
7327 
7328 #if FW_AMPCS_COMPATIBLE
7329  // Serialize the argument size
7330  _status = _logBuff.serializeFrom(
7331  static_cast<U8>(sizeof(U32))
7332  );
7333  FW_ASSERT(
7334  _status == Fw::FW_SERIALIZE_OK,
7335  static_cast<FwAssertArgType>(_status)
7336  );
7337 #endif
7338  _status = _logBuff.serializeFrom(mdSize);
7339  FW_ASSERT(
7340  _status == Fw::FW_SERIALIZE_OK,
7341  static_cast<FwAssertArgType>(_status)
7342  );
7343 
7344 #if FW_AMPCS_COMPATIBLE
7345  // Serialize the argument size
7346  _status = _logBuff.serializeFrom(
7347  static_cast<U8>(sizeof(U32))
7348  );
7349  FW_ASSERT(
7350  _status == Fw::FW_SERIALIZE_OK,
7351  static_cast<FwAssertArgType>(_status)
7352  );
7353 #endif
7354  _status = _logBuff.serializeFrom(eofSize);
7355  FW_ASSERT(
7356  _status == Fw::FW_SERIALIZE_OK,
7357  static_cast<FwAssertArgType>(_status)
7358  );
7359 
7360  this->logOut_out(
7361  0,
7362  _id,
7363  _logTime,
7365  _logBuff
7366  );
7367  }
7368 
7369  // Emit the event on the text log port
7370 #if FW_ENABLE_TEXT_LOGGING
7371  if (this->isConnected_logTextOut_OutputPort(0)) {
7372 #if FW_OBJECT_NAMES == 1
7373  const char* _formatString =
7374  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF/metadata size mismatch: metadata=%" PRIu32 ", EOF=%" PRIu32 "";
7375 #else
7376  const char* _formatString =
7377  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " EOF/metadata size mismatch: metadata=%" PRIu32 ", EOF=%" PRIu32 "";
7378 #endif
7379 
7380  Fw::String cfdpClassStr;
7381  cfdpClass.toString(cfdpClassStr);
7382 
7383  Fw::TextLogString _logString;
7384  (void) _logString.format(
7385  _formatString,
7386 #if FW_OBJECT_NAMES == 1
7387  this->m_objName.toChar(),
7388 #endif
7389  "RxEofMdSizeMismatch ",
7390  cfdpClassStr.toChar(),
7391  srcEid,
7392  seqNum,
7393  mdSize,
7394  eofSize
7395  );
7396 
7397  this->logTextOut_out(
7398  0,
7399  _id,
7400  _logTime,
7402  _logString
7403  );
7404  }
7405 #endif
7406  }
7407 
7410  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7411  U32 srcEid,
7412  U32 seqNum,
7413  const Fw::StringBase& tempFile,
7414  const Fw::StringBase& finalFile,
7415  I32 status
7416  ) const
7417  {
7418  // Get the time
7419  Fw::Time _logTime;
7420  if (this->isConnected_timeCaller_OutputPort(0)) {
7421  this->timeCaller_out(0, _logTime);
7422  }
7423 
7424  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILERENAMEFAILED;
7425 
7426  // Emit the event on the log port
7427  if (this->isConnected_logOut_OutputPort(0)) {
7428  Fw::LogBuffer _logBuff;
7430 
7431 #if FW_AMPCS_COMPATIBLE
7432  // Serialize the number of arguments
7433  _status = _logBuff.serializeFrom(static_cast<U8>(6));
7434  FW_ASSERT(
7435  _status == Fw::FW_SERIALIZE_OK,
7436  static_cast<FwAssertArgType>(_status)
7437  );
7438 #endif
7439 
7440 #if FW_AMPCS_COMPATIBLE
7441  // Serialize the argument size
7442  _status = _logBuff.serializeFrom(
7444  );
7445  FW_ASSERT(
7446  _status == Fw::FW_SERIALIZE_OK,
7447  static_cast<FwAssertArgType>(_status)
7448  );
7449 #endif
7450  _status = _logBuff.serializeFrom(cfdpClass);
7451  FW_ASSERT(
7452  _status == Fw::FW_SERIALIZE_OK,
7453  static_cast<FwAssertArgType>(_status)
7454  );
7455 
7456 #if FW_AMPCS_COMPATIBLE
7457  // Serialize the argument size
7458  _status = _logBuff.serializeFrom(
7459  static_cast<U8>(sizeof(U32))
7460  );
7461  FW_ASSERT(
7462  _status == Fw::FW_SERIALIZE_OK,
7463  static_cast<FwAssertArgType>(_status)
7464  );
7465 #endif
7466  _status = _logBuff.serializeFrom(srcEid);
7467  FW_ASSERT(
7468  _status == Fw::FW_SERIALIZE_OK,
7469  static_cast<FwAssertArgType>(_status)
7470  );
7471 
7472 #if FW_AMPCS_COMPATIBLE
7473  // Serialize the argument size
7474  _status = _logBuff.serializeFrom(
7475  static_cast<U8>(sizeof(U32))
7476  );
7477  FW_ASSERT(
7478  _status == Fw::FW_SERIALIZE_OK,
7479  static_cast<FwAssertArgType>(_status)
7480  );
7481 #endif
7482  _status = _logBuff.serializeFrom(seqNum);
7483  FW_ASSERT(
7484  _status == Fw::FW_SERIALIZE_OK,
7485  static_cast<FwAssertArgType>(_status)
7486  );
7487 
7488  _status = tempFile.serializeTo(
7489  _logBuff,
7490  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
7491  );
7492  FW_ASSERT(
7493  _status == Fw::FW_SERIALIZE_OK,
7494  static_cast<FwAssertArgType>(_status)
7495  );
7496 
7497  _status = finalFile.serializeTo(
7498  _logBuff,
7499  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
7500  );
7501  FW_ASSERT(
7502  _status == Fw::FW_SERIALIZE_OK,
7503  static_cast<FwAssertArgType>(_status)
7504  );
7505 
7506 #if FW_AMPCS_COMPATIBLE
7507  // Serialize the argument size
7508  _status = _logBuff.serializeFrom(
7509  static_cast<U8>(sizeof(I32))
7510  );
7511  FW_ASSERT(
7512  _status == Fw::FW_SERIALIZE_OK,
7513  static_cast<FwAssertArgType>(_status)
7514  );
7515 #endif
7516  _status = _logBuff.serializeFrom(status);
7517  FW_ASSERT(
7518  _status == Fw::FW_SERIALIZE_OK,
7519  static_cast<FwAssertArgType>(_status)
7520  );
7521 
7522  this->logOut_out(
7523  0,
7524  _id,
7525  _logTime,
7527  _logBuff
7528  );
7529  }
7530 
7531  // Emit the event on the text log port
7532 #if FW_ENABLE_TEXT_LOGGING
7533  if (this->isConnected_logTextOut_OutputPort(0)) {
7534 #if FW_OBJECT_NAMES == 1
7535  const char* _formatString =
7536  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to rename %s to %s, error=%" PRIi32 "";
7537 #else
7538  const char* _formatString =
7539  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to rename %s to %s, error=%" PRIi32 "";
7540 #endif
7541 
7542  Fw::String cfdpClassStr;
7543  cfdpClass.toString(cfdpClassStr);
7544 
7545  Fw::TextLogString _logString;
7546  (void) _logString.format(
7547  _formatString,
7548 #if FW_OBJECT_NAMES == 1
7549  this->m_objName.toChar(),
7550 #endif
7551  "RxFileRenameFailed ",
7552  cfdpClassStr.toChar(),
7553  srcEid,
7554  seqNum,
7555  tempFile.toChar(),
7556  finalFile.toChar(),
7557  status
7558  );
7559 
7560  this->logTextOut_out(
7561  0,
7562  _id,
7563  _logTime,
7565  _logString
7566  );
7567  }
7568 #endif
7569  }
7570 
7573  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7574  U32 srcEid,
7575  U32 seqNum,
7576  const Fw::StringBase& filename,
7577  I32 status
7578  ) const
7579  {
7580  // Get the time
7581  Fw::Time _logTime;
7582  if (this->isConnected_timeCaller_OutputPort(0)) {
7583  this->timeCaller_out(0, _logTime);
7584  }
7585 
7586  const FwEventIdType _id = this->getIdBase() + EVENTID_RXFILEREOPENFAILED;
7587 
7588  // Emit the event on the log port
7589  if (this->isConnected_logOut_OutputPort(0)) {
7590  Fw::LogBuffer _logBuff;
7592 
7593 #if FW_AMPCS_COMPATIBLE
7594  // Serialize the number of arguments
7595  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7596  FW_ASSERT(
7597  _status == Fw::FW_SERIALIZE_OK,
7598  static_cast<FwAssertArgType>(_status)
7599  );
7600 #endif
7601 
7602 #if FW_AMPCS_COMPATIBLE
7603  // Serialize the argument size
7604  _status = _logBuff.serializeFrom(
7606  );
7607  FW_ASSERT(
7608  _status == Fw::FW_SERIALIZE_OK,
7609  static_cast<FwAssertArgType>(_status)
7610  );
7611 #endif
7612  _status = _logBuff.serializeFrom(cfdpClass);
7613  FW_ASSERT(
7614  _status == Fw::FW_SERIALIZE_OK,
7615  static_cast<FwAssertArgType>(_status)
7616  );
7617 
7618 #if FW_AMPCS_COMPATIBLE
7619  // Serialize the argument size
7620  _status = _logBuff.serializeFrom(
7621  static_cast<U8>(sizeof(U32))
7622  );
7623  FW_ASSERT(
7624  _status == Fw::FW_SERIALIZE_OK,
7625  static_cast<FwAssertArgType>(_status)
7626  );
7627 #endif
7628  _status = _logBuff.serializeFrom(srcEid);
7629  FW_ASSERT(
7630  _status == Fw::FW_SERIALIZE_OK,
7631  static_cast<FwAssertArgType>(_status)
7632  );
7633 
7634 #if FW_AMPCS_COMPATIBLE
7635  // Serialize the argument size
7636  _status = _logBuff.serializeFrom(
7637  static_cast<U8>(sizeof(U32))
7638  );
7639  FW_ASSERT(
7640  _status == Fw::FW_SERIALIZE_OK,
7641  static_cast<FwAssertArgType>(_status)
7642  );
7643 #endif
7644  _status = _logBuff.serializeFrom(seqNum);
7645  FW_ASSERT(
7646  _status == Fw::FW_SERIALIZE_OK,
7647  static_cast<FwAssertArgType>(_status)
7648  );
7649 
7650  _status = filename.serializeTo(
7651  _logBuff,
7652  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
7653  );
7654  FW_ASSERT(
7655  _status == Fw::FW_SERIALIZE_OK,
7656  static_cast<FwAssertArgType>(_status)
7657  );
7658 
7659 #if FW_AMPCS_COMPATIBLE
7660  // Serialize the argument size
7661  _status = _logBuff.serializeFrom(
7662  static_cast<U8>(sizeof(I32))
7663  );
7664  FW_ASSERT(
7665  _status == Fw::FW_SERIALIZE_OK,
7666  static_cast<FwAssertArgType>(_status)
7667  );
7668 #endif
7669  _status = _logBuff.serializeFrom(status);
7670  FW_ASSERT(
7671  _status == Fw::FW_SERIALIZE_OK,
7672  static_cast<FwAssertArgType>(_status)
7673  );
7674 
7675  this->logOut_out(
7676  0,
7677  _id,
7678  _logTime,
7680  _logBuff
7681  );
7682  }
7683 
7684  // Emit the event on the text log port
7685 #if FW_ENABLE_TEXT_LOGGING
7686  if (this->isConnected_logTextOut_OutputPort(0)) {
7687 #if FW_OBJECT_NAMES == 1
7688  const char* _formatString =
7689  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to reopen file %s after rename, error=%" PRIi32 "";
7690 #else
7691  const char* _formatString =
7692  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " failed to reopen file %s after rename, error=%" PRIi32 "";
7693 #endif
7694 
7695  Fw::String cfdpClassStr;
7696  cfdpClass.toString(cfdpClassStr);
7697 
7698  Fw::TextLogString _logString;
7699  (void) _logString.format(
7700  _formatString,
7701 #if FW_OBJECT_NAMES == 1
7702  this->m_objName.toChar(),
7703 #endif
7704  "RxFileReopenFailed ",
7705  cfdpClassStr.toChar(),
7706  srcEid,
7707  seqNum,
7708  filename.toChar(),
7709  status
7710  );
7711 
7712  this->logTextOut_out(
7713  0,
7714  _id,
7715  _logTime,
7717  _logString
7718  );
7719  }
7720 #endif
7721  }
7722 
7725  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7726  U32 srcEid,
7727  U32 seqNum
7728  ) const
7729  {
7730  // Get the time
7731  Fw::Time _logTime;
7732  if (this->isConnected_timeCaller_OutputPort(0)) {
7733  this->timeCaller_out(0, _logTime);
7734  }
7735 
7736  const FwEventIdType _id = this->getIdBase() + EVENTID_RXINACTIVITYTIMEOUT;
7737 
7738  // Emit the event on the log port
7739  if (this->isConnected_logOut_OutputPort(0)) {
7740  Fw::LogBuffer _logBuff;
7742 
7743 #if FW_AMPCS_COMPATIBLE
7744  // Serialize the number of arguments
7745  _status = _logBuff.serializeFrom(static_cast<U8>(3));
7746  FW_ASSERT(
7747  _status == Fw::FW_SERIALIZE_OK,
7748  static_cast<FwAssertArgType>(_status)
7749  );
7750 #endif
7751 
7752 #if FW_AMPCS_COMPATIBLE
7753  // Serialize the argument size
7754  _status = _logBuff.serializeFrom(
7756  );
7757  FW_ASSERT(
7758  _status == Fw::FW_SERIALIZE_OK,
7759  static_cast<FwAssertArgType>(_status)
7760  );
7761 #endif
7762  _status = _logBuff.serializeFrom(cfdpClass);
7763  FW_ASSERT(
7764  _status == Fw::FW_SERIALIZE_OK,
7765  static_cast<FwAssertArgType>(_status)
7766  );
7767 
7768 #if FW_AMPCS_COMPATIBLE
7769  // Serialize the argument size
7770  _status = _logBuff.serializeFrom(
7771  static_cast<U8>(sizeof(U32))
7772  );
7773  FW_ASSERT(
7774  _status == Fw::FW_SERIALIZE_OK,
7775  static_cast<FwAssertArgType>(_status)
7776  );
7777 #endif
7778  _status = _logBuff.serializeFrom(srcEid);
7779  FW_ASSERT(
7780  _status == Fw::FW_SERIALIZE_OK,
7781  static_cast<FwAssertArgType>(_status)
7782  );
7783 
7784 #if FW_AMPCS_COMPATIBLE
7785  // Serialize the argument size
7786  _status = _logBuff.serializeFrom(
7787  static_cast<U8>(sizeof(U32))
7788  );
7789  FW_ASSERT(
7790  _status == Fw::FW_SERIALIZE_OK,
7791  static_cast<FwAssertArgType>(_status)
7792  );
7793 #endif
7794  _status = _logBuff.serializeFrom(seqNum);
7795  FW_ASSERT(
7796  _status == Fw::FW_SERIALIZE_OK,
7797  static_cast<FwAssertArgType>(_status)
7798  );
7799 
7800  this->logOut_out(
7801  0,
7802  _id,
7803  _logTime,
7805  _logBuff
7806  );
7807  }
7808 
7809  // Emit the event on the text log port
7810 #if FW_ENABLE_TEXT_LOGGING
7811  if (this->isConnected_logTextOut_OutputPort(0)) {
7812 #if FW_OBJECT_NAMES == 1
7813  const char* _formatString =
7814  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
7815 #else
7816  const char* _formatString =
7817  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
7818 #endif
7819 
7820  Fw::String cfdpClassStr;
7821  cfdpClass.toString(cfdpClassStr);
7822 
7823  Fw::TextLogString _logString;
7824  (void) _logString.format(
7825  _formatString,
7826 #if FW_OBJECT_NAMES == 1
7827  this->m_objName.toChar(),
7828 #endif
7829  "RxInactivityTimeout ",
7830  cfdpClassStr.toChar(),
7831  srcEid,
7832  seqNum
7833  );
7834 
7835  this->logTextOut_out(
7836  0,
7837  _id,
7838  _logTime,
7840  _logString
7841  );
7842  }
7843 #endif
7844  }
7845 
7848  const Svc::Ccsds::Cfdp::Class& cfdpClass,
7849  U32 srcEid,
7850  U32 seqNum,
7851  U8 directiveCode,
7852  U8 substate
7853  ) const
7854  {
7855  // Get the time
7856  Fw::Time _logTime;
7857  if (this->isConnected_timeCaller_OutputPort(0)) {
7858  this->timeCaller_out(0, _logTime);
7859  }
7860 
7862 
7863  // Emit the event on the log port
7864  if (this->isConnected_logOut_OutputPort(0)) {
7865  Fw::LogBuffer _logBuff;
7867 
7868 #if FW_AMPCS_COMPATIBLE
7869  // Serialize the number of arguments
7870  _status = _logBuff.serializeFrom(static_cast<U8>(5));
7871  FW_ASSERT(
7872  _status == Fw::FW_SERIALIZE_OK,
7873  static_cast<FwAssertArgType>(_status)
7874  );
7875 #endif
7876 
7877 #if FW_AMPCS_COMPATIBLE
7878  // Serialize the argument size
7879  _status = _logBuff.serializeFrom(
7881  );
7882  FW_ASSERT(
7883  _status == Fw::FW_SERIALIZE_OK,
7884  static_cast<FwAssertArgType>(_status)
7885  );
7886 #endif
7887  _status = _logBuff.serializeFrom(cfdpClass);
7888  FW_ASSERT(
7889  _status == Fw::FW_SERIALIZE_OK,
7890  static_cast<FwAssertArgType>(_status)
7891  );
7892 
7893 #if FW_AMPCS_COMPATIBLE
7894  // Serialize the argument size
7895  _status = _logBuff.serializeFrom(
7896  static_cast<U8>(sizeof(U32))
7897  );
7898  FW_ASSERT(
7899  _status == Fw::FW_SERIALIZE_OK,
7900  static_cast<FwAssertArgType>(_status)
7901  );
7902 #endif
7903  _status = _logBuff.serializeFrom(srcEid);
7904  FW_ASSERT(
7905  _status == Fw::FW_SERIALIZE_OK,
7906  static_cast<FwAssertArgType>(_status)
7907  );
7908 
7909 #if FW_AMPCS_COMPATIBLE
7910  // Serialize the argument size
7911  _status = _logBuff.serializeFrom(
7912  static_cast<U8>(sizeof(U32))
7913  );
7914  FW_ASSERT(
7915  _status == Fw::FW_SERIALIZE_OK,
7916  static_cast<FwAssertArgType>(_status)
7917  );
7918 #endif
7919  _status = _logBuff.serializeFrom(seqNum);
7920  FW_ASSERT(
7921  _status == Fw::FW_SERIALIZE_OK,
7922  static_cast<FwAssertArgType>(_status)
7923  );
7924 
7925 #if FW_AMPCS_COMPATIBLE
7926  // Serialize the argument size
7927  _status = _logBuff.serializeFrom(
7928  static_cast<U8>(sizeof(U8))
7929  );
7930  FW_ASSERT(
7931  _status == Fw::FW_SERIALIZE_OK,
7932  static_cast<FwAssertArgType>(_status)
7933  );
7934 #endif
7935  _status = _logBuff.serializeFrom(directiveCode);
7936  FW_ASSERT(
7937  _status == Fw::FW_SERIALIZE_OK,
7938  static_cast<FwAssertArgType>(_status)
7939  );
7940 
7941 #if FW_AMPCS_COMPATIBLE
7942  // Serialize the argument size
7943  _status = _logBuff.serializeFrom(
7944  static_cast<U8>(sizeof(U8))
7945  );
7946  FW_ASSERT(
7947  _status == Fw::FW_SERIALIZE_OK,
7948  static_cast<FwAssertArgType>(_status)
7949  );
7950 #endif
7951  _status = _logBuff.serializeFrom(substate);
7952  FW_ASSERT(
7953  _status == Fw::FW_SERIALIZE_OK,
7954  static_cast<FwAssertArgType>(_status)
7955  );
7956 
7957  this->logOut_out(
7958  0,
7959  _id,
7960  _logTime,
7962  _logBuff
7963  );
7964  }
7965 
7966  // Emit the event on the text log port
7967 #if FW_ENABLE_TEXT_LOGGING
7968  if (this->isConnected_logTextOut_OutputPort(0)) {
7969 #if FW_OBJECT_NAMES == 1
7970  const char* _formatString =
7971  "(%s) %s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
7972 #else
7973  const char* _formatString =
7974  "%s: RX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
7975 #endif
7976 
7977  Fw::String cfdpClassStr;
7978  cfdpClass.toString(cfdpClassStr);
7979 
7980  Fw::TextLogString _logString;
7981  (void) _logString.format(
7982  _formatString,
7983 #if FW_OBJECT_NAMES == 1
7984  this->m_objName.toChar(),
7985 #endif
7986  "RxInvalidDirectiveCode ",
7987  cfdpClassStr.toChar(),
7988  srcEid,
7989  seqNum,
7990  directiveCode,
7991  substate
7992  );
7993 
7994  this->logTextOut_out(
7995  0,
7996  _id,
7997  _logTime,
7999  _logString
8000  );
8001  }
8002 #endif
8003  }
8004 
8007  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8008  U32 srcEid,
8009  U32 seqNum
8010  ) const
8011  {
8012  // Get the time
8013  Fw::Time _logTime;
8014  if (this->isConnected_timeCaller_OutputPort(0)) {
8015  this->timeCaller_out(0, _logTime);
8016  }
8017 
8018  const FwEventIdType _id = this->getIdBase() + EVENTID_TXACKLIMITREACHED;
8019 
8020  // Emit the event on the log port
8021  if (this->isConnected_logOut_OutputPort(0)) {
8022  Fw::LogBuffer _logBuff;
8024 
8025 #if FW_AMPCS_COMPATIBLE
8026  // Serialize the number of arguments
8027  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8028  FW_ASSERT(
8029  _status == Fw::FW_SERIALIZE_OK,
8030  static_cast<FwAssertArgType>(_status)
8031  );
8032 #endif
8033 
8034 #if FW_AMPCS_COMPATIBLE
8035  // Serialize the argument size
8036  _status = _logBuff.serializeFrom(
8038  );
8039  FW_ASSERT(
8040  _status == Fw::FW_SERIALIZE_OK,
8041  static_cast<FwAssertArgType>(_status)
8042  );
8043 #endif
8044  _status = _logBuff.serializeFrom(cfdpClass);
8045  FW_ASSERT(
8046  _status == Fw::FW_SERIALIZE_OK,
8047  static_cast<FwAssertArgType>(_status)
8048  );
8049 
8050 #if FW_AMPCS_COMPATIBLE
8051  // Serialize the argument size
8052  _status = _logBuff.serializeFrom(
8053  static_cast<U8>(sizeof(U32))
8054  );
8055  FW_ASSERT(
8056  _status == Fw::FW_SERIALIZE_OK,
8057  static_cast<FwAssertArgType>(_status)
8058  );
8059 #endif
8060  _status = _logBuff.serializeFrom(srcEid);
8061  FW_ASSERT(
8062  _status == Fw::FW_SERIALIZE_OK,
8063  static_cast<FwAssertArgType>(_status)
8064  );
8065 
8066 #if FW_AMPCS_COMPATIBLE
8067  // Serialize the argument size
8068  _status = _logBuff.serializeFrom(
8069  static_cast<U8>(sizeof(U32))
8070  );
8071  FW_ASSERT(
8072  _status == Fw::FW_SERIALIZE_OK,
8073  static_cast<FwAssertArgType>(_status)
8074  );
8075 #endif
8076  _status = _logBuff.serializeFrom(seqNum);
8077  FW_ASSERT(
8078  _status == Fw::FW_SERIALIZE_OK,
8079  static_cast<FwAssertArgType>(_status)
8080  );
8081 
8082  this->logOut_out(
8083  0,
8084  _id,
8085  _logTime,
8087  _logBuff
8088  );
8089  }
8090 
8091  // Emit the event on the text log port
8092 #if FW_ENABLE_TEXT_LOGGING
8093  if (this->isConnected_logTextOut_OutputPort(0)) {
8094 #if FW_OBJECT_NAMES == 1
8095  const char* _formatString =
8096  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " ACK limit reached, no eof-ack received";
8097 #else
8098  const char* _formatString =
8099  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " ACK limit reached, no eof-ack received";
8100 #endif
8101 
8102  Fw::String cfdpClassStr;
8103  cfdpClass.toString(cfdpClassStr);
8104 
8105  Fw::TextLogString _logString;
8106  (void) _logString.format(
8107  _formatString,
8108 #if FW_OBJECT_NAMES == 1
8109  this->m_objName.toChar(),
8110 #endif
8111  "TxAckLimitReached ",
8112  cfdpClassStr.toChar(),
8113  srcEid,
8114  seqNum
8115  );
8116 
8117  this->logTextOut_out(
8118  0,
8119  _id,
8120  _logTime,
8122  _logString
8123  );
8124  }
8125 #endif
8126  }
8127 
8130  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8131  U32 srcEid,
8132  U32 seqNum
8133  ) const
8134  {
8135  // Get the time
8136  Fw::Time _logTime;
8137  if (this->isConnected_timeCaller_OutputPort(0)) {
8138  this->timeCaller_out(0, _logTime);
8139  }
8140 
8141  const FwEventIdType _id = this->getIdBase() + EVENTID_TXINACTIVITYTIMEOUT;
8142 
8143  // Emit the event on the log port
8144  if (this->isConnected_logOut_OutputPort(0)) {
8145  Fw::LogBuffer _logBuff;
8147 
8148 #if FW_AMPCS_COMPATIBLE
8149  // Serialize the number of arguments
8150  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8151  FW_ASSERT(
8152  _status == Fw::FW_SERIALIZE_OK,
8153  static_cast<FwAssertArgType>(_status)
8154  );
8155 #endif
8156 
8157 #if FW_AMPCS_COMPATIBLE
8158  // Serialize the argument size
8159  _status = _logBuff.serializeFrom(
8161  );
8162  FW_ASSERT(
8163  _status == Fw::FW_SERIALIZE_OK,
8164  static_cast<FwAssertArgType>(_status)
8165  );
8166 #endif
8167  _status = _logBuff.serializeFrom(cfdpClass);
8168  FW_ASSERT(
8169  _status == Fw::FW_SERIALIZE_OK,
8170  static_cast<FwAssertArgType>(_status)
8171  );
8172 
8173 #if FW_AMPCS_COMPATIBLE
8174  // Serialize the argument size
8175  _status = _logBuff.serializeFrom(
8176  static_cast<U8>(sizeof(U32))
8177  );
8178  FW_ASSERT(
8179  _status == Fw::FW_SERIALIZE_OK,
8180  static_cast<FwAssertArgType>(_status)
8181  );
8182 #endif
8183  _status = _logBuff.serializeFrom(srcEid);
8184  FW_ASSERT(
8185  _status == Fw::FW_SERIALIZE_OK,
8186  static_cast<FwAssertArgType>(_status)
8187  );
8188 
8189 #if FW_AMPCS_COMPATIBLE
8190  // Serialize the argument size
8191  _status = _logBuff.serializeFrom(
8192  static_cast<U8>(sizeof(U32))
8193  );
8194  FW_ASSERT(
8195  _status == Fw::FW_SERIALIZE_OK,
8196  static_cast<FwAssertArgType>(_status)
8197  );
8198 #endif
8199  _status = _logBuff.serializeFrom(seqNum);
8200  FW_ASSERT(
8201  _status == Fw::FW_SERIALIZE_OK,
8202  static_cast<FwAssertArgType>(_status)
8203  );
8204 
8205  this->logOut_out(
8206  0,
8207  _id,
8208  _logTime,
8210  _logBuff
8211  );
8212  }
8213 
8214  // Emit the event on the text log port
8215 #if FW_ENABLE_TEXT_LOGGING
8216  if (this->isConnected_logTextOut_OutputPort(0)) {
8217 #if FW_OBJECT_NAMES == 1
8218  const char* _formatString =
8219  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
8220 #else
8221  const char* _formatString =
8222  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " inactivity timer expired";
8223 #endif
8224 
8225  Fw::String cfdpClassStr;
8226  cfdpClass.toString(cfdpClassStr);
8227 
8228  Fw::TextLogString _logString;
8229  (void) _logString.format(
8230  _formatString,
8231 #if FW_OBJECT_NAMES == 1
8232  this->m_objName.toChar(),
8233 #endif
8234  "TxInactivityTimeout ",
8235  cfdpClassStr.toChar(),
8236  srcEid,
8237  seqNum
8238  );
8239 
8240  this->logTextOut_out(
8241  0,
8242  _id,
8243  _logTime,
8245  _logString
8246  );
8247  }
8248 #endif
8249  }
8250 
8253  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8254  U32 srcEid,
8255  U32 seqNum,
8256  const Fw::StringBase& filename
8257  ) const
8258  {
8259  // Get the time
8260  Fw::Time _logTime;
8261  if (this->isConnected_timeCaller_OutputPort(0)) {
8262  this->timeCaller_out(0, _logTime);
8263  }
8264 
8265  const FwEventIdType _id = this->getIdBase() + EVENTID_TXZEROLENGTHFILE;
8266 
8267  // Emit the event on the log port
8268  if (this->isConnected_logOut_OutputPort(0)) {
8269  Fw::LogBuffer _logBuff;
8271 
8272 #if FW_AMPCS_COMPATIBLE
8273  // Serialize the number of arguments
8274  _status = _logBuff.serializeFrom(static_cast<U8>(4));
8275  FW_ASSERT(
8276  _status == Fw::FW_SERIALIZE_OK,
8277  static_cast<FwAssertArgType>(_status)
8278  );
8279 #endif
8280 
8281 #if FW_AMPCS_COMPATIBLE
8282  // Serialize the argument size
8283  _status = _logBuff.serializeFrom(
8285  );
8286  FW_ASSERT(
8287  _status == Fw::FW_SERIALIZE_OK,
8288  static_cast<FwAssertArgType>(_status)
8289  );
8290 #endif
8291  _status = _logBuff.serializeFrom(cfdpClass);
8292  FW_ASSERT(
8293  _status == Fw::FW_SERIALIZE_OK,
8294  static_cast<FwAssertArgType>(_status)
8295  );
8296 
8297 #if FW_AMPCS_COMPATIBLE
8298  // Serialize the argument size
8299  _status = _logBuff.serializeFrom(
8300  static_cast<U8>(sizeof(U32))
8301  );
8302  FW_ASSERT(
8303  _status == Fw::FW_SERIALIZE_OK,
8304  static_cast<FwAssertArgType>(_status)
8305  );
8306 #endif
8307  _status = _logBuff.serializeFrom(srcEid);
8308  FW_ASSERT(
8309  _status == Fw::FW_SERIALIZE_OK,
8310  static_cast<FwAssertArgType>(_status)
8311  );
8312 
8313 #if FW_AMPCS_COMPATIBLE
8314  // Serialize the argument size
8315  _status = _logBuff.serializeFrom(
8316  static_cast<U8>(sizeof(U32))
8317  );
8318  FW_ASSERT(
8319  _status == Fw::FW_SERIALIZE_OK,
8320  static_cast<FwAssertArgType>(_status)
8321  );
8322 #endif
8323  _status = _logBuff.serializeFrom(seqNum);
8324  FW_ASSERT(
8325  _status == Fw::FW_SERIALIZE_OK,
8326  static_cast<FwAssertArgType>(_status)
8327  );
8328 
8329  _status = filename.serializeTo(
8330  _logBuff,
8331  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
8332  );
8333  FW_ASSERT(
8334  _status == Fw::FW_SERIALIZE_OK,
8335  static_cast<FwAssertArgType>(_status)
8336  );
8337 
8338  this->logOut_out(
8339  0,
8340  _id,
8341  _logTime,
8343  _logBuff
8344  );
8345  }
8346 
8347  // Emit the event on the text log port
8348 #if FW_ENABLE_TEXT_LOGGING
8349  if (this->isConnected_logTextOut_OutputPort(0)) {
8350 #if FW_OBJECT_NAMES == 1
8351  const char* _formatString =
8352  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " cannot transfer zero-length file %s";
8353 #else
8354  const char* _formatString =
8355  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " cannot transfer zero-length file %s";
8356 #endif
8357 
8358  Fw::String cfdpClassStr;
8359  cfdpClass.toString(cfdpClassStr);
8360 
8361  Fw::TextLogString _logString;
8362  (void) _logString.format(
8363  _formatString,
8364 #if FW_OBJECT_NAMES == 1
8365  this->m_objName.toChar(),
8366 #endif
8367  "TxZeroLengthFile ",
8368  cfdpClassStr.toChar(),
8369  srcEid,
8370  seqNum,
8371  filename.toChar()
8372  );
8373 
8374  this->logTextOut_out(
8375  0,
8376  _id,
8377  _logTime,
8379  _logString
8380  );
8381  }
8382 #endif
8383  }
8384 
8387  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8388  U32 srcEid,
8389  U32 seqNum,
8390  const Fw::StringBase& filename,
8391  I32 status
8392  ) const
8393  {
8394  // Get the time
8395  Fw::Time _logTime;
8396  if (this->isConnected_timeCaller_OutputPort(0)) {
8397  this->timeCaller_out(0, _logTime);
8398  }
8399 
8400  const FwEventIdType _id = this->getIdBase() + EVENTID_TXFILEOPENFAILED;
8401 
8402  // Emit the event on the log port
8403  if (this->isConnected_logOut_OutputPort(0)) {
8404  Fw::LogBuffer _logBuff;
8406 
8407 #if FW_AMPCS_COMPATIBLE
8408  // Serialize the number of arguments
8409  _status = _logBuff.serializeFrom(static_cast<U8>(5));
8410  FW_ASSERT(
8411  _status == Fw::FW_SERIALIZE_OK,
8412  static_cast<FwAssertArgType>(_status)
8413  );
8414 #endif
8415 
8416 #if FW_AMPCS_COMPATIBLE
8417  // Serialize the argument size
8418  _status = _logBuff.serializeFrom(
8420  );
8421  FW_ASSERT(
8422  _status == Fw::FW_SERIALIZE_OK,
8423  static_cast<FwAssertArgType>(_status)
8424  );
8425 #endif
8426  _status = _logBuff.serializeFrom(cfdpClass);
8427  FW_ASSERT(
8428  _status == Fw::FW_SERIALIZE_OK,
8429  static_cast<FwAssertArgType>(_status)
8430  );
8431 
8432 #if FW_AMPCS_COMPATIBLE
8433  // Serialize the argument size
8434  _status = _logBuff.serializeFrom(
8435  static_cast<U8>(sizeof(U32))
8436  );
8437  FW_ASSERT(
8438  _status == Fw::FW_SERIALIZE_OK,
8439  static_cast<FwAssertArgType>(_status)
8440  );
8441 #endif
8442  _status = _logBuff.serializeFrom(srcEid);
8443  FW_ASSERT(
8444  _status == Fw::FW_SERIALIZE_OK,
8445  static_cast<FwAssertArgType>(_status)
8446  );
8447 
8448 #if FW_AMPCS_COMPATIBLE
8449  // Serialize the argument size
8450  _status = _logBuff.serializeFrom(
8451  static_cast<U8>(sizeof(U32))
8452  );
8453  FW_ASSERT(
8454  _status == Fw::FW_SERIALIZE_OK,
8455  static_cast<FwAssertArgType>(_status)
8456  );
8457 #endif
8458  _status = _logBuff.serializeFrom(seqNum);
8459  FW_ASSERT(
8460  _status == Fw::FW_SERIALIZE_OK,
8461  static_cast<FwAssertArgType>(_status)
8462  );
8463 
8464  _status = filename.serializeTo(
8465  _logBuff,
8466  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
8467  );
8468  FW_ASSERT(
8469  _status == Fw::FW_SERIALIZE_OK,
8470  static_cast<FwAssertArgType>(_status)
8471  );
8472 
8473 #if FW_AMPCS_COMPATIBLE
8474  // Serialize the argument size
8475  _status = _logBuff.serializeFrom(
8476  static_cast<U8>(sizeof(I32))
8477  );
8478  FW_ASSERT(
8479  _status == Fw::FW_SERIALIZE_OK,
8480  static_cast<FwAssertArgType>(_status)
8481  );
8482 #endif
8483  _status = _logBuff.serializeFrom(status);
8484  FW_ASSERT(
8485  _status == Fw::FW_SERIALIZE_OK,
8486  static_cast<FwAssertArgType>(_status)
8487  );
8488 
8489  this->logOut_out(
8490  0,
8491  _id,
8492  _logTime,
8494  _logBuff
8495  );
8496  }
8497 
8498  // Emit the event on the text log port
8499 #if FW_ENABLE_TEXT_LOGGING
8500  if (this->isConnected_logTextOut_OutputPort(0)) {
8501 #if FW_OBJECT_NAMES == 1
8502  const char* _formatString =
8503  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to open file %s, error=%" PRIi32 "";
8504 #else
8505  const char* _formatString =
8506  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to open file %s, error=%" PRIi32 "";
8507 #endif
8508 
8509  Fw::String cfdpClassStr;
8510  cfdpClass.toString(cfdpClassStr);
8511 
8512  Fw::TextLogString _logString;
8513  (void) _logString.format(
8514  _formatString,
8515 #if FW_OBJECT_NAMES == 1
8516  this->m_objName.toChar(),
8517 #endif
8518  "TxFileOpenFailed ",
8519  cfdpClassStr.toChar(),
8520  srcEid,
8521  seqNum,
8522  filename.toChar(),
8523  status
8524  );
8525 
8526  this->logTextOut_out(
8527  0,
8528  _id,
8529  _logTime,
8531  _logString
8532  );
8533  }
8534 #endif
8535  }
8536 
8539  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8540  U32 srcEid,
8541  U32 seqNum,
8542  I32 status
8543  ) const
8544  {
8545  // Get the time
8546  Fw::Time _logTime;
8547  if (this->isConnected_timeCaller_OutputPort(0)) {
8548  this->timeCaller_out(0, _logTime);
8549  }
8550 
8551  const FwEventIdType _id = this->getIdBase() + EVENTID_TXFILESEEKFAILED;
8552 
8553  // Emit the event on the log port
8554  if (this->isConnected_logOut_OutputPort(0)) {
8555  Fw::LogBuffer _logBuff;
8557 
8558 #if FW_AMPCS_COMPATIBLE
8559  // Serialize the number of arguments
8560  _status = _logBuff.serializeFrom(static_cast<U8>(4));
8561  FW_ASSERT(
8562  _status == Fw::FW_SERIALIZE_OK,
8563  static_cast<FwAssertArgType>(_status)
8564  );
8565 #endif
8566 
8567 #if FW_AMPCS_COMPATIBLE
8568  // Serialize the argument size
8569  _status = _logBuff.serializeFrom(
8571  );
8572  FW_ASSERT(
8573  _status == Fw::FW_SERIALIZE_OK,
8574  static_cast<FwAssertArgType>(_status)
8575  );
8576 #endif
8577  _status = _logBuff.serializeFrom(cfdpClass);
8578  FW_ASSERT(
8579  _status == Fw::FW_SERIALIZE_OK,
8580  static_cast<FwAssertArgType>(_status)
8581  );
8582 
8583 #if FW_AMPCS_COMPATIBLE
8584  // Serialize the argument size
8585  _status = _logBuff.serializeFrom(
8586  static_cast<U8>(sizeof(U32))
8587  );
8588  FW_ASSERT(
8589  _status == Fw::FW_SERIALIZE_OK,
8590  static_cast<FwAssertArgType>(_status)
8591  );
8592 #endif
8593  _status = _logBuff.serializeFrom(srcEid);
8594  FW_ASSERT(
8595  _status == Fw::FW_SERIALIZE_OK,
8596  static_cast<FwAssertArgType>(_status)
8597  );
8598 
8599 #if FW_AMPCS_COMPATIBLE
8600  // Serialize the argument size
8601  _status = _logBuff.serializeFrom(
8602  static_cast<U8>(sizeof(U32))
8603  );
8604  FW_ASSERT(
8605  _status == Fw::FW_SERIALIZE_OK,
8606  static_cast<FwAssertArgType>(_status)
8607  );
8608 #endif
8609  _status = _logBuff.serializeFrom(seqNum);
8610  FW_ASSERT(
8611  _status == Fw::FW_SERIALIZE_OK,
8612  static_cast<FwAssertArgType>(_status)
8613  );
8614 
8615 #if FW_AMPCS_COMPATIBLE
8616  // Serialize the argument size
8617  _status = _logBuff.serializeFrom(
8618  static_cast<U8>(sizeof(I32))
8619  );
8620  FW_ASSERT(
8621  _status == Fw::FW_SERIALIZE_OK,
8622  static_cast<FwAssertArgType>(_status)
8623  );
8624 #endif
8625  _status = _logBuff.serializeFrom(status);
8626  FW_ASSERT(
8627  _status == Fw::FW_SERIALIZE_OK,
8628  static_cast<FwAssertArgType>(_status)
8629  );
8630 
8631  this->logOut_out(
8632  0,
8633  _id,
8634  _logTime,
8636  _logBuff
8637  );
8638  }
8639 
8640  // Emit the event on the text log port
8641 #if FW_ENABLE_TEXT_LOGGING
8642  if (this->isConnected_logTextOut_OutputPort(0)) {
8643 #if FW_OBJECT_NAMES == 1
8644  const char* _formatString =
8645  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to beginning of file, error=%" PRIi32 "";
8646 #else
8647  const char* _formatString =
8648  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to seek to beginning of file, error=%" PRIi32 "";
8649 #endif
8650 
8651  Fw::String cfdpClassStr;
8652  cfdpClass.toString(cfdpClassStr);
8653 
8654  Fw::TextLogString _logString;
8655  (void) _logString.format(
8656  _formatString,
8657 #if FW_OBJECT_NAMES == 1
8658  this->m_objName.toChar(),
8659 #endif
8660  "TxFileSeekFailed ",
8661  cfdpClassStr.toChar(),
8662  srcEid,
8663  seqNum,
8664  status
8665  );
8666 
8667  this->logTextOut_out(
8668  0,
8669  _id,
8670  _logTime,
8672  _logString
8673  );
8674  }
8675 #endif
8676  }
8677 
8680  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8681  U32 srcEid,
8682  U32 seqNum
8683  ) const
8684  {
8685  // Get the time
8686  Fw::Time _logTime;
8687  if (this->isConnected_timeCaller_OutputPort(0)) {
8688  this->timeCaller_out(0, _logTime);
8689  }
8690 
8692 
8693  // Emit the event on the log port
8694  if (this->isConnected_logOut_OutputPort(0)) {
8695  Fw::LogBuffer _logBuff;
8697 
8698 #if FW_AMPCS_COMPATIBLE
8699  // Serialize the number of arguments
8700  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8701  FW_ASSERT(
8702  _status == Fw::FW_SERIALIZE_OK,
8703  static_cast<FwAssertArgType>(_status)
8704  );
8705 #endif
8706 
8707 #if FW_AMPCS_COMPATIBLE
8708  // Serialize the argument size
8709  _status = _logBuff.serializeFrom(
8711  );
8712  FW_ASSERT(
8713  _status == Fw::FW_SERIALIZE_OK,
8714  static_cast<FwAssertArgType>(_status)
8715  );
8716 #endif
8717  _status = _logBuff.serializeFrom(cfdpClass);
8718  FW_ASSERT(
8719  _status == Fw::FW_SERIALIZE_OK,
8720  static_cast<FwAssertArgType>(_status)
8721  );
8722 
8723 #if FW_AMPCS_COMPATIBLE
8724  // Serialize the argument size
8725  _status = _logBuff.serializeFrom(
8726  static_cast<U8>(sizeof(U32))
8727  );
8728  FW_ASSERT(
8729  _status == Fw::FW_SERIALIZE_OK,
8730  static_cast<FwAssertArgType>(_status)
8731  );
8732 #endif
8733  _status = _logBuff.serializeFrom(srcEid);
8734  FW_ASSERT(
8735  _status == Fw::FW_SERIALIZE_OK,
8736  static_cast<FwAssertArgType>(_status)
8737  );
8738 
8739 #if FW_AMPCS_COMPATIBLE
8740  // Serialize the argument size
8741  _status = _logBuff.serializeFrom(
8742  static_cast<U8>(sizeof(U32))
8743  );
8744  FW_ASSERT(
8745  _status == Fw::FW_SERIALIZE_OK,
8746  static_cast<FwAssertArgType>(_status)
8747  );
8748 #endif
8749  _status = _logBuff.serializeFrom(seqNum);
8750  FW_ASSERT(
8751  _status == Fw::FW_SERIALIZE_OK,
8752  static_cast<FwAssertArgType>(_status)
8753  );
8754 
8755  this->logOut_out(
8756  0,
8757  _id,
8758  _logTime,
8760  _logBuff
8761  );
8762  }
8763 
8764  // Emit the event on the text log port
8765 #if FW_ENABLE_TEXT_LOGGING
8766  if (this->isConnected_logTextOut_OutputPort(0)) {
8767 #if FW_OBJECT_NAMES == 1
8768  const char* _formatString =
8769  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to send metadata PDU";
8770 #else
8771  const char* _formatString =
8772  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " failed to send metadata PDU";
8773 #endif
8774 
8775  Fw::String cfdpClassStr;
8776  cfdpClass.toString(cfdpClassStr);
8777 
8778  Fw::TextLogString _logString;
8779  (void) _logString.format(
8780  _formatString,
8781 #if FW_OBJECT_NAMES == 1
8782  this->m_objName.toChar(),
8783 #endif
8784  "TxSendMetadataFailed ",
8785  cfdpClassStr.toChar(),
8786  srcEid,
8787  seqNum
8788  );
8789 
8790  this->logTextOut_out(
8791  0,
8792  _id,
8793  _logTime,
8795  _logString
8796  );
8797  }
8798 #endif
8799  }
8800 
8803  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8804  U32 srcEid,
8805  U32 seqNum
8806  ) const
8807  {
8808  // Get the time
8809  Fw::Time _logTime;
8810  if (this->isConnected_timeCaller_OutputPort(0)) {
8811  this->timeCaller_out(0, _logTime);
8812  }
8813 
8814  const FwEventIdType _id = this->getIdBase() + EVENTID_TXEARLYFINRECEIVED;
8815 
8816  // Emit the event on the log port
8817  if (this->isConnected_logOut_OutputPort(0)) {
8818  Fw::LogBuffer _logBuff;
8820 
8821 #if FW_AMPCS_COMPATIBLE
8822  // Serialize the number of arguments
8823  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8824  FW_ASSERT(
8825  _status == Fw::FW_SERIALIZE_OK,
8826  static_cast<FwAssertArgType>(_status)
8827  );
8828 #endif
8829 
8830 #if FW_AMPCS_COMPATIBLE
8831  // Serialize the argument size
8832  _status = _logBuff.serializeFrom(
8834  );
8835  FW_ASSERT(
8836  _status == Fw::FW_SERIALIZE_OK,
8837  static_cast<FwAssertArgType>(_status)
8838  );
8839 #endif
8840  _status = _logBuff.serializeFrom(cfdpClass);
8841  FW_ASSERT(
8842  _status == Fw::FW_SERIALIZE_OK,
8843  static_cast<FwAssertArgType>(_status)
8844  );
8845 
8846 #if FW_AMPCS_COMPATIBLE
8847  // Serialize the argument size
8848  _status = _logBuff.serializeFrom(
8849  static_cast<U8>(sizeof(U32))
8850  );
8851  FW_ASSERT(
8852  _status == Fw::FW_SERIALIZE_OK,
8853  static_cast<FwAssertArgType>(_status)
8854  );
8855 #endif
8856  _status = _logBuff.serializeFrom(srcEid);
8857  FW_ASSERT(
8858  _status == Fw::FW_SERIALIZE_OK,
8859  static_cast<FwAssertArgType>(_status)
8860  );
8861 
8862 #if FW_AMPCS_COMPATIBLE
8863  // Serialize the argument size
8864  _status = _logBuff.serializeFrom(
8865  static_cast<U8>(sizeof(U32))
8866  );
8867  FW_ASSERT(
8868  _status == Fw::FW_SERIALIZE_OK,
8869  static_cast<FwAssertArgType>(_status)
8870  );
8871 #endif
8872  _status = _logBuff.serializeFrom(seqNum);
8873  FW_ASSERT(
8874  _status == Fw::FW_SERIALIZE_OK,
8875  static_cast<FwAssertArgType>(_status)
8876  );
8877 
8878  this->logOut_out(
8879  0,
8880  _id,
8881  _logTime,
8883  _logBuff
8884  );
8885  }
8886 
8887  // Emit the event on the text log port
8888 #if FW_ENABLE_TEXT_LOGGING
8889  if (this->isConnected_logTextOut_OutputPort(0)) {
8890 #if FW_OBJECT_NAMES == 1
8891  const char* _formatString =
8892  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received early FIN, cancelling transfer";
8893 #else
8894  const char* _formatString =
8895  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received early FIN, cancelling transfer";
8896 #endif
8897 
8898  Fw::String cfdpClassStr;
8899  cfdpClass.toString(cfdpClassStr);
8900 
8901  Fw::TextLogString _logString;
8902  (void) _logString.format(
8903  _formatString,
8904 #if FW_OBJECT_NAMES == 1
8905  this->m_objName.toChar(),
8906 #endif
8907  "TxEarlyFinReceived ",
8908  cfdpClassStr.toChar(),
8909  srcEid,
8910  seqNum
8911  );
8912 
8913  this->logTextOut_out(
8914  0,
8915  _id,
8916  _logTime,
8918  _logString
8919  );
8920  }
8921 #endif
8922  }
8923 
8926  const Svc::Ccsds::Cfdp::Class& cfdpClass,
8927  U32 srcEid,
8928  U32 seqNum
8929  ) const
8930  {
8931  // Get the time
8932  Fw::Time _logTime;
8933  if (this->isConnected_timeCaller_OutputPort(0)) {
8934  this->timeCaller_out(0, _logTime);
8935  }
8936 
8937  const FwEventIdType _id = this->getIdBase() + EVENTID_TXINVALIDNAKPDU;
8938 
8939  // Emit the event on the log port
8940  if (this->isConnected_logOut_OutputPort(0)) {
8941  Fw::LogBuffer _logBuff;
8943 
8944 #if FW_AMPCS_COMPATIBLE
8945  // Serialize the number of arguments
8946  _status = _logBuff.serializeFrom(static_cast<U8>(3));
8947  FW_ASSERT(
8948  _status == Fw::FW_SERIALIZE_OK,
8949  static_cast<FwAssertArgType>(_status)
8950  );
8951 #endif
8952 
8953 #if FW_AMPCS_COMPATIBLE
8954  // Serialize the argument size
8955  _status = _logBuff.serializeFrom(
8957  );
8958  FW_ASSERT(
8959  _status == Fw::FW_SERIALIZE_OK,
8960  static_cast<FwAssertArgType>(_status)
8961  );
8962 #endif
8963  _status = _logBuff.serializeFrom(cfdpClass);
8964  FW_ASSERT(
8965  _status == Fw::FW_SERIALIZE_OK,
8966  static_cast<FwAssertArgType>(_status)
8967  );
8968 
8969 #if FW_AMPCS_COMPATIBLE
8970  // Serialize the argument size
8971  _status = _logBuff.serializeFrom(
8972  static_cast<U8>(sizeof(U32))
8973  );
8974  FW_ASSERT(
8975  _status == Fw::FW_SERIALIZE_OK,
8976  static_cast<FwAssertArgType>(_status)
8977  );
8978 #endif
8979  _status = _logBuff.serializeFrom(srcEid);
8980  FW_ASSERT(
8981  _status == Fw::FW_SERIALIZE_OK,
8982  static_cast<FwAssertArgType>(_status)
8983  );
8984 
8985 #if FW_AMPCS_COMPATIBLE
8986  // Serialize the argument size
8987  _status = _logBuff.serializeFrom(
8988  static_cast<U8>(sizeof(U32))
8989  );
8990  FW_ASSERT(
8991  _status == Fw::FW_SERIALIZE_OK,
8992  static_cast<FwAssertArgType>(_status)
8993  );
8994 #endif
8995  _status = _logBuff.serializeFrom(seqNum);
8996  FW_ASSERT(
8997  _status == Fw::FW_SERIALIZE_OK,
8998  static_cast<FwAssertArgType>(_status)
8999  );
9000 
9001  this->logOut_out(
9002  0,
9003  _id,
9004  _logTime,
9006  _logBuff
9007  );
9008  }
9009 
9010  // Emit the event on the text log port
9011 #if FW_ENABLE_TEXT_LOGGING
9012  if (this->isConnected_logTextOut_OutputPort(0)) {
9013 #if FW_OBJECT_NAMES == 1
9014  const char* _formatString =
9015  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid NAK PDU";
9016 #else
9017  const char* _formatString =
9018  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid NAK PDU";
9019 #endif
9020 
9021  Fw::String cfdpClassStr;
9022  cfdpClass.toString(cfdpClassStr);
9023 
9024  Fw::TextLogString _logString;
9025  (void) _logString.format(
9026  _formatString,
9027 #if FW_OBJECT_NAMES == 1
9028  this->m_objName.toChar(),
9029 #endif
9030  "TxInvalidNakPdu ",
9031  cfdpClassStr.toChar(),
9032  srcEid,
9033  seqNum
9034  );
9035 
9036  this->logTextOut_out(
9037  0,
9038  _id,
9039  _logTime,
9041  _logString
9042  );
9043  }
9044 #endif
9045  }
9046 
9049  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9050  U32 srcEid,
9051  U32 seqNum,
9052  U32 badCount
9053  ) const
9054  {
9055  // Get the time
9056  Fw::Time _logTime;
9057  if (this->isConnected_timeCaller_OutputPort(0)) {
9058  this->timeCaller_out(0, _logTime);
9059  }
9060 
9062 
9063  // Emit the event on the log port
9064  if (this->isConnected_logOut_OutputPort(0)) {
9065  Fw::LogBuffer _logBuff;
9067 
9068 #if FW_AMPCS_COMPATIBLE
9069  // Serialize the number of arguments
9070  _status = _logBuff.serializeFrom(static_cast<U8>(4));
9071  FW_ASSERT(
9072  _status == Fw::FW_SERIALIZE_OK,
9073  static_cast<FwAssertArgType>(_status)
9074  );
9075 #endif
9076 
9077 #if FW_AMPCS_COMPATIBLE
9078  // Serialize the argument size
9079  _status = _logBuff.serializeFrom(
9081  );
9082  FW_ASSERT(
9083  _status == Fw::FW_SERIALIZE_OK,
9084  static_cast<FwAssertArgType>(_status)
9085  );
9086 #endif
9087  _status = _logBuff.serializeFrom(cfdpClass);
9088  FW_ASSERT(
9089  _status == Fw::FW_SERIALIZE_OK,
9090  static_cast<FwAssertArgType>(_status)
9091  );
9092 
9093 #if FW_AMPCS_COMPATIBLE
9094  // Serialize the argument size
9095  _status = _logBuff.serializeFrom(
9096  static_cast<U8>(sizeof(U32))
9097  );
9098  FW_ASSERT(
9099  _status == Fw::FW_SERIALIZE_OK,
9100  static_cast<FwAssertArgType>(_status)
9101  );
9102 #endif
9103  _status = _logBuff.serializeFrom(srcEid);
9104  FW_ASSERT(
9105  _status == Fw::FW_SERIALIZE_OK,
9106  static_cast<FwAssertArgType>(_status)
9107  );
9108 
9109 #if FW_AMPCS_COMPATIBLE
9110  // Serialize the argument size
9111  _status = _logBuff.serializeFrom(
9112  static_cast<U8>(sizeof(U32))
9113  );
9114  FW_ASSERT(
9115  _status == Fw::FW_SERIALIZE_OK,
9116  static_cast<FwAssertArgType>(_status)
9117  );
9118 #endif
9119  _status = _logBuff.serializeFrom(seqNum);
9120  FW_ASSERT(
9121  _status == Fw::FW_SERIALIZE_OK,
9122  static_cast<FwAssertArgType>(_status)
9123  );
9124 
9125 #if FW_AMPCS_COMPATIBLE
9126  // Serialize the argument size
9127  _status = _logBuff.serializeFrom(
9128  static_cast<U8>(sizeof(U32))
9129  );
9130  FW_ASSERT(
9131  _status == Fw::FW_SERIALIZE_OK,
9132  static_cast<FwAssertArgType>(_status)
9133  );
9134 #endif
9135  _status = _logBuff.serializeFrom(badCount);
9136  FW_ASSERT(
9137  _status == Fw::FW_SERIALIZE_OK,
9138  static_cast<FwAssertArgType>(_status)
9139  );
9140 
9141  this->logOut_out(
9142  0,
9143  _id,
9144  _logTime,
9146  _logBuff
9147  );
9148  }
9149 
9150  // Emit the event on the text log port
9151 #if FW_ENABLE_TEXT_LOGGING
9152  if (this->isConnected_logTextOut_OutputPort(0)) {
9153 #if FW_OBJECT_NAMES == 1
9154  const char* _formatString =
9155  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received %" PRIu32 " invalid NAK segment requests";
9156 #else
9157  const char* _formatString =
9158  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received %" PRIu32 " invalid NAK segment requests";
9159 #endif
9160 
9161  Fw::String cfdpClassStr;
9162  cfdpClass.toString(cfdpClassStr);
9163 
9164  Fw::TextLogString _logString;
9165  (void) _logString.format(
9166  _formatString,
9167 #if FW_OBJECT_NAMES == 1
9168  this->m_objName.toChar(),
9169 #endif
9170  "TxInvalidSegmentRequests ",
9171  cfdpClassStr.toChar(),
9172  srcEid,
9173  seqNum,
9174  badCount
9175  );
9176 
9177  this->logTextOut_out(
9178  0,
9179  _id,
9180  _logTime,
9182  _logString
9183  );
9184  }
9185 #endif
9186  }
9187 
9190  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9191  U32 srcEid,
9192  U32 seqNum
9193  ) const
9194  {
9195  // Get the time
9196  Fw::Time _logTime;
9197  if (this->isConnected_timeCaller_OutputPort(0)) {
9198  this->timeCaller_out(0, _logTime);
9199  }
9200 
9202 
9203  // Emit the event on the log port
9204  if (this->isConnected_logOut_OutputPort(0)) {
9205  Fw::LogBuffer _logBuff;
9207 
9208 #if FW_AMPCS_COMPATIBLE
9209  // Serialize the number of arguments
9210  _status = _logBuff.serializeFrom(static_cast<U8>(3));
9211  FW_ASSERT(
9212  _status == Fw::FW_SERIALIZE_OK,
9213  static_cast<FwAssertArgType>(_status)
9214  );
9215 #endif
9216 
9217 #if FW_AMPCS_COMPATIBLE
9218  // Serialize the argument size
9219  _status = _logBuff.serializeFrom(
9221  );
9222  FW_ASSERT(
9223  _status == Fw::FW_SERIALIZE_OK,
9224  static_cast<FwAssertArgType>(_status)
9225  );
9226 #endif
9227  _status = _logBuff.serializeFrom(cfdpClass);
9228  FW_ASSERT(
9229  _status == Fw::FW_SERIALIZE_OK,
9230  static_cast<FwAssertArgType>(_status)
9231  );
9232 
9233 #if FW_AMPCS_COMPATIBLE
9234  // Serialize the argument size
9235  _status = _logBuff.serializeFrom(
9236  static_cast<U8>(sizeof(U32))
9237  );
9238  FW_ASSERT(
9239  _status == Fw::FW_SERIALIZE_OK,
9240  static_cast<FwAssertArgType>(_status)
9241  );
9242 #endif
9243  _status = _logBuff.serializeFrom(srcEid);
9244  FW_ASSERT(
9245  _status == Fw::FW_SERIALIZE_OK,
9246  static_cast<FwAssertArgType>(_status)
9247  );
9248 
9249 #if FW_AMPCS_COMPATIBLE
9250  // Serialize the argument size
9251  _status = _logBuff.serializeFrom(
9252  static_cast<U8>(sizeof(U32))
9253  );
9254  FW_ASSERT(
9255  _status == Fw::FW_SERIALIZE_OK,
9256  static_cast<FwAssertArgType>(_status)
9257  );
9258 #endif
9259  _status = _logBuff.serializeFrom(seqNum);
9260  FW_ASSERT(
9261  _status == Fw::FW_SERIALIZE_OK,
9262  static_cast<FwAssertArgType>(_status)
9263  );
9264 
9265  this->logOut_out(
9266  0,
9267  _id,
9268  _logTime,
9270  _logBuff
9271  );
9272  }
9273 
9274  // Emit the event on the text log port
9275 #if FW_ENABLE_TEXT_LOGGING
9276  if (this->isConnected_logTextOut_OutputPort(0)) {
9277 #if FW_OBJECT_NAMES == 1
9278  const char* _formatString =
9279  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received non-file-directive PDU";
9280 #else
9281  const char* _formatString =
9282  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received non-file-directive PDU";
9283 #endif
9284 
9285  Fw::String cfdpClassStr;
9286  cfdpClass.toString(cfdpClassStr);
9287 
9288  Fw::TextLogString _logString;
9289  (void) _logString.format(
9290  _formatString,
9291 #if FW_OBJECT_NAMES == 1
9292  this->m_objName.toChar(),
9293 #endif
9294  "TxNonFileDirectivePduReceived ",
9295  cfdpClassStr.toChar(),
9296  srcEid,
9297  seqNum
9298  );
9299 
9300  this->logTextOut_out(
9301  0,
9302  _id,
9303  _logTime,
9305  _logString
9306  );
9307  }
9308 #endif
9309  }
9310 
9313  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9314  U32 srcEid,
9315  U32 seqNum,
9316  U8 directiveCode,
9317  U8 substate
9318  ) const
9319  {
9320  // Get the time
9321  Fw::Time _logTime;
9322  if (this->isConnected_timeCaller_OutputPort(0)) {
9323  this->timeCaller_out(0, _logTime);
9324  }
9325 
9327 
9328  // Emit the event on the log port
9329  if (this->isConnected_logOut_OutputPort(0)) {
9330  Fw::LogBuffer _logBuff;
9332 
9333 #if FW_AMPCS_COMPATIBLE
9334  // Serialize the number of arguments
9335  _status = _logBuff.serializeFrom(static_cast<U8>(5));
9336  FW_ASSERT(
9337  _status == Fw::FW_SERIALIZE_OK,
9338  static_cast<FwAssertArgType>(_status)
9339  );
9340 #endif
9341 
9342 #if FW_AMPCS_COMPATIBLE
9343  // Serialize the argument size
9344  _status = _logBuff.serializeFrom(
9346  );
9347  FW_ASSERT(
9348  _status == Fw::FW_SERIALIZE_OK,
9349  static_cast<FwAssertArgType>(_status)
9350  );
9351 #endif
9352  _status = _logBuff.serializeFrom(cfdpClass);
9353  FW_ASSERT(
9354  _status == Fw::FW_SERIALIZE_OK,
9355  static_cast<FwAssertArgType>(_status)
9356  );
9357 
9358 #if FW_AMPCS_COMPATIBLE
9359  // Serialize the argument size
9360  _status = _logBuff.serializeFrom(
9361  static_cast<U8>(sizeof(U32))
9362  );
9363  FW_ASSERT(
9364  _status == Fw::FW_SERIALIZE_OK,
9365  static_cast<FwAssertArgType>(_status)
9366  );
9367 #endif
9368  _status = _logBuff.serializeFrom(srcEid);
9369  FW_ASSERT(
9370  _status == Fw::FW_SERIALIZE_OK,
9371  static_cast<FwAssertArgType>(_status)
9372  );
9373 
9374 #if FW_AMPCS_COMPATIBLE
9375  // Serialize the argument size
9376  _status = _logBuff.serializeFrom(
9377  static_cast<U8>(sizeof(U32))
9378  );
9379  FW_ASSERT(
9380  _status == Fw::FW_SERIALIZE_OK,
9381  static_cast<FwAssertArgType>(_status)
9382  );
9383 #endif
9384  _status = _logBuff.serializeFrom(seqNum);
9385  FW_ASSERT(
9386  _status == Fw::FW_SERIALIZE_OK,
9387  static_cast<FwAssertArgType>(_status)
9388  );
9389 
9390 #if FW_AMPCS_COMPATIBLE
9391  // Serialize the argument size
9392  _status = _logBuff.serializeFrom(
9393  static_cast<U8>(sizeof(U8))
9394  );
9395  FW_ASSERT(
9396  _status == Fw::FW_SERIALIZE_OK,
9397  static_cast<FwAssertArgType>(_status)
9398  );
9399 #endif
9400  _status = _logBuff.serializeFrom(directiveCode);
9401  FW_ASSERT(
9402  _status == Fw::FW_SERIALIZE_OK,
9403  static_cast<FwAssertArgType>(_status)
9404  );
9405 
9406 #if FW_AMPCS_COMPATIBLE
9407  // Serialize the argument size
9408  _status = _logBuff.serializeFrom(
9409  static_cast<U8>(sizeof(U8))
9410  );
9411  FW_ASSERT(
9412  _status == Fw::FW_SERIALIZE_OK,
9413  static_cast<FwAssertArgType>(_status)
9414  );
9415 #endif
9416  _status = _logBuff.serializeFrom(substate);
9417  FW_ASSERT(
9418  _status == Fw::FW_SERIALIZE_OK,
9419  static_cast<FwAssertArgType>(_status)
9420  );
9421 
9422  this->logOut_out(
9423  0,
9424  _id,
9425  _logTime,
9427  _logBuff
9428  );
9429  }
9430 
9431  // Emit the event on the text log port
9432 #if FW_ENABLE_TEXT_LOGGING
9433  if (this->isConnected_logTextOut_OutputPort(0)) {
9434 #if FW_OBJECT_NAMES == 1
9435  const char* _formatString =
9436  "(%s) %s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
9437 #else
9438  const char* _formatString =
9439  "%s: TX class %s transaction %" PRIu32 ":%" PRIu32 " received invalid directive code %" PRIu8 " for substate %" PRIu8 "";
9440 #endif
9441 
9442  Fw::String cfdpClassStr;
9443  cfdpClass.toString(cfdpClassStr);
9444 
9445  Fw::TextLogString _logString;
9446  (void) _logString.format(
9447  _formatString,
9448 #if FW_OBJECT_NAMES == 1
9449  this->m_objName.toChar(),
9450 #endif
9451  "TxInvalidDirectiveCode ",
9452  cfdpClassStr.toChar(),
9453  srcEid,
9454  seqNum,
9455  directiveCode,
9456  substate
9457  );
9458 
9459  this->logTextOut_out(
9460  0,
9461  _id,
9462  _logTime,
9464  _logString
9465  );
9466  }
9467 #endif
9468  }
9469 
9472  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9473  U32 seqNum,
9474  U32 srcEid,
9475  const Fw::StringBase& srcFile,
9476  U32 destEid,
9477  const Fw::StringBase& destFile,
9478  U32 fileSize
9479  ) const
9480  {
9481  // Get the time
9482  Fw::Time _logTime;
9483  if (this->isConnected_timeCaller_OutputPort(0)) {
9484  this->timeCaller_out(0, _logTime);
9485  }
9486 
9488 
9489  // Emit the event on the log port
9490  if (this->isConnected_logOut_OutputPort(0)) {
9491  Fw::LogBuffer _logBuff;
9493 
9494 #if FW_AMPCS_COMPATIBLE
9495  // Serialize the number of arguments
9496  _status = _logBuff.serializeFrom(static_cast<U8>(7));
9497  FW_ASSERT(
9498  _status == Fw::FW_SERIALIZE_OK,
9499  static_cast<FwAssertArgType>(_status)
9500  );
9501 #endif
9502 
9503 #if FW_AMPCS_COMPATIBLE
9504  // Serialize the argument size
9505  _status = _logBuff.serializeFrom(
9507  );
9508  FW_ASSERT(
9509  _status == Fw::FW_SERIALIZE_OK,
9510  static_cast<FwAssertArgType>(_status)
9511  );
9512 #endif
9513  _status = _logBuff.serializeFrom(cfdpClass);
9514  FW_ASSERT(
9515  _status == Fw::FW_SERIALIZE_OK,
9516  static_cast<FwAssertArgType>(_status)
9517  );
9518 
9519 #if FW_AMPCS_COMPATIBLE
9520  // Serialize the argument size
9521  _status = _logBuff.serializeFrom(
9522  static_cast<U8>(sizeof(U32))
9523  );
9524  FW_ASSERT(
9525  _status == Fw::FW_SERIALIZE_OK,
9526  static_cast<FwAssertArgType>(_status)
9527  );
9528 #endif
9529  _status = _logBuff.serializeFrom(seqNum);
9530  FW_ASSERT(
9531  _status == Fw::FW_SERIALIZE_OK,
9532  static_cast<FwAssertArgType>(_status)
9533  );
9534 
9535 #if FW_AMPCS_COMPATIBLE
9536  // Serialize the argument size
9537  _status = _logBuff.serializeFrom(
9538  static_cast<U8>(sizeof(U32))
9539  );
9540  FW_ASSERT(
9541  _status == Fw::FW_SERIALIZE_OK,
9542  static_cast<FwAssertArgType>(_status)
9543  );
9544 #endif
9545  _status = _logBuff.serializeFrom(srcEid);
9546  FW_ASSERT(
9547  _status == Fw::FW_SERIALIZE_OK,
9548  static_cast<FwAssertArgType>(_status)
9549  );
9550 
9551  _status = srcFile.serializeTo(
9552  _logBuff,
9553  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9554  );
9555  FW_ASSERT(
9556  _status == Fw::FW_SERIALIZE_OK,
9557  static_cast<FwAssertArgType>(_status)
9558  );
9559 
9560 #if FW_AMPCS_COMPATIBLE
9561  // Serialize the argument size
9562  _status = _logBuff.serializeFrom(
9563  static_cast<U8>(sizeof(U32))
9564  );
9565  FW_ASSERT(
9566  _status == Fw::FW_SERIALIZE_OK,
9567  static_cast<FwAssertArgType>(_status)
9568  );
9569 #endif
9570  _status = _logBuff.serializeFrom(destEid);
9571  FW_ASSERT(
9572  _status == Fw::FW_SERIALIZE_OK,
9573  static_cast<FwAssertArgType>(_status)
9574  );
9575 
9576  _status = destFile.serializeTo(
9577  _logBuff,
9578  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9579  );
9580  FW_ASSERT(
9581  _status == Fw::FW_SERIALIZE_OK,
9582  static_cast<FwAssertArgType>(_status)
9583  );
9584 
9585 #if FW_AMPCS_COMPATIBLE
9586  // Serialize the argument size
9587  _status = _logBuff.serializeFrom(
9588  static_cast<U8>(sizeof(U32))
9589  );
9590  FW_ASSERT(
9591  _status == Fw::FW_SERIALIZE_OK,
9592  static_cast<FwAssertArgType>(_status)
9593  );
9594 #endif
9595  _status = _logBuff.serializeFrom(fileSize);
9596  FW_ASSERT(
9597  _status == Fw::FW_SERIALIZE_OK,
9598  static_cast<FwAssertArgType>(_status)
9599  );
9600 
9601  this->logOut_out(
9602  0,
9603  _id,
9604  _logTime,
9606  _logBuff
9607  );
9608  }
9609 
9610  // Emit the event on the text log port
9611 #if FW_ENABLE_TEXT_LOGGING
9612  if (this->isConnected_logTextOut_OutputPort(0)) {
9613 #if FW_OBJECT_NAMES == 1
9614  const char* _formatString =
9615  "(%s) %s: TX %s transaction %" PRIu32 " transfer started, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9616 #else
9617  const char* _formatString =
9618  "%s: TX %s transaction %" PRIu32 " transfer started, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9619 #endif
9620 
9621  Fw::String cfdpClassStr;
9622  cfdpClass.toString(cfdpClassStr);
9623 
9624  Fw::TextLogString _logString;
9625  (void) _logString.format(
9626  _formatString,
9627 #if FW_OBJECT_NAMES == 1
9628  this->m_objName.toChar(),
9629 #endif
9630  "TxFileTransferStarted ",
9631  cfdpClassStr.toChar(),
9632  seqNum,
9633  srcEid,
9634  srcFile.toChar(),
9635  destEid,
9636  destFile.toChar(),
9637  fileSize
9638  );
9639 
9640  this->logTextOut_out(
9641  0,
9642  _id,
9643  _logTime,
9645  _logString
9646  );
9647  }
9648 #endif
9649  }
9650 
9653  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9654  U32 seqNum,
9655  U32 srcEid,
9656  const Fw::StringBase& srcFile,
9657  U32 destEid,
9658  const Fw::StringBase& destFile,
9659  U32 fileSize
9660  ) const
9661  {
9662  // Get the time
9663  Fw::Time _logTime;
9664  if (this->isConnected_timeCaller_OutputPort(0)) {
9665  this->timeCaller_out(0, _logTime);
9666  }
9667 
9669 
9670  // Emit the event on the log port
9671  if (this->isConnected_logOut_OutputPort(0)) {
9672  Fw::LogBuffer _logBuff;
9674 
9675 #if FW_AMPCS_COMPATIBLE
9676  // Serialize the number of arguments
9677  _status = _logBuff.serializeFrom(static_cast<U8>(7));
9678  FW_ASSERT(
9679  _status == Fw::FW_SERIALIZE_OK,
9680  static_cast<FwAssertArgType>(_status)
9681  );
9682 #endif
9683 
9684 #if FW_AMPCS_COMPATIBLE
9685  // Serialize the argument size
9686  _status = _logBuff.serializeFrom(
9688  );
9689  FW_ASSERT(
9690  _status == Fw::FW_SERIALIZE_OK,
9691  static_cast<FwAssertArgType>(_status)
9692  );
9693 #endif
9694  _status = _logBuff.serializeFrom(cfdpClass);
9695  FW_ASSERT(
9696  _status == Fw::FW_SERIALIZE_OK,
9697  static_cast<FwAssertArgType>(_status)
9698  );
9699 
9700 #if FW_AMPCS_COMPATIBLE
9701  // Serialize the argument size
9702  _status = _logBuff.serializeFrom(
9703  static_cast<U8>(sizeof(U32))
9704  );
9705  FW_ASSERT(
9706  _status == Fw::FW_SERIALIZE_OK,
9707  static_cast<FwAssertArgType>(_status)
9708  );
9709 #endif
9710  _status = _logBuff.serializeFrom(seqNum);
9711  FW_ASSERT(
9712  _status == Fw::FW_SERIALIZE_OK,
9713  static_cast<FwAssertArgType>(_status)
9714  );
9715 
9716 #if FW_AMPCS_COMPATIBLE
9717  // Serialize the argument size
9718  _status = _logBuff.serializeFrom(
9719  static_cast<U8>(sizeof(U32))
9720  );
9721  FW_ASSERT(
9722  _status == Fw::FW_SERIALIZE_OK,
9723  static_cast<FwAssertArgType>(_status)
9724  );
9725 #endif
9726  _status = _logBuff.serializeFrom(srcEid);
9727  FW_ASSERT(
9728  _status == Fw::FW_SERIALIZE_OK,
9729  static_cast<FwAssertArgType>(_status)
9730  );
9731 
9732  _status = srcFile.serializeTo(
9733  _logBuff,
9734  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9735  );
9736  FW_ASSERT(
9737  _status == Fw::FW_SERIALIZE_OK,
9738  static_cast<FwAssertArgType>(_status)
9739  );
9740 
9741 #if FW_AMPCS_COMPATIBLE
9742  // Serialize the argument size
9743  _status = _logBuff.serializeFrom(
9744  static_cast<U8>(sizeof(U32))
9745  );
9746  FW_ASSERT(
9747  _status == Fw::FW_SERIALIZE_OK,
9748  static_cast<FwAssertArgType>(_status)
9749  );
9750 #endif
9751  _status = _logBuff.serializeFrom(destEid);
9752  FW_ASSERT(
9753  _status == Fw::FW_SERIALIZE_OK,
9754  static_cast<FwAssertArgType>(_status)
9755  );
9756 
9757  _status = destFile.serializeTo(
9758  _logBuff,
9759  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9760  );
9761  FW_ASSERT(
9762  _status == Fw::FW_SERIALIZE_OK,
9763  static_cast<FwAssertArgType>(_status)
9764  );
9765 
9766 #if FW_AMPCS_COMPATIBLE
9767  // Serialize the argument size
9768  _status = _logBuff.serializeFrom(
9769  static_cast<U8>(sizeof(U32))
9770  );
9771  FW_ASSERT(
9772  _status == Fw::FW_SERIALIZE_OK,
9773  static_cast<FwAssertArgType>(_status)
9774  );
9775 #endif
9776  _status = _logBuff.serializeFrom(fileSize);
9777  FW_ASSERT(
9778  _status == Fw::FW_SERIALIZE_OK,
9779  static_cast<FwAssertArgType>(_status)
9780  );
9781 
9782  this->logOut_out(
9783  0,
9784  _id,
9785  _logTime,
9787  _logBuff
9788  );
9789  }
9790 
9791  // Emit the event on the text log port
9792 #if FW_ENABLE_TEXT_LOGGING
9793  if (this->isConnected_logTextOut_OutputPort(0)) {
9794 #if FW_OBJECT_NAMES == 1
9795  const char* _formatString =
9796  "(%s) %s: TX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9797 #else
9798  const char* _formatString =
9799  "%s: TX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
9800 #endif
9801 
9802  Fw::String cfdpClassStr;
9803  cfdpClass.toString(cfdpClassStr);
9804 
9805  Fw::TextLogString _logString;
9806  (void) _logString.format(
9807  _formatString,
9808 #if FW_OBJECT_NAMES == 1
9809  this->m_objName.toChar(),
9810 #endif
9811  "TxFileTransferCompleted ",
9812  cfdpClassStr.toChar(),
9813  seqNum,
9814  srcEid,
9815  srcFile.toChar(),
9816  destEid,
9817  destFile.toChar(),
9818  fileSize
9819  );
9820 
9821  this->logTextOut_out(
9822  0,
9823  _id,
9824  _logTime,
9826  _logString
9827  );
9828  }
9829 #endif
9830  }
9831 
9834  const Svc::Ccsds::Cfdp::Class& cfdpClass,
9835  U32 seqNum,
9836  U32 srcEid,
9837  const Fw::StringBase& srcFile,
9838  U32 destEid,
9839  const Fw::StringBase& destFile,
9840  U8 conditionCode
9841  ) const
9842  {
9843  // Get the time
9844  Fw::Time _logTime;
9845  if (this->isConnected_timeCaller_OutputPort(0)) {
9846  this->timeCaller_out(0, _logTime);
9847  }
9848 
9850 
9851  // Emit the event on the log port
9852  if (this->isConnected_logOut_OutputPort(0)) {
9853  Fw::LogBuffer _logBuff;
9855 
9856 #if FW_AMPCS_COMPATIBLE
9857  // Serialize the number of arguments
9858  _status = _logBuff.serializeFrom(static_cast<U8>(7));
9859  FW_ASSERT(
9860  _status == Fw::FW_SERIALIZE_OK,
9861  static_cast<FwAssertArgType>(_status)
9862  );
9863 #endif
9864 
9865 #if FW_AMPCS_COMPATIBLE
9866  // Serialize the argument size
9867  _status = _logBuff.serializeFrom(
9869  );
9870  FW_ASSERT(
9871  _status == Fw::FW_SERIALIZE_OK,
9872  static_cast<FwAssertArgType>(_status)
9873  );
9874 #endif
9875  _status = _logBuff.serializeFrom(cfdpClass);
9876  FW_ASSERT(
9877  _status == Fw::FW_SERIALIZE_OK,
9878  static_cast<FwAssertArgType>(_status)
9879  );
9880 
9881 #if FW_AMPCS_COMPATIBLE
9882  // Serialize the argument size
9883  _status = _logBuff.serializeFrom(
9884  static_cast<U8>(sizeof(U32))
9885  );
9886  FW_ASSERT(
9887  _status == Fw::FW_SERIALIZE_OK,
9888  static_cast<FwAssertArgType>(_status)
9889  );
9890 #endif
9891  _status = _logBuff.serializeFrom(seqNum);
9892  FW_ASSERT(
9893  _status == Fw::FW_SERIALIZE_OK,
9894  static_cast<FwAssertArgType>(_status)
9895  );
9896 
9897 #if FW_AMPCS_COMPATIBLE
9898  // Serialize the argument size
9899  _status = _logBuff.serializeFrom(
9900  static_cast<U8>(sizeof(U32))
9901  );
9902  FW_ASSERT(
9903  _status == Fw::FW_SERIALIZE_OK,
9904  static_cast<FwAssertArgType>(_status)
9905  );
9906 #endif
9907  _status = _logBuff.serializeFrom(srcEid);
9908  FW_ASSERT(
9909  _status == Fw::FW_SERIALIZE_OK,
9910  static_cast<FwAssertArgType>(_status)
9911  );
9912 
9913  _status = srcFile.serializeTo(
9914  _logBuff,
9915  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9916  );
9917  FW_ASSERT(
9918  _status == Fw::FW_SERIALIZE_OK,
9919  static_cast<FwAssertArgType>(_status)
9920  );
9921 
9922 #if FW_AMPCS_COMPATIBLE
9923  // Serialize the argument size
9924  _status = _logBuff.serializeFrom(
9925  static_cast<U8>(sizeof(U32))
9926  );
9927  FW_ASSERT(
9928  _status == Fw::FW_SERIALIZE_OK,
9929  static_cast<FwAssertArgType>(_status)
9930  );
9931 #endif
9932  _status = _logBuff.serializeFrom(destEid);
9933  FW_ASSERT(
9934  _status == Fw::FW_SERIALIZE_OK,
9935  static_cast<FwAssertArgType>(_status)
9936  );
9937 
9938  _status = destFile.serializeTo(
9939  _logBuff,
9940  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
9941  );
9942  FW_ASSERT(
9943  _status == Fw::FW_SERIALIZE_OK,
9944  static_cast<FwAssertArgType>(_status)
9945  );
9946 
9947 #if FW_AMPCS_COMPATIBLE
9948  // Serialize the argument size
9949  _status = _logBuff.serializeFrom(
9950  static_cast<U8>(sizeof(U8))
9951  );
9952  FW_ASSERT(
9953  _status == Fw::FW_SERIALIZE_OK,
9954  static_cast<FwAssertArgType>(_status)
9955  );
9956 #endif
9957  _status = _logBuff.serializeFrom(conditionCode);
9958  FW_ASSERT(
9959  _status == Fw::FW_SERIALIZE_OK,
9960  static_cast<FwAssertArgType>(_status)
9961  );
9962 
9963  this->logOut_out(
9964  0,
9965  _id,
9966  _logTime,
9968  _logBuff
9969  );
9970  }
9971 
9972  // Emit the event on the text log port
9973 #if FW_ENABLE_TEXT_LOGGING
9974  if (this->isConnected_logTextOut_OutputPort(0)) {
9975 #if FW_OBJECT_NAMES == 1
9976  const char* _formatString =
9977  "(%s) %s: TX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
9978 #else
9979  const char* _formatString =
9980  "%s: TX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
9981 #endif
9982 
9983  Fw::String cfdpClassStr;
9984  cfdpClass.toString(cfdpClassStr);
9985 
9986  Fw::TextLogString _logString;
9987  (void) _logString.format(
9988  _formatString,
9989 #if FW_OBJECT_NAMES == 1
9990  this->m_objName.toChar(),
9991 #endif
9992  "TxFileTransferFailed ",
9993  cfdpClassStr.toChar(),
9994  seqNum,
9995  srcEid,
9996  srcFile.toChar(),
9997  destEid,
9998  destFile.toChar(),
9999  conditionCode
10000  );
10001 
10002  this->logTextOut_out(
10003  0,
10004  _id,
10005  _logTime,
10007  _logString
10008  );
10009  }
10010 #endif
10011  }
10012 
10015  const Svc::Ccsds::Cfdp::Class& cfdpClass,
10016  U32 seqNum,
10017  U32 srcEid,
10018  const Fw::StringBase& srcFile,
10019  U32 destEid,
10020  const Fw::StringBase& destFile,
10021  U32 fileSize
10022  ) const
10023  {
10024  // Get the time
10025  Fw::Time _logTime;
10026  if (this->isConnected_timeCaller_OutputPort(0)) {
10027  this->timeCaller_out(0, _logTime);
10028  }
10029 
10031 
10032  // Emit the event on the log port
10033  if (this->isConnected_logOut_OutputPort(0)) {
10034  Fw::LogBuffer _logBuff;
10036 
10037 #if FW_AMPCS_COMPATIBLE
10038  // Serialize the number of arguments
10039  _status = _logBuff.serializeFrom(static_cast<U8>(7));
10040  FW_ASSERT(
10041  _status == Fw::FW_SERIALIZE_OK,
10042  static_cast<FwAssertArgType>(_status)
10043  );
10044 #endif
10045 
10046 #if FW_AMPCS_COMPATIBLE
10047  // Serialize the argument size
10048  _status = _logBuff.serializeFrom(
10050  );
10051  FW_ASSERT(
10052  _status == Fw::FW_SERIALIZE_OK,
10053  static_cast<FwAssertArgType>(_status)
10054  );
10055 #endif
10056  _status = _logBuff.serializeFrom(cfdpClass);
10057  FW_ASSERT(
10058  _status == Fw::FW_SERIALIZE_OK,
10059  static_cast<FwAssertArgType>(_status)
10060  );
10061 
10062 #if FW_AMPCS_COMPATIBLE
10063  // Serialize the argument size
10064  _status = _logBuff.serializeFrom(
10065  static_cast<U8>(sizeof(U32))
10066  );
10067  FW_ASSERT(
10068  _status == Fw::FW_SERIALIZE_OK,
10069  static_cast<FwAssertArgType>(_status)
10070  );
10071 #endif
10072  _status = _logBuff.serializeFrom(seqNum);
10073  FW_ASSERT(
10074  _status == Fw::FW_SERIALIZE_OK,
10075  static_cast<FwAssertArgType>(_status)
10076  );
10077 
10078 #if FW_AMPCS_COMPATIBLE
10079  // Serialize the argument size
10080  _status = _logBuff.serializeFrom(
10081  static_cast<U8>(sizeof(U32))
10082  );
10083  FW_ASSERT(
10084  _status == Fw::FW_SERIALIZE_OK,
10085  static_cast<FwAssertArgType>(_status)
10086  );
10087 #endif
10088  _status = _logBuff.serializeFrom(srcEid);
10089  FW_ASSERT(
10090  _status == Fw::FW_SERIALIZE_OK,
10091  static_cast<FwAssertArgType>(_status)
10092  );
10093 
10094  _status = srcFile.serializeTo(
10095  _logBuff,
10096  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10097  );
10098  FW_ASSERT(
10099  _status == Fw::FW_SERIALIZE_OK,
10100  static_cast<FwAssertArgType>(_status)
10101  );
10102 
10103 #if FW_AMPCS_COMPATIBLE
10104  // Serialize the argument size
10105  _status = _logBuff.serializeFrom(
10106  static_cast<U8>(sizeof(U32))
10107  );
10108  FW_ASSERT(
10109  _status == Fw::FW_SERIALIZE_OK,
10110  static_cast<FwAssertArgType>(_status)
10111  );
10112 #endif
10113  _status = _logBuff.serializeFrom(destEid);
10114  FW_ASSERT(
10115  _status == Fw::FW_SERIALIZE_OK,
10116  static_cast<FwAssertArgType>(_status)
10117  );
10118 
10119  _status = destFile.serializeTo(
10120  _logBuff,
10121  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10122  );
10123  FW_ASSERT(
10124  _status == Fw::FW_SERIALIZE_OK,
10125  static_cast<FwAssertArgType>(_status)
10126  );
10127 
10128 #if FW_AMPCS_COMPATIBLE
10129  // Serialize the argument size
10130  _status = _logBuff.serializeFrom(
10131  static_cast<U8>(sizeof(U32))
10132  );
10133  FW_ASSERT(
10134  _status == Fw::FW_SERIALIZE_OK,
10135  static_cast<FwAssertArgType>(_status)
10136  );
10137 #endif
10138  _status = _logBuff.serializeFrom(fileSize);
10139  FW_ASSERT(
10140  _status == Fw::FW_SERIALIZE_OK,
10141  static_cast<FwAssertArgType>(_status)
10142  );
10143 
10144  this->logOut_out(
10145  0,
10146  _id,
10147  _logTime,
10149  _logBuff
10150  );
10151  }
10152 
10153  // Emit the event on the text log port
10154 #if FW_ENABLE_TEXT_LOGGING
10155  if (this->isConnected_logTextOut_OutputPort(0)) {
10156 #if FW_OBJECT_NAMES == 1
10157  const char* _formatString =
10158  "(%s) %s: RX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
10159 #else
10160  const char* _formatString =
10161  "%s: RX %s transaction %" PRIu32 " completed, %" PRIu32 ":%s -> %" PRIu32 ":%s, %" PRIu32 " bytes";
10162 #endif
10163 
10164  Fw::String cfdpClassStr;
10165  cfdpClass.toString(cfdpClassStr);
10166 
10167  Fw::TextLogString _logString;
10168  (void) _logString.format(
10169  _formatString,
10170 #if FW_OBJECT_NAMES == 1
10171  this->m_objName.toChar(),
10172 #endif
10173  "RxFileTransferCompleted ",
10174  cfdpClassStr.toChar(),
10175  seqNum,
10176  srcEid,
10177  srcFile.toChar(),
10178  destEid,
10179  destFile.toChar(),
10180  fileSize
10181  );
10182 
10183  this->logTextOut_out(
10184  0,
10185  _id,
10186  _logTime,
10188  _logString
10189  );
10190  }
10191 #endif
10192  }
10193 
10196  const Svc::Ccsds::Cfdp::Class& cfdpClass,
10197  U32 seqNum,
10198  U32 srcEid,
10199  const Fw::StringBase& srcFile,
10200  U32 destEid,
10201  const Fw::StringBase& destFile,
10202  U8 conditionCode
10203  ) const
10204  {
10205  // Get the time
10206  Fw::Time _logTime;
10207  if (this->isConnected_timeCaller_OutputPort(0)) {
10208  this->timeCaller_out(0, _logTime);
10209  }
10210 
10212 
10213  // Emit the event on the log port
10214  if (this->isConnected_logOut_OutputPort(0)) {
10215  Fw::LogBuffer _logBuff;
10217 
10218 #if FW_AMPCS_COMPATIBLE
10219  // Serialize the number of arguments
10220  _status = _logBuff.serializeFrom(static_cast<U8>(7));
10221  FW_ASSERT(
10222  _status == Fw::FW_SERIALIZE_OK,
10223  static_cast<FwAssertArgType>(_status)
10224  );
10225 #endif
10226 
10227 #if FW_AMPCS_COMPATIBLE
10228  // Serialize the argument size
10229  _status = _logBuff.serializeFrom(
10231  );
10232  FW_ASSERT(
10233  _status == Fw::FW_SERIALIZE_OK,
10234  static_cast<FwAssertArgType>(_status)
10235  );
10236 #endif
10237  _status = _logBuff.serializeFrom(cfdpClass);
10238  FW_ASSERT(
10239  _status == Fw::FW_SERIALIZE_OK,
10240  static_cast<FwAssertArgType>(_status)
10241  );
10242 
10243 #if FW_AMPCS_COMPATIBLE
10244  // Serialize the argument size
10245  _status = _logBuff.serializeFrom(
10246  static_cast<U8>(sizeof(U32))
10247  );
10248  FW_ASSERT(
10249  _status == Fw::FW_SERIALIZE_OK,
10250  static_cast<FwAssertArgType>(_status)
10251  );
10252 #endif
10253  _status = _logBuff.serializeFrom(seqNum);
10254  FW_ASSERT(
10255  _status == Fw::FW_SERIALIZE_OK,
10256  static_cast<FwAssertArgType>(_status)
10257  );
10258 
10259 #if FW_AMPCS_COMPATIBLE
10260  // Serialize the argument size
10261  _status = _logBuff.serializeFrom(
10262  static_cast<U8>(sizeof(U32))
10263  );
10264  FW_ASSERT(
10265  _status == Fw::FW_SERIALIZE_OK,
10266  static_cast<FwAssertArgType>(_status)
10267  );
10268 #endif
10269  _status = _logBuff.serializeFrom(srcEid);
10270  FW_ASSERT(
10271  _status == Fw::FW_SERIALIZE_OK,
10272  static_cast<FwAssertArgType>(_status)
10273  );
10274 
10275  _status = srcFile.serializeTo(
10276  _logBuff,
10277  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10278  );
10279  FW_ASSERT(
10280  _status == Fw::FW_SERIALIZE_OK,
10281  static_cast<FwAssertArgType>(_status)
10282  );
10283 
10284 #if FW_AMPCS_COMPATIBLE
10285  // Serialize the argument size
10286  _status = _logBuff.serializeFrom(
10287  static_cast<U8>(sizeof(U32))
10288  );
10289  FW_ASSERT(
10290  _status == Fw::FW_SERIALIZE_OK,
10291  static_cast<FwAssertArgType>(_status)
10292  );
10293 #endif
10294  _status = _logBuff.serializeFrom(destEid);
10295  FW_ASSERT(
10296  _status == Fw::FW_SERIALIZE_OK,
10297  static_cast<FwAssertArgType>(_status)
10298  );
10299 
10300  _status = destFile.serializeTo(
10301  _logBuff,
10302  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10303  );
10304  FW_ASSERT(
10305  _status == Fw::FW_SERIALIZE_OK,
10306  static_cast<FwAssertArgType>(_status)
10307  );
10308 
10309 #if FW_AMPCS_COMPATIBLE
10310  // Serialize the argument size
10311  _status = _logBuff.serializeFrom(
10312  static_cast<U8>(sizeof(U8))
10313  );
10314  FW_ASSERT(
10315  _status == Fw::FW_SERIALIZE_OK,
10316  static_cast<FwAssertArgType>(_status)
10317  );
10318 #endif
10319  _status = _logBuff.serializeFrom(conditionCode);
10320  FW_ASSERT(
10321  _status == Fw::FW_SERIALIZE_OK,
10322  static_cast<FwAssertArgType>(_status)
10323  );
10324 
10325  this->logOut_out(
10326  0,
10327  _id,
10328  _logTime,
10330  _logBuff
10331  );
10332  }
10333 
10334  // Emit the event on the text log port
10335 #if FW_ENABLE_TEXT_LOGGING
10336  if (this->isConnected_logTextOut_OutputPort(0)) {
10337 #if FW_OBJECT_NAMES == 1
10338  const char* _formatString =
10339  "(%s) %s: RX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
10340 #else
10341  const char* _formatString =
10342  "%s: RX %s transaction %" PRIu32 " FAILED, %" PRIu32 ":%s -> %" PRIu32 ":%s, error code %" PRIu8 "";
10343 #endif
10344 
10345  Fw::String cfdpClassStr;
10346  cfdpClass.toString(cfdpClassStr);
10347 
10348  Fw::TextLogString _logString;
10349  (void) _logString.format(
10350  _formatString,
10351 #if FW_OBJECT_NAMES == 1
10352  this->m_objName.toChar(),
10353 #endif
10354  "RxFileTransferFailed ",
10355  cfdpClassStr.toChar(),
10356  seqNum,
10357  srcEid,
10358  srcFile.toChar(),
10359  destEid,
10360  destFile.toChar(),
10361  conditionCode
10362  );
10363 
10364  this->logTextOut_out(
10365  0,
10366  _id,
10367  _logTime,
10369  _logString
10370  );
10371  }
10372 #endif
10373  }
10374 
10377  const Fw::StringBase& srcFile,
10378  const Fw::StringBase& destFile,
10379  U32 transactionSeq
10380  ) const
10381  {
10382  // Get the time
10383  Fw::Time _logTime;
10384  if (this->isConnected_timeCaller_OutputPort(0)) {
10385  this->timeCaller_out(0, _logTime);
10386  }
10387 
10388  const FwEventIdType _id = this->getIdBase() + EVENTID_METADATARECEIVED;
10389 
10390  // Emit the event on the log port
10391  if (this->isConnected_logOut_OutputPort(0)) {
10392  Fw::LogBuffer _logBuff;
10394 
10395 #if FW_AMPCS_COMPATIBLE
10396  // Serialize the number of arguments
10397  _status = _logBuff.serializeFrom(static_cast<U8>(3));
10398  FW_ASSERT(
10399  _status == Fw::FW_SERIALIZE_OK,
10400  static_cast<FwAssertArgType>(_status)
10401  );
10402 #endif
10403 
10404  _status = srcFile.serializeTo(
10405  _logBuff,
10406  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10407  );
10408  FW_ASSERT(
10409  _status == Fw::FW_SERIALIZE_OK,
10410  static_cast<FwAssertArgType>(_status)
10411  );
10412 
10413  _status = destFile.serializeTo(
10414  _logBuff,
10415  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10416  );
10417  FW_ASSERT(
10418  _status == Fw::FW_SERIALIZE_OK,
10419  static_cast<FwAssertArgType>(_status)
10420  );
10421 
10422 #if FW_AMPCS_COMPATIBLE
10423  // Serialize the argument size
10424  _status = _logBuff.serializeFrom(
10425  static_cast<U8>(sizeof(U32))
10426  );
10427  FW_ASSERT(
10428  _status == Fw::FW_SERIALIZE_OK,
10429  static_cast<FwAssertArgType>(_status)
10430  );
10431 #endif
10432  _status = _logBuff.serializeFrom(transactionSeq);
10433  FW_ASSERT(
10434  _status == Fw::FW_SERIALIZE_OK,
10435  static_cast<FwAssertArgType>(_status)
10436  );
10437 
10438  this->logOut_out(
10439  0,
10440  _id,
10441  _logTime,
10443  _logBuff
10444  );
10445  }
10446 
10447  // Emit the event on the text log port
10448 #if FW_ENABLE_TEXT_LOGGING
10449  if (this->isConnected_logTextOut_OutputPort(0)) {
10450 #if FW_OBJECT_NAMES == 1
10451  const char* _formatString =
10452  "(%s) %s: Metadata received for source: %s, dest: %s (transaction %" PRIu32 ")";
10453 #else
10454  const char* _formatString =
10455  "%s: Metadata received for source: %s, dest: %s (transaction %" PRIu32 ")";
10456 #endif
10457 
10458  Fw::TextLogString _logString;
10459  (void) _logString.format(
10460  _formatString,
10461 #if FW_OBJECT_NAMES == 1
10462  this->m_objName.toChar(),
10463 #endif
10464  "MetadataReceived ",
10465  srcFile.toChar(),
10466  destFile.toChar(),
10467  transactionSeq
10468  );
10469 
10470  this->logTextOut_out(
10471  0,
10472  _id,
10473  _logTime,
10475  _logString
10476  );
10477  }
10478 #endif
10479  }
10480 
10483  {
10484  // Get the time
10485  Fw::Time _logTime;
10486  if (this->isConnected_timeCaller_OutputPort(0)) {
10487  this->timeCaller_out(0, _logTime);
10488  }
10489 
10491 
10492  // Emit the event on the log port
10493  if (this->isConnected_logOut_OutputPort(0)) {
10494  Fw::LogBuffer _logBuff;
10495 
10496 #if FW_AMPCS_COMPATIBLE
10498  // Serialize the number of arguments
10499  _status = _logBuff.serializeFrom(static_cast<U8>(0));
10500  FW_ASSERT(
10501  _status == Fw::FW_SERIALIZE_OK,
10502  static_cast<FwAssertArgType>(_status)
10503  );
10504 #endif
10505 
10506  this->logOut_out(
10507  0,
10508  _id,
10509  _logTime,
10511  _logBuff
10512  );
10513  }
10514 
10515  // Emit the event on the text log port
10516 #if FW_ENABLE_TEXT_LOGGING
10517  if (this->isConnected_logTextOut_OutputPort(0)) {
10518 #if FW_OBJECT_NAMES == 1
10519  const char* _formatString =
10520  "(%s) %s: File data PDU with unsupported segment metadata received";
10521 #else
10522  const char* _formatString =
10523  "%s: File data PDU with unsupported segment metadata received";
10524 #endif
10525 
10526  Fw::TextLogString _logString;
10527  (void) _logString.format(
10528  _formatString,
10529 #if FW_OBJECT_NAMES == 1
10530  this->m_objName.toChar(),
10531 #endif
10532  "FileDataSegmentMetadata "
10533  );
10534 
10535  this->logTextOut_out(
10536  0,
10537  _id,
10538  _logTime,
10540  _logString
10541  );
10542  }
10543 #endif
10544  }
10545 
10547  log_WARNING_LO_ChunklistUnavailable(U32 transactionSeq) const
10548  {
10549  // Get the time
10550  Fw::Time _logTime;
10551  if (this->isConnected_timeCaller_OutputPort(0)) {
10552  this->timeCaller_out(0, _logTime);
10553  }
10554 
10556 
10557  // Emit the event on the log port
10558  if (this->isConnected_logOut_OutputPort(0)) {
10559  Fw::LogBuffer _logBuff;
10561 
10562 #if FW_AMPCS_COMPATIBLE
10563  // Serialize the number of arguments
10564  _status = _logBuff.serializeFrom(static_cast<U8>(1));
10565  FW_ASSERT(
10566  _status == Fw::FW_SERIALIZE_OK,
10567  static_cast<FwAssertArgType>(_status)
10568  );
10569 #endif
10570 
10571 #if FW_AMPCS_COMPATIBLE
10572  // Serialize the argument size
10573  _status = _logBuff.serializeFrom(
10574  static_cast<U8>(sizeof(U32))
10575  );
10576  FW_ASSERT(
10577  _status == Fw::FW_SERIALIZE_OK,
10578  static_cast<FwAssertArgType>(_status)
10579  );
10580 #endif
10581  _status = _logBuff.serializeFrom(transactionSeq);
10582  FW_ASSERT(
10583  _status == Fw::FW_SERIALIZE_OK,
10584  static_cast<FwAssertArgType>(_status)
10585  );
10586 
10587  this->logOut_out(
10588  0,
10589  _id,
10590  _logTime,
10592  _logBuff
10593  );
10594  }
10595 
10596  // Emit the event on the text log port
10597 #if FW_ENABLE_TEXT_LOGGING
10598  if (this->isConnected_logTextOut_OutputPort(0)) {
10599 #if FW_OBJECT_NAMES == 1
10600  const char* _formatString =
10601  "(%s) %s: Cannot get chunklist, abandoning transaction %" PRIu32 "";
10602 #else
10603  const char* _formatString =
10604  "%s: Cannot get chunklist, abandoning transaction %" PRIu32 "";
10605 #endif
10606 
10607  Fw::TextLogString _logString;
10608  (void) _logString.format(
10609  _formatString,
10610 #if FW_OBJECT_NAMES == 1
10611  this->m_objName.toChar(),
10612 #endif
10613  "ChunklistUnavailable ",
10614  transactionSeq
10615  );
10616 
10617  this->logTextOut_out(
10618  0,
10619  _id,
10620  _logTime,
10622  _logString
10623  );
10624  }
10625 #endif
10626  }
10627 
10630  {
10631  // Get the time
10632  Fw::Time _logTime;
10633  if (this->isConnected_timeCaller_OutputPort(0)) {
10634  this->timeCaller_out(0, _logTime);
10635  }
10636 
10638 
10639  // Emit the event on the log port
10640  if (this->isConnected_logOut_OutputPort(0)) {
10641  Fw::LogBuffer _logBuff;
10642 
10643 #if FW_AMPCS_COMPATIBLE
10645  // Serialize the number of arguments
10646  _status = _logBuff.serializeFrom(static_cast<U8>(0));
10647  FW_ASSERT(
10648  _status == Fw::FW_SERIALIZE_OK,
10649  static_cast<FwAssertArgType>(_status)
10650  );
10651 #endif
10652 
10653  this->logOut_out(
10654  0,
10655  _id,
10656  _logTime,
10658  _logBuff
10659  );
10660  }
10661 
10662  // Emit the event on the text log port
10663 #if FW_ENABLE_TEXT_LOGGING
10664  if (this->isConnected_logTextOut_OutputPort(0)) {
10665 #if FW_OBJECT_NAMES == 1
10666  const char* _formatString =
10667  "(%s) %s: Unhandled PDU type received in idle state";
10668 #else
10669  const char* _formatString =
10670  "%s: Unhandled PDU type received in idle state";
10671 #endif
10672 
10673  Fw::TextLogString _logString;
10674  (void) _logString.format(
10675  _formatString,
10676 #if FW_OBJECT_NAMES == 1
10677  this->m_objName.toChar(),
10678 #endif
10679  "UnhandledPduInIdleState "
10680  );
10681 
10682  this->logTextOut_out(
10683  0,
10684  _id,
10685  _logTime,
10687  _logString
10688  );
10689  }
10690 #endif
10691  }
10692 
10695  U32 srcEid,
10696  U32 transactionSeq
10697  ) const
10698  {
10699  // Get the time
10700  Fw::Time _logTime;
10701  if (this->isConnected_timeCaller_OutputPort(0)) {
10702  this->timeCaller_out(0, _logTime);
10703  }
10704 
10706 
10707  // Emit the event on the log port
10708  if (this->isConnected_logOut_OutputPort(0)) {
10709  Fw::LogBuffer _logBuff;
10711 
10712 #if FW_AMPCS_COMPATIBLE
10713  // Serialize the number of arguments
10714  _status = _logBuff.serializeFrom(static_cast<U8>(2));
10715  FW_ASSERT(
10716  _status == Fw::FW_SERIALIZE_OK,
10717  static_cast<FwAssertArgType>(_status)
10718  );
10719 #endif
10720 
10721 #if FW_AMPCS_COMPATIBLE
10722  // Serialize the argument size
10723  _status = _logBuff.serializeFrom(
10724  static_cast<U8>(sizeof(U32))
10725  );
10726  FW_ASSERT(
10727  _status == Fw::FW_SERIALIZE_OK,
10728  static_cast<FwAssertArgType>(_status)
10729  );
10730 #endif
10731  _status = _logBuff.serializeFrom(srcEid);
10732  FW_ASSERT(
10733  _status == Fw::FW_SERIALIZE_OK,
10734  static_cast<FwAssertArgType>(_status)
10735  );
10736 
10737 #if FW_AMPCS_COMPATIBLE
10738  // Serialize the argument size
10739  _status = _logBuff.serializeFrom(
10740  static_cast<U8>(sizeof(U32))
10741  );
10742  FW_ASSERT(
10743  _status == Fw::FW_SERIALIZE_OK,
10744  static_cast<FwAssertArgType>(_status)
10745  );
10746 #endif
10747  _status = _logBuff.serializeFrom(transactionSeq);
10748  FW_ASSERT(
10749  _status == Fw::FW_SERIALIZE_OK,
10750  static_cast<FwAssertArgType>(_status)
10751  );
10752 
10753  this->logOut_out(
10754  0,
10755  _id,
10756  _logTime,
10758  _logBuff
10759  );
10760  }
10761 
10762  // Emit the event on the text log port
10763 #if FW_ENABLE_TEXT_LOGGING
10764  if (this->isConnected_logTextOut_OutputPort(0)) {
10765 #if FW_OBJECT_NAMES == 1
10766  const char* _formatString =
10767  "(%s) %s: Dropping packet from %" PRIu32 " transaction %" PRIu32 " due to max RX transactions reached";
10768 #else
10769  const char* _formatString =
10770  "%s: Dropping packet from %" PRIu32 " transaction %" PRIu32 " due to max RX transactions reached";
10771 #endif
10772 
10773  Fw::TextLogString _logString;
10774  (void) _logString.format(
10775  _formatString,
10776 #if FW_OBJECT_NAMES == 1
10777  this->m_objName.toChar(),
10778 #endif
10779  "RxTransactionLimitReached ",
10780  srcEid,
10781  transactionSeq
10782  );
10783 
10784  this->logTextOut_out(
10785  0,
10786  _id,
10787  _logTime,
10789  _logString
10790  );
10791  }
10792 #endif
10793  }
10794 
10797  {
10798  // Get the time
10799  Fw::Time _logTime;
10800  if (this->isConnected_timeCaller_OutputPort(0)) {
10801  this->timeCaller_out(0, _logTime);
10802  }
10803 
10805 
10806  // Emit the event on the log port
10807  if (this->isConnected_logOut_OutputPort(0)) {
10808  Fw::LogBuffer _logBuff;
10810 
10811 #if FW_AMPCS_COMPATIBLE
10812  // Serialize the number of arguments
10813  _status = _logBuff.serializeFrom(static_cast<U8>(1));
10814  FW_ASSERT(
10815  _status == Fw::FW_SERIALIZE_OK,
10816  static_cast<FwAssertArgType>(_status)
10817  );
10818 #endif
10819 
10820 #if FW_AMPCS_COMPATIBLE
10821  // Serialize the argument size
10822  _status = _logBuff.serializeFrom(
10823  static_cast<U8>(sizeof(U32))
10824  );
10825  FW_ASSERT(
10826  _status == Fw::FW_SERIALIZE_OK,
10827  static_cast<FwAssertArgType>(_status)
10828  );
10829 #endif
10830  _status = _logBuff.serializeFrom(destEid);
10831  FW_ASSERT(
10832  _status == Fw::FW_SERIALIZE_OK,
10833  static_cast<FwAssertArgType>(_status)
10834  );
10835 
10836  this->logOut_out(
10837  0,
10838  _id,
10839  _logTime,
10841  _logBuff
10842  );
10843  }
10844 
10845  // Emit the event on the text log port
10846 #if FW_ENABLE_TEXT_LOGGING
10847  if (this->isConnected_logTextOut_OutputPort(0)) {
10848 #if FW_OBJECT_NAMES == 1
10849  const char* _formatString =
10850  "(%s) %s: Dropping packet for invalid destination EID %" PRIu32 "";
10851 #else
10852  const char* _formatString =
10853  "%s: Dropping packet for invalid destination EID %" PRIu32 "";
10854 #endif
10855 
10856  Fw::TextLogString _logString;
10857  (void) _logString.format(
10858  _formatString,
10859 #if FW_OBJECT_NAMES == 1
10860  this->m_objName.toChar(),
10861 #endif
10862  "InvalidDestinationEid ",
10863  destEid
10864  );
10865 
10866  this->logTextOut_out(
10867  0,
10868  _id,
10869  _logTime,
10871  _logString
10872  );
10873  }
10874 #endif
10875  }
10876 
10879  {
10880  // Get the time
10881  Fw::Time _logTime;
10882  if (this->isConnected_timeCaller_OutputPort(0)) {
10883  this->timeCaller_out(0, _logTime);
10884  }
10885 
10887 
10888  // Emit the event on the log port
10889  if (this->isConnected_logOut_OutputPort(0)) {
10890  Fw::LogBuffer _logBuff;
10891 
10892 #if FW_AMPCS_COMPATIBLE
10894  // Serialize the number of arguments
10895  _status = _logBuff.serializeFrom(static_cast<U8>(0));
10896  FW_ASSERT(
10897  _status == Fw::FW_SERIALIZE_OK,
10898  static_cast<FwAssertArgType>(_status)
10899  );
10900 #endif
10901 
10902  this->logOut_out(
10903  0,
10904  _id,
10905  _logTime,
10907  _logBuff
10908  );
10909  }
10910 
10911  // Emit the event on the text log port
10912 #if FW_ENABLE_TEXT_LOGGING
10913  if (this->isConnected_logTextOut_OutputPort(0)) {
10914 #if FW_OBJECT_NAMES == 1
10915  const char* _formatString =
10916  "(%s) %s: Maximum number of commanded TX files reached";
10917 #else
10918  const char* _formatString =
10919  "%s: Maximum number of commanded TX files reached";
10920 #endif
10921 
10922  Fw::TextLogString _logString;
10923  (void) _logString.format(
10924  _formatString,
10925 #if FW_OBJECT_NAMES == 1
10926  this->m_objName.toChar(),
10927 #endif
10928  "MaxTxTransactionsReached "
10929  );
10930 
10931  this->logTextOut_out(
10932  0,
10933  _id,
10934  _logTime,
10936  _logString
10937  );
10938  }
10939 #endif
10940  }
10941 
10944  const Fw::StringBase& directory,
10945  I32 status
10946  ) const
10947  {
10948  // Get the time
10949  Fw::Time _logTime;
10950  if (this->isConnected_timeCaller_OutputPort(0)) {
10951  this->timeCaller_out(0, _logTime);
10952  }
10953 
10955 
10956  // Emit the event on the log port
10957  if (this->isConnected_logOut_OutputPort(0)) {
10958  Fw::LogBuffer _logBuff;
10960 
10961 #if FW_AMPCS_COMPATIBLE
10962  // Serialize the number of arguments
10963  _status = _logBuff.serializeFrom(static_cast<U8>(2));
10964  FW_ASSERT(
10965  _status == Fw::FW_SERIALIZE_OK,
10966  static_cast<FwAssertArgType>(_status)
10967  );
10968 #endif
10969 
10970  _status = directory.serializeTo(
10971  _logBuff,
10972  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
10973  );
10974  FW_ASSERT(
10975  _status == Fw::FW_SERIALIZE_OK,
10976  static_cast<FwAssertArgType>(_status)
10977  );
10978 
10979 #if FW_AMPCS_COMPATIBLE
10980  // Serialize the argument size
10981  _status = _logBuff.serializeFrom(
10982  static_cast<U8>(sizeof(I32))
10983  );
10984  FW_ASSERT(
10985  _status == Fw::FW_SERIALIZE_OK,
10986  static_cast<FwAssertArgType>(_status)
10987  );
10988 #endif
10989  _status = _logBuff.serializeFrom(status);
10990  FW_ASSERT(
10991  _status == Fw::FW_SERIALIZE_OK,
10992  static_cast<FwAssertArgType>(_status)
10993  );
10994 
10995  this->logOut_out(
10996  0,
10997  _id,
10998  _logTime,
11000  _logBuff
11001  );
11002  }
11003 
11004  // Emit the event on the text log port
11005 #if FW_ENABLE_TEXT_LOGGING
11006  if (this->isConnected_logTextOut_OutputPort(0)) {
11007 #if FW_OBJECT_NAMES == 1
11008  const char* _formatString =
11009  "(%s) %s: Failed to open playback directory %s, error=%" PRIi32 "";
11010 #else
11011  const char* _formatString =
11012  "%s: Failed to open playback directory %s, error=%" PRIi32 "";
11013 #endif
11014 
11015  Fw::TextLogString _logString;
11016  (void) _logString.format(
11017  _formatString,
11018 #if FW_OBJECT_NAMES == 1
11019  this->m_objName.toChar(),
11020 #endif
11021  "PlaybackDirOpenFailed ",
11022  directory.toChar(),
11023  status
11024  );
11025 
11026  this->logTextOut_out(
11027  0,
11028  _id,
11029  _logTime,
11031  _logString
11032  );
11033  }
11034 #endif
11035  }
11036 
11039  {
11040  // Get the time
11041  Fw::Time _logTime;
11042  if (this->isConnected_timeCaller_OutputPort(0)) {
11043  this->timeCaller_out(0, _logTime);
11044  }
11045 
11047 
11048  // Emit the event on the log port
11049  if (this->isConnected_logOut_OutputPort(0)) {
11050  Fw::LogBuffer _logBuff;
11051 
11052 #if FW_AMPCS_COMPATIBLE
11054  // Serialize the number of arguments
11055  _status = _logBuff.serializeFrom(static_cast<U8>(0));
11056  FW_ASSERT(
11057  _status == Fw::FW_SERIALIZE_OK,
11058  static_cast<FwAssertArgType>(_status)
11059  );
11060 #endif
11061 
11062  this->logOut_out(
11063  0,
11064  _id,
11065  _logTime,
11067  _logBuff
11068  );
11069  }
11070 
11071  // Emit the event on the text log port
11072 #if FW_ENABLE_TEXT_LOGGING
11073  if (this->isConnected_logTextOut_OutputPort(0)) {
11074 #if FW_OBJECT_NAMES == 1
11075  const char* _formatString =
11076  "(%s) %s: No playback directory slot available";
11077 #else
11078  const char* _formatString =
11079  "%s: No playback directory slot available";
11080 #endif
11081 
11082  Fw::TextLogString _logString;
11083  (void) _logString.format(
11084  _formatString,
11085 #if FW_OBJECT_NAMES == 1
11086  this->m_objName.toChar(),
11087 #endif
11088  "PlaybackDirSlotUnavailable "
11089  );
11090 
11091  this->logTextOut_out(
11092  0,
11093  _id,
11094  _logTime,
11096  _logString
11097  );
11098  }
11099 #endif
11100  }
11101 
11104  U8 channelId,
11105  U32 transactionSeq
11106  ) const
11107  {
11108  // Get the time
11109  Fw::Time _logTime;
11110  if (this->isConnected_timeCaller_OutputPort(0)) {
11111  this->timeCaller_out(0, _logTime);
11112  }
11113 
11115 
11116  // Emit the event on the log port
11117  if (this->isConnected_logOut_OutputPort(0)) {
11118  Fw::LogBuffer _logBuff;
11120 
11121 #if FW_AMPCS_COMPATIBLE
11122  // Serialize the number of arguments
11123  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11124  FW_ASSERT(
11125  _status == Fw::FW_SERIALIZE_OK,
11126  static_cast<FwAssertArgType>(_status)
11127  );
11128 #endif
11129 
11130 #if FW_AMPCS_COMPATIBLE
11131  // Serialize the argument size
11132  _status = _logBuff.serializeFrom(
11133  static_cast<U8>(sizeof(U8))
11134  );
11135  FW_ASSERT(
11136  _status == Fw::FW_SERIALIZE_OK,
11137  static_cast<FwAssertArgType>(_status)
11138  );
11139 #endif
11140  _status = _logBuff.serializeFrom(channelId);
11141  FW_ASSERT(
11142  _status == Fw::FW_SERIALIZE_OK,
11143  static_cast<FwAssertArgType>(_status)
11144  );
11145 
11146 #if FW_AMPCS_COMPATIBLE
11147  // Serialize the argument size
11148  _status = _logBuff.serializeFrom(
11149  static_cast<U8>(sizeof(U32))
11150  );
11151  FW_ASSERT(
11152  _status == Fw::FW_SERIALIZE_OK,
11153  static_cast<FwAssertArgType>(_status)
11154  );
11155 #endif
11156  _status = _logBuff.serializeFrom(transactionSeq);
11157  FW_ASSERT(
11158  _status == Fw::FW_SERIALIZE_OK,
11159  static_cast<FwAssertArgType>(_status)
11160  );
11161 
11162  this->logOut_out(
11163  0,
11164  _id,
11165  _logTime,
11167  _logBuff
11168  );
11169  }
11170 
11171  // Emit the event on the text log port
11172 #if FW_ENABLE_TEXT_LOGGING
11173  if (this->isConnected_logTextOut_OutputPort(0)) {
11174 #if FW_OBJECT_NAMES == 1
11175  const char* _formatString =
11176  "(%s) %s: Closed dangling file handle for channel %" PRIu8 " transaction %" PRIu32 "";
11177 #else
11178  const char* _formatString =
11179  "%s: Closed dangling file handle for channel %" PRIu8 " transaction %" PRIu32 "";
11180 #endif
11181 
11182  Fw::TextLogString _logString;
11183  (void) _logString.format(
11184  _formatString,
11185 #if FW_OBJECT_NAMES == 1
11186  this->m_objName.toChar(),
11187 #endif
11188  "DanglingFileHandleClosed ",
11189  channelId,
11190  transactionSeq
11191  );
11192 
11193  this->logTextOut_out(
11194  0,
11195  _id,
11196  _logTime,
11198  _logString
11199  );
11200  }
11201 #endif
11202  }
11203 
11206  const Fw::StringBase& directory,
11207  I32 status
11208  ) const
11209  {
11210  // Get the time
11211  Fw::Time _logTime;
11212  if (this->isConnected_timeCaller_OutputPort(0)) {
11213  this->timeCaller_out(0, _logTime);
11214  }
11215 
11217 
11218  // Emit the event on the log port
11219  if (this->isConnected_logOut_OutputPort(0)) {
11220  Fw::LogBuffer _logBuff;
11222 
11223 #if FW_AMPCS_COMPATIBLE
11224  // Serialize the number of arguments
11225  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11226  FW_ASSERT(
11227  _status == Fw::FW_SERIALIZE_OK,
11228  static_cast<FwAssertArgType>(_status)
11229  );
11230 #endif
11231 
11232  _status = directory.serializeTo(
11233  _logBuff,
11234  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
11235  );
11236  FW_ASSERT(
11237  _status == Fw::FW_SERIALIZE_OK,
11238  static_cast<FwAssertArgType>(_status)
11239  );
11240 
11241 #if FW_AMPCS_COMPATIBLE
11242  // Serialize the argument size
11243  _status = _logBuff.serializeFrom(
11244  static_cast<U8>(sizeof(I32))
11245  );
11246  FW_ASSERT(
11247  _status == Fw::FW_SERIALIZE_OK,
11248  static_cast<FwAssertArgType>(_status)
11249  );
11250 #endif
11251  _status = _logBuff.serializeFrom(status);
11252  FW_ASSERT(
11253  _status == Fw::FW_SERIALIZE_OK,
11254  static_cast<FwAssertArgType>(_status)
11255  );
11256 
11257  this->logOut_out(
11258  0,
11259  _id,
11260  _logTime,
11262  _logBuff
11263  );
11264  }
11265 
11266  // Emit the event on the text log port
11267 #if FW_ENABLE_TEXT_LOGGING
11268  if (this->isConnected_logTextOut_OutputPort(0)) {
11269 #if FW_OBJECT_NAMES == 1
11270  const char* _formatString =
11271  "(%s) %s: Failed to read from playback directory %s, error=%" PRIi32 "";
11272 #else
11273  const char* _formatString =
11274  "%s: Failed to read from playback directory %s, error=%" PRIi32 "";
11275 #endif
11276 
11277  Fw::TextLogString _logString;
11278  (void) _logString.format(
11279  _formatString,
11280 #if FW_OBJECT_NAMES == 1
11281  this->m_objName.toChar(),
11282 #endif
11283  "PlaybackDirReadFailed ",
11284  directory.toChar(),
11285  status
11286  );
11287 
11288  this->logTextOut_out(
11289  0,
11290  _id,
11291  _logTime,
11293  _logString
11294  );
11295  }
11296 #endif
11297  }
11298 
11301  {
11302  // Get the time
11303  Fw::Time _logTime;
11304  if (this->isConnected_timeCaller_OutputPort(0)) {
11305  this->timeCaller_out(0, _logTime);
11306  }
11307 
11309 
11310  // Emit the event on the log port
11311  if (this->isConnected_logOut_OutputPort(0)) {
11312  Fw::LogBuffer _logBuff;
11313 
11314 #if FW_AMPCS_COMPATIBLE
11316  // Serialize the number of arguments
11317  _status = _logBuff.serializeFrom(static_cast<U8>(0));
11318  FW_ASSERT(
11319  _status == Fw::FW_SERIALIZE_OK,
11320  static_cast<FwAssertArgType>(_status)
11321  );
11322 #endif
11323 
11324  this->logOut_out(
11325  0,
11326  _id,
11327  _logTime,
11329  _logBuff
11330  );
11331  }
11332 
11333  // Emit the event on the text log port
11334 #if FW_ENABLE_TEXT_LOGGING
11335  if (this->isConnected_logTextOut_OutputPort(0)) {
11336 #if FW_OBJECT_NAMES == 1
11337  const char* _formatString =
11338  "(%s) %s: Attempt to reset a transaction that has already been freed";
11339 #else
11340  const char* _formatString =
11341  "%s: Attempt to reset a transaction that has already been freed";
11342 #endif
11343 
11344  Fw::TextLogString _logString;
11345  (void) _logString.format(
11346  _formatString,
11347 #if FW_OBJECT_NAMES == 1
11348  this->m_objName.toChar(),
11349 #endif
11350  "ResetFreedTransaction "
11351  );
11352 
11353  this->logTextOut_out(
11354  0,
11355  _id,
11356  _logTime,
11358  _logString
11359  );
11360  }
11361 #endif
11362  }
11363 
11366  const Fw::StringBase& filename,
11367  I32 status
11368  ) const
11369  {
11370  // Get the time
11371  Fw::Time _logTime;
11372  if (this->isConnected_timeCaller_OutputPort(0)) {
11373  this->timeCaller_out(0, _logTime);
11374  }
11375 
11376  const FwEventIdType _id = this->getIdBase() + EVENTID_FILEREMOVEFAILED;
11377 
11378  // Emit the event on the log port
11379  if (this->isConnected_logOut_OutputPort(0)) {
11380  Fw::LogBuffer _logBuff;
11382 
11383 #if FW_AMPCS_COMPATIBLE
11384  // Serialize the number of arguments
11385  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11386  FW_ASSERT(
11387  _status == Fw::FW_SERIALIZE_OK,
11388  static_cast<FwAssertArgType>(_status)
11389  );
11390 #endif
11391 
11392  _status = filename.serializeTo(
11393  _logBuff,
11394  FW_MIN(static_cast<FwSizeType>(FW_LOG_STRING_MAX_SIZE), 200)
11395  );
11396  FW_ASSERT(
11397  _status == Fw::FW_SERIALIZE_OK,
11398  static_cast<FwAssertArgType>(_status)
11399  );
11400 
11401 #if FW_AMPCS_COMPATIBLE
11402  // Serialize the argument size
11403  _status = _logBuff.serializeFrom(
11404  static_cast<U8>(sizeof(I32))
11405  );
11406  FW_ASSERT(
11407  _status == Fw::FW_SERIALIZE_OK,
11408  static_cast<FwAssertArgType>(_status)
11409  );
11410 #endif
11411  _status = _logBuff.serializeFrom(status);
11412  FW_ASSERT(
11413  _status == Fw::FW_SERIALIZE_OK,
11414  static_cast<FwAssertArgType>(_status)
11415  );
11416 
11417  this->logOut_out(
11418  0,
11419  _id,
11420  _logTime,
11422  _logBuff
11423  );
11424  }
11425 
11426  // Emit the event on the text log port
11427 #if FW_ENABLE_TEXT_LOGGING
11428  if (this->isConnected_logTextOut_OutputPort(0)) {
11429 #if FW_OBJECT_NAMES == 1
11430  const char* _formatString =
11431  "(%s) %s: Failed to remove file %s, error=%" PRIi32 "";
11432 #else
11433  const char* _formatString =
11434  "%s: Failed to remove file %s, error=%" PRIi32 "";
11435 #endif
11436 
11437  Fw::TextLogString _logString;
11438  (void) _logString.format(
11439  _formatString,
11440 #if FW_OBJECT_NAMES == 1
11441  this->m_objName.toChar(),
11442 #endif
11443  "FileRemoveFailed ",
11444  filename.toChar(),
11445  status
11446  );
11447 
11448  this->logTextOut_out(
11449  0,
11450  _id,
11451  _logTime,
11453  _logString
11454  );
11455  }
11456 #endif
11457  }
11458 
11461  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11463  ) const
11464  {
11465  // Get the time
11466  Fw::Time _logTime;
11467  if (this->isConnected_timeCaller_OutputPort(0)) {
11468  this->timeCaller_out(0, _logTime);
11469  }
11470 
11472 
11473  // Emit the event on the log port
11474  if (this->isConnected_logOut_OutputPort(0)) {
11475  Fw::LogBuffer _logBuff;
11477 
11478 #if FW_AMPCS_COMPATIBLE
11479  // Serialize the number of arguments
11480  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11481  FW_ASSERT(
11482  _status == Fw::FW_SERIALIZE_OK,
11483  static_cast<FwAssertArgType>(_status)
11484  );
11485 #endif
11486 
11487 #if FW_AMPCS_COMPATIBLE
11488  // Serialize the argument size
11489  _status = _logBuff.serializeFrom(
11490  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11491  );
11492  FW_ASSERT(
11493  _status == Fw::FW_SERIALIZE_OK,
11494  static_cast<FwAssertArgType>(_status)
11495  );
11496 #endif
11497  _status = _logBuff.serializeFrom(transactionSeq);
11498  FW_ASSERT(
11499  _status == Fw::FW_SERIALIZE_OK,
11500  static_cast<FwAssertArgType>(_status)
11501  );
11502 
11503 #if FW_AMPCS_COMPATIBLE
11504  // Serialize the argument size
11505  _status = _logBuff.serializeFrom(
11506  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11507  );
11508  FW_ASSERT(
11509  _status == Fw::FW_SERIALIZE_OK,
11510  static_cast<FwAssertArgType>(_status)
11511  );
11512 #endif
11513  _status = _logBuff.serializeFrom(entityId);
11514  FW_ASSERT(
11515  _status == Fw::FW_SERIALIZE_OK,
11516  static_cast<FwAssertArgType>(_status)
11517  );
11518 
11519  this->logOut_out(
11520  0,
11521  _id,
11522  _logTime,
11524  _logBuff
11525  );
11526  }
11527 
11528  // Emit the event on the text log port
11529 #if FW_ENABLE_TEXT_LOGGING
11530  if (this->isConnected_logTextOut_OutputPort(0)) {
11531 #if FW_OBJECT_NAMES == 1
11532  const char* _formatString =
11533  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") suspended";
11534 #else
11535  const char* _formatString =
11536  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") suspended";
11537 #endif
11538 
11539  Fw::TextLogString _logString;
11540  (void) _logString.format(
11541  _formatString,
11542 #if FW_OBJECT_NAMES == 1
11543  this->m_objName.toChar(),
11544 #endif
11545  "TransactionSuspended ",
11546  transactionSeq,
11547  entityId
11548  );
11549 
11550  this->logTextOut_out(
11551  0,
11552  _id,
11553  _logTime,
11555  _logString
11556  );
11557  }
11558 #endif
11559  }
11560 
11563  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11565  ) const
11566  {
11567  // Get the time
11568  Fw::Time _logTime;
11569  if (this->isConnected_timeCaller_OutputPort(0)) {
11570  this->timeCaller_out(0, _logTime);
11571  }
11572 
11573  const FwEventIdType _id = this->getIdBase() + EVENTID_TRANSACTIONRESUMED;
11574 
11575  // Emit the event on the log port
11576  if (this->isConnected_logOut_OutputPort(0)) {
11577  Fw::LogBuffer _logBuff;
11579 
11580 #if FW_AMPCS_COMPATIBLE
11581  // Serialize the number of arguments
11582  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11583  FW_ASSERT(
11584  _status == Fw::FW_SERIALIZE_OK,
11585  static_cast<FwAssertArgType>(_status)
11586  );
11587 #endif
11588 
11589 #if FW_AMPCS_COMPATIBLE
11590  // Serialize the argument size
11591  _status = _logBuff.serializeFrom(
11592  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11593  );
11594  FW_ASSERT(
11595  _status == Fw::FW_SERIALIZE_OK,
11596  static_cast<FwAssertArgType>(_status)
11597  );
11598 #endif
11599  _status = _logBuff.serializeFrom(transactionSeq);
11600  FW_ASSERT(
11601  _status == Fw::FW_SERIALIZE_OK,
11602  static_cast<FwAssertArgType>(_status)
11603  );
11604 
11605 #if FW_AMPCS_COMPATIBLE
11606  // Serialize the argument size
11607  _status = _logBuff.serializeFrom(
11608  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11609  );
11610  FW_ASSERT(
11611  _status == Fw::FW_SERIALIZE_OK,
11612  static_cast<FwAssertArgType>(_status)
11613  );
11614 #endif
11615  _status = _logBuff.serializeFrom(entityId);
11616  FW_ASSERT(
11617  _status == Fw::FW_SERIALIZE_OK,
11618  static_cast<FwAssertArgType>(_status)
11619  );
11620 
11621  this->logOut_out(
11622  0,
11623  _id,
11624  _logTime,
11626  _logBuff
11627  );
11628  }
11629 
11630  // Emit the event on the text log port
11631 #if FW_ENABLE_TEXT_LOGGING
11632  if (this->isConnected_logTextOut_OutputPort(0)) {
11633 #if FW_OBJECT_NAMES == 1
11634  const char* _formatString =
11635  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") resumed";
11636 #else
11637  const char* _formatString =
11638  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") resumed";
11639 #endif
11640 
11641  Fw::TextLogString _logString;
11642  (void) _logString.format(
11643  _formatString,
11644 #if FW_OBJECT_NAMES == 1
11645  this->m_objName.toChar(),
11646 #endif
11647  "TransactionResumed ",
11648  transactionSeq,
11649  entityId
11650  );
11651 
11652  this->logTextOut_out(
11653  0,
11654  _id,
11655  _logTime,
11657  _logString
11658  );
11659  }
11660 #endif
11661  }
11662 
11665  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11667  ) const
11668  {
11669  // Get the time
11670  Fw::Time _logTime;
11671  if (this->isConnected_timeCaller_OutputPort(0)) {
11672  this->timeCaller_out(0, _logTime);
11673  }
11674 
11675  const FwEventIdType _id = this->getIdBase() + EVENTID_TRANSACTIONCANCELED;
11676 
11677  // Emit the event on the log port
11678  if (this->isConnected_logOut_OutputPort(0)) {
11679  Fw::LogBuffer _logBuff;
11681 
11682 #if FW_AMPCS_COMPATIBLE
11683  // Serialize the number of arguments
11684  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11685  FW_ASSERT(
11686  _status == Fw::FW_SERIALIZE_OK,
11687  static_cast<FwAssertArgType>(_status)
11688  );
11689 #endif
11690 
11691 #if FW_AMPCS_COMPATIBLE
11692  // Serialize the argument size
11693  _status = _logBuff.serializeFrom(
11694  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11695  );
11696  FW_ASSERT(
11697  _status == Fw::FW_SERIALIZE_OK,
11698  static_cast<FwAssertArgType>(_status)
11699  );
11700 #endif
11701  _status = _logBuff.serializeFrom(transactionSeq);
11702  FW_ASSERT(
11703  _status == Fw::FW_SERIALIZE_OK,
11704  static_cast<FwAssertArgType>(_status)
11705  );
11706 
11707 #if FW_AMPCS_COMPATIBLE
11708  // Serialize the argument size
11709  _status = _logBuff.serializeFrom(
11710  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11711  );
11712  FW_ASSERT(
11713  _status == Fw::FW_SERIALIZE_OK,
11714  static_cast<FwAssertArgType>(_status)
11715  );
11716 #endif
11717  _status = _logBuff.serializeFrom(entityId);
11718  FW_ASSERT(
11719  _status == Fw::FW_SERIALIZE_OK,
11720  static_cast<FwAssertArgType>(_status)
11721  );
11722 
11723  this->logOut_out(
11724  0,
11725  _id,
11726  _logTime,
11728  _logBuff
11729  );
11730  }
11731 
11732  // Emit the event on the text log port
11733 #if FW_ENABLE_TEXT_LOGGING
11734  if (this->isConnected_logTextOut_OutputPort(0)) {
11735 #if FW_OBJECT_NAMES == 1
11736  const char* _formatString =
11737  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") canceled";
11738 #else
11739  const char* _formatString =
11740  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") canceled";
11741 #endif
11742 
11743  Fw::TextLogString _logString;
11744  (void) _logString.format(
11745  _formatString,
11746 #if FW_OBJECT_NAMES == 1
11747  this->m_objName.toChar(),
11748 #endif
11749  "TransactionCanceled ",
11750  transactionSeq,
11751  entityId
11752  );
11753 
11754  this->logTextOut_out(
11755  0,
11756  _id,
11757  _logTime,
11759  _logString
11760  );
11761  }
11762 #endif
11763  }
11764 
11767  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11769  ) const
11770  {
11771  // Get the time
11772  Fw::Time _logTime;
11773  if (this->isConnected_timeCaller_OutputPort(0)) {
11774  this->timeCaller_out(0, _logTime);
11775  }
11776 
11778 
11779  // Emit the event on the log port
11780  if (this->isConnected_logOut_OutputPort(0)) {
11781  Fw::LogBuffer _logBuff;
11783 
11784 #if FW_AMPCS_COMPATIBLE
11785  // Serialize the number of arguments
11786  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11787  FW_ASSERT(
11788  _status == Fw::FW_SERIALIZE_OK,
11789  static_cast<FwAssertArgType>(_status)
11790  );
11791 #endif
11792 
11793 #if FW_AMPCS_COMPATIBLE
11794  // Serialize the argument size
11795  _status = _logBuff.serializeFrom(
11796  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11797  );
11798  FW_ASSERT(
11799  _status == Fw::FW_SERIALIZE_OK,
11800  static_cast<FwAssertArgType>(_status)
11801  );
11802 #endif
11803  _status = _logBuff.serializeFrom(transactionSeq);
11804  FW_ASSERT(
11805  _status == Fw::FW_SERIALIZE_OK,
11806  static_cast<FwAssertArgType>(_status)
11807  );
11808 
11809 #if FW_AMPCS_COMPATIBLE
11810  // Serialize the argument size
11811  _status = _logBuff.serializeFrom(
11812  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11813  );
11814  FW_ASSERT(
11815  _status == Fw::FW_SERIALIZE_OK,
11816  static_cast<FwAssertArgType>(_status)
11817  );
11818 #endif
11819  _status = _logBuff.serializeFrom(entityId);
11820  FW_ASSERT(
11821  _status == Fw::FW_SERIALIZE_OK,
11822  static_cast<FwAssertArgType>(_status)
11823  );
11824 
11825  this->logOut_out(
11826  0,
11827  _id,
11828  _logTime,
11830  _logBuff
11831  );
11832  }
11833 
11834  // Emit the event on the text log port
11835 #if FW_ENABLE_TEXT_LOGGING
11836  if (this->isConnected_logTextOut_OutputPort(0)) {
11837 #if FW_OBJECT_NAMES == 1
11838  const char* _formatString =
11839  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") abandoned";
11840 #else
11841  const char* _formatString =
11842  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") abandoned";
11843 #endif
11844 
11845  Fw::TextLogString _logString;
11846  (void) _logString.format(
11847  _formatString,
11848 #if FW_OBJECT_NAMES == 1
11849  this->m_objName.toChar(),
11850 #endif
11851  "TransactionAbandoned ",
11852  transactionSeq,
11853  entityId
11854  );
11855 
11856  this->logTextOut_out(
11857  0,
11858  _id,
11859  _logTime,
11861  _logString
11862  );
11863  }
11864 #endif
11865  }
11866 
11869  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
11871  ) const
11872  {
11873  // Get the time
11874  Fw::Time _logTime;
11875  if (this->isConnected_timeCaller_OutputPort(0)) {
11876  this->timeCaller_out(0, _logTime);
11877  }
11878 
11879  const FwEventIdType _id = this->getIdBase() + EVENTID_TRANSACTIONNOTFOUND;
11880 
11881  // Emit the event on the log port
11882  if (this->isConnected_logOut_OutputPort(0)) {
11883  Fw::LogBuffer _logBuff;
11885 
11886 #if FW_AMPCS_COMPATIBLE
11887  // Serialize the number of arguments
11888  _status = _logBuff.serializeFrom(static_cast<U8>(2));
11889  FW_ASSERT(
11890  _status == Fw::FW_SERIALIZE_OK,
11891  static_cast<FwAssertArgType>(_status)
11892  );
11893 #endif
11894 
11895 #if FW_AMPCS_COMPATIBLE
11896  // Serialize the argument size
11897  _status = _logBuff.serializeFrom(
11898  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
11899  );
11900  FW_ASSERT(
11901  _status == Fw::FW_SERIALIZE_OK,
11902  static_cast<FwAssertArgType>(_status)
11903  );
11904 #endif
11905  _status = _logBuff.serializeFrom(transactionSeq);
11906  FW_ASSERT(
11907  _status == Fw::FW_SERIALIZE_OK,
11908  static_cast<FwAssertArgType>(_status)
11909  );
11910 
11911 #if FW_AMPCS_COMPATIBLE
11912  // Serialize the argument size
11913  _status = _logBuff.serializeFrom(
11914  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
11915  );
11916  FW_ASSERT(
11917  _status == Fw::FW_SERIALIZE_OK,
11918  static_cast<FwAssertArgType>(_status)
11919  );
11920 #endif
11921  _status = _logBuff.serializeFrom(entityId);
11922  FW_ASSERT(
11923  _status == Fw::FW_SERIALIZE_OK,
11924  static_cast<FwAssertArgType>(_status)
11925  );
11926 
11927  this->logOut_out(
11928  0,
11929  _id,
11930  _logTime,
11932  _logBuff
11933  );
11934  }
11935 
11936  // Emit the event on the text log port
11937 #if FW_ENABLE_TEXT_LOGGING
11938  if (this->isConnected_logTextOut_OutputPort(0)) {
11939 #if FW_OBJECT_NAMES == 1
11940  const char* _formatString =
11941  "(%s) %s: Transaction (%" PRIu32 ", %" PRIu32 ") not found";
11942 #else
11943  const char* _formatString =
11944  "%s: Transaction (%" PRIu32 ", %" PRIu32 ") not found";
11945 #endif
11946 
11947  Fw::TextLogString _logString;
11948  (void) _logString.format(
11949  _formatString,
11950 #if FW_OBJECT_NAMES == 1
11951  this->m_objName.toChar(),
11952 #endif
11953  "TransactionNotFound ",
11954  transactionSeq,
11955  entityId
11956  );
11957 
11958  this->logTextOut_out(
11959  0,
11960  _id,
11961  _logTime,
11963  _logString
11964  );
11965  }
11966 #endif
11967  }
11968 
11971  {
11972  // Get the time
11973  Fw::Time _logTime;
11974  if (this->isConnected_timeCaller_OutputPort(0)) {
11975  this->timeCaller_out(0, _logTime);
11976  }
11977 
11978  const FwEventIdType _id = this->getIdBase() + EVENTID_RESETCOUNTERS;
11979 
11980  // Emit the event on the log port
11981  if (this->isConnected_logOut_OutputPort(0)) {
11982  Fw::LogBuffer _logBuff;
11984 
11985 #if FW_AMPCS_COMPATIBLE
11986  // Serialize the number of arguments
11987  _status = _logBuff.serializeFrom(static_cast<U8>(1));
11988  FW_ASSERT(
11989  _status == Fw::FW_SERIALIZE_OK,
11990  static_cast<FwAssertArgType>(_status)
11991  );
11992 #endif
11993 
11994 #if FW_AMPCS_COMPATIBLE
11995  // Serialize the argument size
11996  _status = _logBuff.serializeFrom(
11997  static_cast<U8>(sizeof(U8))
11998  );
11999  FW_ASSERT(
12000  _status == Fw::FW_SERIALIZE_OK,
12001  static_cast<FwAssertArgType>(_status)
12002  );
12003 #endif
12004  _status = _logBuff.serializeFrom(channelId);
12005  FW_ASSERT(
12006  _status == Fw::FW_SERIALIZE_OK,
12007  static_cast<FwAssertArgType>(_status)
12008  );
12009 
12010  this->logOut_out(
12011  0,
12012  _id,
12013  _logTime,
12015  _logBuff
12016  );
12017  }
12018 
12019  // Emit the event on the text log port
12020 #if FW_ENABLE_TEXT_LOGGING
12021  if (this->isConnected_logTextOut_OutputPort(0)) {
12022 #if FW_OBJECT_NAMES == 1
12023  const char* _formatString =
12024  "(%s) %s: Reset telemetry counters for channel %" PRIu8 "";
12025 #else
12026  const char* _formatString =
12027  "%s: Reset telemetry counters for channel %" PRIu8 "";
12028 #endif
12029 
12030  Fw::TextLogString _logString;
12031  (void) _logString.format(
12032  _formatString,
12033 #if FW_OBJECT_NAMES == 1
12034  this->m_objName.toChar(),
12035 #endif
12036  "ResetCounters ",
12037  channelId
12038  );
12039 
12040  this->logTextOut_out(
12041  0,
12042  _id,
12043  _logTime,
12045  _logString
12046  );
12047  }
12048 #endif
12049  }
12050 
12055  ) const
12056  {
12057  // Get the time
12058  Fw::Time _logTime;
12059  if (this->isConnected_timeCaller_OutputPort(0)) {
12060  this->timeCaller_out(0, _logTime);
12061  }
12062 
12063  const FwEventIdType _id = this->getIdBase() + EVENTID_TXLATEFINACKED;
12064 
12065  // Emit the event on the log port
12066  if (this->isConnected_logOut_OutputPort(0)) {
12067  Fw::LogBuffer _logBuff;
12069 
12070 #if FW_AMPCS_COMPATIBLE
12071  // Serialize the number of arguments
12072  _status = _logBuff.serializeFrom(static_cast<U8>(2));
12073  FW_ASSERT(
12074  _status == Fw::FW_SERIALIZE_OK,
12075  static_cast<FwAssertArgType>(_status)
12076  );
12077 #endif
12078 
12079 #if FW_AMPCS_COMPATIBLE
12080  // Serialize the argument size
12081  _status = _logBuff.serializeFrom(
12082  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::EntityId))
12083  );
12084  FW_ASSERT(
12085  _status == Fw::FW_SERIALIZE_OK,
12086  static_cast<FwAssertArgType>(_status)
12087  );
12088 #endif
12089  _status = _logBuff.serializeFrom(srcEid);
12090  FW_ASSERT(
12091  _status == Fw::FW_SERIALIZE_OK,
12092  static_cast<FwAssertArgType>(_status)
12093  );
12094 
12095 #if FW_AMPCS_COMPATIBLE
12096  // Serialize the argument size
12097  _status = _logBuff.serializeFrom(
12098  static_cast<U8>(sizeof(Svc::Ccsds::Cfdp::TransactionSeq))
12099  );
12100  FW_ASSERT(
12101  _status == Fw::FW_SERIALIZE_OK,
12102  static_cast<FwAssertArgType>(_status)
12103  );
12104 #endif
12105  _status = _logBuff.serializeFrom(seqNum);
12106  FW_ASSERT(
12107  _status == Fw::FW_SERIALIZE_OK,
12108  static_cast<FwAssertArgType>(_status)
12109  );
12110 
12111  this->logOut_out(
12112  0,
12113  _id,
12114  _logTime,
12116  _logBuff
12117  );
12118  }
12119 
12120  // Emit the event on the text log port
12121 #if FW_ENABLE_TEXT_LOGGING
12122  if (this->isConnected_logTextOut_OutputPort(0)) {
12123 #if FW_OBJECT_NAMES == 1
12124  const char* _formatString =
12125  "(%s) %s: Acknowledged late FIN for transaction %" PRIu32 ":%" PRIu32 "";
12126 #else
12127  const char* _formatString =
12128  "%s: Acknowledged late FIN for transaction %" PRIu32 ":%" PRIu32 "";
12129 #endif
12130 
12131  Fw::TextLogString _logString;
12132  (void) _logString.format(
12133  _formatString,
12134 #if FW_OBJECT_NAMES == 1
12135  this->m_objName.toChar(),
12136 #endif
12137  "TxLateFinAcked ",
12138  srcEid,
12139  seqNum
12140  );
12141 
12142  this->logTextOut_out(
12143  0,
12144  _id,
12145  _logTime,
12147  _logString
12148  );
12149  }
12150 #endif
12151  }
12152 
12153  // ----------------------------------------------------------------------
12154  // Telemetry serialized write
12155  // ----------------------------------------------------------------------
12156 
12159  FwChanIdType id,
12160  Fw::TlmBuffer& _tlmBuff,
12161  Fw::Time _tlmTime
12162  ) const
12163  {
12164  if (this->isConnected_tlmOut_OutputPort(0)) {
12165  if (
12167  (_tlmTime == Fw::ZERO_TIME)
12168  ) {
12169  this->timeCaller_out(0, _tlmTime);
12170  }
12171 
12172  FwChanIdType _id;
12173  _id = this->getIdBase() + id;
12174 
12175  this->tlmOut_out(
12176  0,
12177  _id,
12178  _tlmTime,
12179  _tlmBuff
12180  );
12181  }
12182  }
12183 
12184  // ----------------------------------------------------------------------
12185  // Telemetry write functions
12186  // ----------------------------------------------------------------------
12187 
12191  Fw::Time _tlmTime
12192  ) const
12193  {
12194  if (this->isConnected_tlmOut_OutputPort(0)) {
12195  Fw::TlmBuffer _tlmBuff;
12196  Fw::SerializeStatus _stat = _tlmBuff.serializeFrom(arg);
12197  FW_ASSERT(
12198  _stat == Fw::FW_SERIALIZE_OK,
12199  static_cast<FwAssertArgType>(_stat)
12200  );
12201 
12202  this->tlmWrite(
12204  _tlmBuff,
12205  _tlmTime
12206  );
12207  }
12208  }
12209 
12210  // ----------------------------------------------------------------------
12211  // Parameter hook functions
12212  // ----------------------------------------------------------------------
12213 
12216  {
12217  // Do nothing by default
12218  }
12219 
12222  {
12223  // Do nothing by default
12224  }
12225 
12226  // ----------------------------------------------------------------------
12227  // Parameter get functions
12228  // ----------------------------------------------------------------------
12229 
12232  {
12233  Svc::Ccsds::Cfdp::EntityId _local{};
12234  this->m_paramLock.lock();
12235  valid = this->m_param_LocalEid_valid;
12236  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12237  _local = this->m_LocalEid;
12238  }
12239  this->m_paramLock.unlock();
12240  return _local;
12241  }
12242 
12245  {
12246  U32 _local{};
12247  this->m_paramLock.lock();
12248  valid = this->m_param_OutgoingFileChunkSize_valid;
12249  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12250  _local = this->m_OutgoingFileChunkSize;
12251  }
12252  this->m_paramLock.unlock();
12253  return _local;
12254  }
12255 
12258  {
12259  U32 _local{};
12260  this->m_paramLock.lock();
12261  valid = this->m_param_RxCrcCalcBytesPerCycle_valid;
12262  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12263  _local = this->m_RxCrcCalcBytesPerCycle;
12264  }
12265  this->m_paramLock.unlock();
12266  return _local;
12267  }
12268 
12271  {
12272  U8 _local{};
12273  this->m_paramLock.lock();
12274  valid = this->m_param_PostInactivitySendRetries_valid;
12275  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12276  _local = this->m_PostInactivitySendRetries;
12277  }
12278  this->m_paramLock.unlock();
12279  return _local;
12280  }
12281 
12284  {
12285  U8 _local{};
12286  this->m_paramLock.lock();
12287  valid = this->m_param_FileInDefaultChannel_valid;
12288  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12289  _local = this->m_FileInDefaultChannel;
12290  }
12291  this->m_paramLock.unlock();
12292  return _local;
12293  }
12294 
12297  {
12298  Svc::Ccsds::Cfdp::EntityId _local{};
12299  this->m_paramLock.lock();
12300  valid = this->m_param_FileInDefaultDestEntityId_valid;
12301  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12302  _local = this->m_FileInDefaultDestEntityId;
12303  }
12304  this->m_paramLock.unlock();
12305  return _local;
12306  }
12307 
12310  {
12311  Svc::Ccsds::Cfdp::Class _local{};
12312  this->m_paramLock.lock();
12313  valid = this->m_param_FileInDefaultClass_valid;
12314  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12315  _local = this->m_FileInDefaultClass;
12316  }
12317  this->m_paramLock.unlock();
12318  return _local;
12319  }
12320 
12323  {
12324  Svc::Ccsds::Cfdp::Keep _local{};
12325  this->m_paramLock.lock();
12326  valid = this->m_param_FileInDefaultKeep_valid;
12327  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12328  _local = this->m_FileInDefaultKeep;
12329  }
12330  this->m_paramLock.unlock();
12331  return _local;
12332  }
12333 
12336  {
12337  U8 _local{};
12338  this->m_paramLock.lock();
12339  valid = this->m_param_FileInDefaultPriority_valid;
12340  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12341  _local = this->m_FileInDefaultPriority;
12342  }
12343  this->m_paramLock.unlock();
12344  return _local;
12345  }
12346 
12349  {
12351  this->m_paramLock.lock();
12352  valid = this->m_param_ChannelConfig_valid;
12353  if ((valid == Fw::ParamValid::VALID) || (valid == Fw::ParamValid::DEFAULT)) {
12354  _local = this->m_ChannelConfig;
12355  }
12356  this->m_paramLock.unlock();
12357  return _local;
12358  }
12359 
12360  // ----------------------------------------------------------------------
12361  // Time
12362  // ----------------------------------------------------------------------
12363 
12365  getTime() const
12366  {
12367  if (this->isConnected_timeCaller_OutputPort(0)) {
12368  Fw::Time _time;
12369  this->timeCaller_out(0, _time);
12370  return _time;
12371  }
12372  else {
12373  return Fw::Time(TimeBase::TB_NONE, 0, 0);
12374  }
12375  }
12376 
12377  // ----------------------------------------------------------------------
12378  // Mutex operations for guarded ports
12379  //
12380  // You can override these operations to provide more sophisticated
12381  // synchronization
12382  // ----------------------------------------------------------------------
12383 
12386  {
12387  this->m_guardedPortMutex.lock();
12388  }
12389 
12392  {
12393  this->m_guardedPortMutex.unLock();
12394  }
12395 
12396  // ----------------------------------------------------------------------
12397  // Message dispatch functions
12398  // ----------------------------------------------------------------------
12399 
12400  Fw::QueuedComponentBase::MsgDispatchStatus CfdpManagerComponentBase ::
12401  doDispatch()
12402  {
12403  ComponentIpcSerializableBuffer _msg;
12404  FwQueuePriorityType _priority = 0;
12405 
12406  Os::Queue::Status _msgStatus = this->m_queue.receive(
12407  _msg,
12409  _priority
12410  );
12411  FW_ASSERT(
12412  _msgStatus == Os::Queue::OP_OK,
12413  static_cast<FwAssertArgType>(_msgStatus)
12414  );
12415 
12416  // Reset to beginning of buffer
12417  _msg.resetDeser();
12418 
12419  FwEnumStoreType _desMsg = 0;
12420  Fw::SerializeStatus _deserStatus = _msg.deserializeTo(_desMsg);
12421  FW_ASSERT(
12422  _deserStatus == Fw::FW_SERIALIZE_OK,
12423  static_cast<FwAssertArgType>(_deserStatus)
12424  );
12425 
12426  MsgTypeEnum _msgType = static_cast<MsgTypeEnum>(_desMsg);
12427 
12428  if (_msgType == CFDPMANAGER_COMPONENT_EXIT) {
12429  return MSG_DISPATCH_EXIT;
12430  }
12431 
12432  FwIndexType portNum = 0;
12433  _deserStatus = _msg.deserializeTo(portNum);
12434  FW_ASSERT(
12435  _deserStatus == Fw::FW_SERIALIZE_OK,
12436  static_cast<FwAssertArgType>(_deserStatus)
12437  );
12438 
12439  switch (_msgType) {
12440  // Handle async input port dataIn
12441  case DATAIN_BUFFERSEND: {
12442  // Deserialize argument fwBuffer
12443  Fw::Buffer fwBuffer;
12444  _deserStatus = _msg.deserializeTo(fwBuffer);
12445  FW_ASSERT(
12446  _deserStatus == Fw::FW_SERIALIZE_OK,
12447  static_cast<FwAssertArgType>(_deserStatus)
12448  );
12449  // Call handler function
12450  this->dataIn_handler(
12451  portNum,
12452  fwBuffer
12453  );
12454 
12455  break;
12456  }
12457 
12458  // Handle async input port dataReturnIn
12459  case DATARETURNIN_BUFFERSEND: {
12460  // Deserialize argument fwBuffer
12461  Fw::Buffer fwBuffer;
12462  _deserStatus = _msg.deserializeTo(fwBuffer);
12463  FW_ASSERT(
12464  _deserStatus == Fw::FW_SERIALIZE_OK,
12465  static_cast<FwAssertArgType>(_deserStatus)
12466  );
12467  // Call handler function
12468  this->dataReturnIn_handler(
12469  portNum,
12470  fwBuffer
12471  );
12472 
12473  break;
12474  }
12475 
12476  // Handle async input port pingIn
12477  case PINGIN_PING: {
12478  // Deserialize argument key
12479  U32 key;
12480  _deserStatus = _msg.deserializeTo(key);
12481  FW_ASSERT(
12482  _deserStatus == Fw::FW_SERIALIZE_OK,
12483  static_cast<FwAssertArgType>(_deserStatus)
12484  );
12485  // Call handler function
12486  this->pingIn_handler(
12487  portNum,
12488  key
12489  );
12490 
12491  break;
12492  }
12493 
12494  // Handle async input port run1Hz
12495  case RUN1HZ_SCHED: {
12496  // Deserialize argument context
12497  U32 context;
12498  _deserStatus = _msg.deserializeTo(context);
12499  FW_ASSERT(
12500  _deserStatus == Fw::FW_SERIALIZE_OK,
12501  static_cast<FwAssertArgType>(_deserStatus)
12502  );
12503  // Call handler function
12504  this->run1Hz_handler(
12505  portNum,
12506  context
12507  );
12508 
12509  break;
12510  }
12511 
12512  // Handle command SendFile
12513  case CMD_SENDFILE: {
12514  // Deserialize opcode
12515  FwOpcodeType _opCode = 0;
12516  _deserStatus = _msg.deserializeTo(_opCode);
12517  FW_ASSERT (
12518  _deserStatus == Fw::FW_SERIALIZE_OK,
12519  static_cast<FwAssertArgType>(_deserStatus)
12520  );
12521 
12522  // Deserialize command sequence
12523  U32 _cmdSeq = 0;
12524  _deserStatus = _msg.deserializeTo(_cmdSeq);
12525  FW_ASSERT (
12526  _deserStatus == Fw::FW_SERIALIZE_OK,
12527  static_cast<FwAssertArgType>(_deserStatus)
12528  );
12529 
12530  // Deserialize command argument buffer
12531  Fw::CmdArgBuffer args;
12532  _deserStatus = _msg.deserializeTo(args);
12533  FW_ASSERT (
12534  _deserStatus == Fw::FW_SERIALIZE_OK,
12535  static_cast<FwAssertArgType>(_deserStatus)
12536  );
12537 
12538  // Reset buffer
12539  args.resetDeser();
12540 
12541  // Deserialize argument channelId
12542  U8 channelId;
12543  _deserStatus = args.deserializeTo(channelId);
12544  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12546  this->cmdResponse_out(
12547  _opCode,
12548  _cmdSeq,
12550  );
12551  }
12552  // Don't crash the task if bad arguments were passed from the ground
12553  break;
12554  }
12555 
12556  // Deserialize argument destId
12558  _deserStatus = args.deserializeTo(destId);
12559  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12561  this->cmdResponse_out(
12562  _opCode,
12563  _cmdSeq,
12565  );
12566  }
12567  // Don't crash the task if bad arguments were passed from the ground
12568  break;
12569  }
12570 
12571  // Deserialize argument cfdpClass
12572  Svc::Ccsds::Cfdp::Class cfdpClass;
12573  _deserStatus = args.deserializeTo(cfdpClass);
12574  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12576  this->cmdResponse_out(
12577  _opCode,
12578  _cmdSeq,
12580  );
12581  }
12582  // Don't crash the task if bad arguments were passed from the ground
12583  break;
12584  }
12585 
12586  // Deserialize argument keep
12588  _deserStatus = args.deserializeTo(keep);
12589  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12591  this->cmdResponse_out(
12592  _opCode,
12593  _cmdSeq,
12595  );
12596  }
12597  // Don't crash the task if bad arguments were passed from the ground
12598  break;
12599  }
12600 
12601  // Deserialize argument priority
12602  U8 priority;
12603  _deserStatus = args.deserializeTo(priority);
12604  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12606  this->cmdResponse_out(
12607  _opCode,
12608  _cmdSeq,
12610  );
12611  }
12612  // Don't crash the task if bad arguments were passed from the ground
12613  break;
12614  }
12615 
12616  // Deserialize argument sourceFileName
12617  Fw::CmdStringArg sourceFileName;
12618  _deserStatus = args.deserializeTo(sourceFileName);
12619  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12621  this->cmdResponse_out(
12622  _opCode,
12623  _cmdSeq,
12625  );
12626  }
12627  // Don't crash the task if bad arguments were passed from the ground
12628  break;
12629  }
12630 
12631  // Deserialize argument destFileName
12632  Fw::CmdStringArg destFileName;
12633  _deserStatus = args.deserializeTo(destFileName);
12634  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12636  this->cmdResponse_out(
12637  _opCode,
12638  _cmdSeq,
12640  );
12641  }
12642  // Don't crash the task if bad arguments were passed from the ground
12643  break;
12644  }
12645 
12646  // Make sure there was no data left over.
12647  // That means the argument buffer size was incorrect.
12648 #if FW_CMD_CHECK_RESIDUAL
12649  if (args.getDeserializeSizeLeft() != 0) {
12651  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
12652  }
12653  // Don't crash the task if bad arguments were passed from the ground
12654  break;
12655  }
12656 #endif
12657 
12658  // Call handler function
12659  this->SendFile_cmdHandler(
12660  _opCode, _cmdSeq,
12661  channelId,
12662  destId,
12663  cfdpClass,
12664  keep,
12665  priority,
12666  sourceFileName,
12667  destFileName
12668  );
12669 
12670  break;
12671  }
12672 
12673  // Handle command PlaybackDirectory
12674  case CMD_PLAYBACKDIRECTORY: {
12675  // Deserialize opcode
12676  FwOpcodeType _opCode = 0;
12677  _deserStatus = _msg.deserializeTo(_opCode);
12678  FW_ASSERT (
12679  _deserStatus == Fw::FW_SERIALIZE_OK,
12680  static_cast<FwAssertArgType>(_deserStatus)
12681  );
12682 
12683  // Deserialize command sequence
12684  U32 _cmdSeq = 0;
12685  _deserStatus = _msg.deserializeTo(_cmdSeq);
12686  FW_ASSERT (
12687  _deserStatus == Fw::FW_SERIALIZE_OK,
12688  static_cast<FwAssertArgType>(_deserStatus)
12689  );
12690 
12691  // Deserialize command argument buffer
12692  Fw::CmdArgBuffer args;
12693  _deserStatus = _msg.deserializeTo(args);
12694  FW_ASSERT (
12695  _deserStatus == Fw::FW_SERIALIZE_OK,
12696  static_cast<FwAssertArgType>(_deserStatus)
12697  );
12698 
12699  // Reset buffer
12700  args.resetDeser();
12701 
12702  // Deserialize argument channelId
12703  U8 channelId;
12704  _deserStatus = args.deserializeTo(channelId);
12705  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12707  this->cmdResponse_out(
12708  _opCode,
12709  _cmdSeq,
12711  );
12712  }
12713  // Don't crash the task if bad arguments were passed from the ground
12714  break;
12715  }
12716 
12717  // Deserialize argument destId
12719  _deserStatus = args.deserializeTo(destId);
12720  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12722  this->cmdResponse_out(
12723  _opCode,
12724  _cmdSeq,
12726  );
12727  }
12728  // Don't crash the task if bad arguments were passed from the ground
12729  break;
12730  }
12731 
12732  // Deserialize argument cfdpClass
12733  Svc::Ccsds::Cfdp::Class cfdpClass;
12734  _deserStatus = args.deserializeTo(cfdpClass);
12735  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12737  this->cmdResponse_out(
12738  _opCode,
12739  _cmdSeq,
12741  );
12742  }
12743  // Don't crash the task if bad arguments were passed from the ground
12744  break;
12745  }
12746 
12747  // Deserialize argument keep
12749  _deserStatus = args.deserializeTo(keep);
12750  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12752  this->cmdResponse_out(
12753  _opCode,
12754  _cmdSeq,
12756  );
12757  }
12758  // Don't crash the task if bad arguments were passed from the ground
12759  break;
12760  }
12761 
12762  // Deserialize argument priority
12763  U8 priority;
12764  _deserStatus = args.deserializeTo(priority);
12765  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12767  this->cmdResponse_out(
12768  _opCode,
12769  _cmdSeq,
12771  );
12772  }
12773  // Don't crash the task if bad arguments were passed from the ground
12774  break;
12775  }
12776 
12777  // Deserialize argument sourceDirectory
12778  Fw::CmdStringArg sourceDirectory;
12779  _deserStatus = args.deserializeTo(sourceDirectory);
12780  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12782  this->cmdResponse_out(
12783  _opCode,
12784  _cmdSeq,
12786  );
12787  }
12788  // Don't crash the task if bad arguments were passed from the ground
12789  break;
12790  }
12791 
12792  // Deserialize argument destDirectory
12793  Fw::CmdStringArg destDirectory;
12794  _deserStatus = args.deserializeTo(destDirectory);
12795  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12797  this->cmdResponse_out(
12798  _opCode,
12799  _cmdSeq,
12801  );
12802  }
12803  // Don't crash the task if bad arguments were passed from the ground
12804  break;
12805  }
12806 
12807  // Make sure there was no data left over.
12808  // That means the argument buffer size was incorrect.
12809 #if FW_CMD_CHECK_RESIDUAL
12810  if (args.getDeserializeSizeLeft() != 0) {
12812  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
12813  }
12814  // Don't crash the task if bad arguments were passed from the ground
12815  break;
12816  }
12817 #endif
12818 
12819  // Call handler function
12821  _opCode, _cmdSeq,
12822  channelId,
12823  destId,
12824  cfdpClass,
12825  keep,
12826  priority,
12827  sourceDirectory,
12828  destDirectory
12829  );
12830 
12831  break;
12832  }
12833 
12834  // Handle command PollDirectory
12835  case CMD_POLLDIRECTORY: {
12836  // Deserialize opcode
12837  FwOpcodeType _opCode = 0;
12838  _deserStatus = _msg.deserializeTo(_opCode);
12839  FW_ASSERT (
12840  _deserStatus == Fw::FW_SERIALIZE_OK,
12841  static_cast<FwAssertArgType>(_deserStatus)
12842  );
12843 
12844  // Deserialize command sequence
12845  U32 _cmdSeq = 0;
12846  _deserStatus = _msg.deserializeTo(_cmdSeq);
12847  FW_ASSERT (
12848  _deserStatus == Fw::FW_SERIALIZE_OK,
12849  static_cast<FwAssertArgType>(_deserStatus)
12850  );
12851 
12852  // Deserialize command argument buffer
12853  Fw::CmdArgBuffer args;
12854  _deserStatus = _msg.deserializeTo(args);
12855  FW_ASSERT (
12856  _deserStatus == Fw::FW_SERIALIZE_OK,
12857  static_cast<FwAssertArgType>(_deserStatus)
12858  );
12859 
12860  // Reset buffer
12861  args.resetDeser();
12862 
12863  // Deserialize argument channelId
12864  U8 channelId;
12865  _deserStatus = args.deserializeTo(channelId);
12866  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12868  this->cmdResponse_out(
12869  _opCode,
12870  _cmdSeq,
12872  );
12873  }
12874  // Don't crash the task if bad arguments were passed from the ground
12875  break;
12876  }
12877 
12878  // Deserialize argument pollId
12879  U8 pollId;
12880  _deserStatus = args.deserializeTo(pollId);
12881  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12883  this->cmdResponse_out(
12884  _opCode,
12885  _cmdSeq,
12887  );
12888  }
12889  // Don't crash the task if bad arguments were passed from the ground
12890  break;
12891  }
12892 
12893  // Deserialize argument destId
12895  _deserStatus = args.deserializeTo(destId);
12896  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12898  this->cmdResponse_out(
12899  _opCode,
12900  _cmdSeq,
12902  );
12903  }
12904  // Don't crash the task if bad arguments were passed from the ground
12905  break;
12906  }
12907 
12908  // Deserialize argument cfdpClass
12909  Svc::Ccsds::Cfdp::Class cfdpClass;
12910  _deserStatus = args.deserializeTo(cfdpClass);
12911  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12913  this->cmdResponse_out(
12914  _opCode,
12915  _cmdSeq,
12917  );
12918  }
12919  // Don't crash the task if bad arguments were passed from the ground
12920  break;
12921  }
12922 
12923  // Deserialize argument priority
12924  U8 priority;
12925  _deserStatus = args.deserializeTo(priority);
12926  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12928  this->cmdResponse_out(
12929  _opCode,
12930  _cmdSeq,
12932  );
12933  }
12934  // Don't crash the task if bad arguments were passed from the ground
12935  break;
12936  }
12937 
12938  // Deserialize argument interval
12939  U32 interval;
12940  _deserStatus = args.deserializeTo(interval);
12941  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12943  this->cmdResponse_out(
12944  _opCode,
12945  _cmdSeq,
12947  );
12948  }
12949  // Don't crash the task if bad arguments were passed from the ground
12950  break;
12951  }
12952 
12953  // Deserialize argument sourceDirectory
12954  Fw::CmdStringArg sourceDirectory;
12955  _deserStatus = args.deserializeTo(sourceDirectory);
12956  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12958  this->cmdResponse_out(
12959  _opCode,
12960  _cmdSeq,
12962  );
12963  }
12964  // Don't crash the task if bad arguments were passed from the ground
12965  break;
12966  }
12967 
12968  // Deserialize argument destDirectory
12969  Fw::CmdStringArg destDirectory;
12970  _deserStatus = args.deserializeTo(destDirectory);
12971  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
12973  this->cmdResponse_out(
12974  _opCode,
12975  _cmdSeq,
12977  );
12978  }
12979  // Don't crash the task if bad arguments were passed from the ground
12980  break;
12981  }
12982 
12983  // Make sure there was no data left over.
12984  // That means the argument buffer size was incorrect.
12985 #if FW_CMD_CHECK_RESIDUAL
12986  if (args.getDeserializeSizeLeft() != 0) {
12988  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
12989  }
12990  // Don't crash the task if bad arguments were passed from the ground
12991  break;
12992  }
12993 #endif
12994 
12995  // Call handler function
12997  _opCode, _cmdSeq,
12998  channelId,
12999  pollId,
13000  destId,
13001  cfdpClass,
13002  priority,
13003  interval,
13004  sourceDirectory,
13005  destDirectory
13006  );
13007 
13008  break;
13009  }
13010 
13011  // Handle command StopPollDirectory
13012  case CMD_STOPPOLLDIRECTORY: {
13013  // Deserialize opcode
13014  FwOpcodeType _opCode = 0;
13015  _deserStatus = _msg.deserializeTo(_opCode);
13016  FW_ASSERT (
13017  _deserStatus == Fw::FW_SERIALIZE_OK,
13018  static_cast<FwAssertArgType>(_deserStatus)
13019  );
13020 
13021  // Deserialize command sequence
13022  U32 _cmdSeq = 0;
13023  _deserStatus = _msg.deserializeTo(_cmdSeq);
13024  FW_ASSERT (
13025  _deserStatus == Fw::FW_SERIALIZE_OK,
13026  static_cast<FwAssertArgType>(_deserStatus)
13027  );
13028 
13029  // Deserialize command argument buffer
13030  Fw::CmdArgBuffer args;
13031  _deserStatus = _msg.deserializeTo(args);
13032  FW_ASSERT (
13033  _deserStatus == Fw::FW_SERIALIZE_OK,
13034  static_cast<FwAssertArgType>(_deserStatus)
13035  );
13036 
13037  // Reset buffer
13038  args.resetDeser();
13039 
13040  // Deserialize argument channelId
13041  U8 channelId;
13042  _deserStatus = args.deserializeTo(channelId);
13043  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13045  this->cmdResponse_out(
13046  _opCode,
13047  _cmdSeq,
13049  );
13050  }
13051  // Don't crash the task if bad arguments were passed from the ground
13052  break;
13053  }
13054 
13055  // Deserialize argument pollId
13056  U8 pollId;
13057  _deserStatus = args.deserializeTo(pollId);
13058  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13060  this->cmdResponse_out(
13061  _opCode,
13062  _cmdSeq,
13064  );
13065  }
13066  // Don't crash the task if bad arguments were passed from the ground
13067  break;
13068  }
13069 
13070  // Make sure there was no data left over.
13071  // That means the argument buffer size was incorrect.
13072 #if FW_CMD_CHECK_RESIDUAL
13073  if (args.getDeserializeSizeLeft() != 0) {
13075  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13076  }
13077  // Don't crash the task if bad arguments were passed from the ground
13078  break;
13079  }
13080 #endif
13081 
13082  // Call handler function
13084  _opCode, _cmdSeq,
13085  channelId,
13086  pollId
13087  );
13088 
13089  break;
13090  }
13091 
13092  // Handle command SetChannelFlow
13093  case CMD_SETCHANNELFLOW: {
13094  // Deserialize opcode
13095  FwOpcodeType _opCode = 0;
13096  _deserStatus = _msg.deserializeTo(_opCode);
13097  FW_ASSERT (
13098  _deserStatus == Fw::FW_SERIALIZE_OK,
13099  static_cast<FwAssertArgType>(_deserStatus)
13100  );
13101 
13102  // Deserialize command sequence
13103  U32 _cmdSeq = 0;
13104  _deserStatus = _msg.deserializeTo(_cmdSeq);
13105  FW_ASSERT (
13106  _deserStatus == Fw::FW_SERIALIZE_OK,
13107  static_cast<FwAssertArgType>(_deserStatus)
13108  );
13109 
13110  // Deserialize command argument buffer
13111  Fw::CmdArgBuffer args;
13112  _deserStatus = _msg.deserializeTo(args);
13113  FW_ASSERT (
13114  _deserStatus == Fw::FW_SERIALIZE_OK,
13115  static_cast<FwAssertArgType>(_deserStatus)
13116  );
13117 
13118  // Reset buffer
13119  args.resetDeser();
13120 
13121  // Deserialize argument channelId
13122  U8 channelId;
13123  _deserStatus = args.deserializeTo(channelId);
13124  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13126  this->cmdResponse_out(
13127  _opCode,
13128  _cmdSeq,
13130  );
13131  }
13132  // Don't crash the task if bad arguments were passed from the ground
13133  break;
13134  }
13135 
13136  // Deserialize argument freeze
13137  Svc::Ccsds::Cfdp::Flow freeze;
13138  _deserStatus = args.deserializeTo(freeze);
13139  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13141  this->cmdResponse_out(
13142  _opCode,
13143  _cmdSeq,
13145  );
13146  }
13147  // Don't crash the task if bad arguments were passed from the ground
13148  break;
13149  }
13150 
13151  // Make sure there was no data left over.
13152  // That means the argument buffer size was incorrect.
13153 #if FW_CMD_CHECK_RESIDUAL
13154  if (args.getDeserializeSizeLeft() != 0) {
13156  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13157  }
13158  // Don't crash the task if bad arguments were passed from the ground
13159  break;
13160  }
13161 #endif
13162 
13163  // Call handler function
13165  _opCode, _cmdSeq,
13166  channelId,
13167  freeze
13168  );
13169 
13170  break;
13171  }
13172 
13173  // Handle command SuspendResumeTransaction
13174  case CMD_SUSPENDRESUMETRANSACTION: {
13175  // Deserialize opcode
13176  FwOpcodeType _opCode = 0;
13177  _deserStatus = _msg.deserializeTo(_opCode);
13178  FW_ASSERT (
13179  _deserStatus == Fw::FW_SERIALIZE_OK,
13180  static_cast<FwAssertArgType>(_deserStatus)
13181  );
13182 
13183  // Deserialize command sequence
13184  U32 _cmdSeq = 0;
13185  _deserStatus = _msg.deserializeTo(_cmdSeq);
13186  FW_ASSERT (
13187  _deserStatus == Fw::FW_SERIALIZE_OK,
13188  static_cast<FwAssertArgType>(_deserStatus)
13189  );
13190 
13191  // Deserialize command argument buffer
13192  Fw::CmdArgBuffer args;
13193  _deserStatus = _msg.deserializeTo(args);
13194  FW_ASSERT (
13195  _deserStatus == Fw::FW_SERIALIZE_OK,
13196  static_cast<FwAssertArgType>(_deserStatus)
13197  );
13198 
13199  // Reset buffer
13200  args.resetDeser();
13201 
13202  // Deserialize argument channelId
13203  U8 channelId;
13204  _deserStatus = args.deserializeTo(channelId);
13205  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13207  this->cmdResponse_out(
13208  _opCode,
13209  _cmdSeq,
13211  );
13212  }
13213  // Don't crash the task if bad arguments were passed from the ground
13214  break;
13215  }
13216 
13217  // Deserialize argument transactionSeq
13218  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq;
13219  _deserStatus = args.deserializeTo(transactionSeq);
13220  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13222  this->cmdResponse_out(
13223  _opCode,
13224  _cmdSeq,
13226  );
13227  }
13228  // Don't crash the task if bad arguments were passed from the ground
13229  break;
13230  }
13231 
13232  // Deserialize argument entityId
13233  Svc::Ccsds::Cfdp::EntityId entityId;
13234  _deserStatus = args.deserializeTo(entityId);
13235  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13237  this->cmdResponse_out(
13238  _opCode,
13239  _cmdSeq,
13241  );
13242  }
13243  // Don't crash the task if bad arguments were passed from the ground
13244  break;
13245  }
13246 
13247  // Deserialize argument action
13249  _deserStatus = args.deserializeTo(action);
13250  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13252  this->cmdResponse_out(
13253  _opCode,
13254  _cmdSeq,
13256  );
13257  }
13258  // Don't crash the task if bad arguments were passed from the ground
13259  break;
13260  }
13261 
13262  // Make sure there was no data left over.
13263  // That means the argument buffer size was incorrect.
13264 #if FW_CMD_CHECK_RESIDUAL
13265  if (args.getDeserializeSizeLeft() != 0) {
13267  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13268  }
13269  // Don't crash the task if bad arguments were passed from the ground
13270  break;
13271  }
13272 #endif
13273 
13274  // Call handler function
13276  _opCode, _cmdSeq,
13277  channelId,
13278  transactionSeq,
13279  entityId,
13280  action
13281  );
13282 
13283  break;
13284  }
13285 
13286  // Handle command CancelTransaction
13287  case CMD_CANCELTRANSACTION: {
13288  // Deserialize opcode
13289  FwOpcodeType _opCode = 0;
13290  _deserStatus = _msg.deserializeTo(_opCode);
13291  FW_ASSERT (
13292  _deserStatus == Fw::FW_SERIALIZE_OK,
13293  static_cast<FwAssertArgType>(_deserStatus)
13294  );
13295 
13296  // Deserialize command sequence
13297  U32 _cmdSeq = 0;
13298  _deserStatus = _msg.deserializeTo(_cmdSeq);
13299  FW_ASSERT (
13300  _deserStatus == Fw::FW_SERIALIZE_OK,
13301  static_cast<FwAssertArgType>(_deserStatus)
13302  );
13303 
13304  // Deserialize command argument buffer
13305  Fw::CmdArgBuffer args;
13306  _deserStatus = _msg.deserializeTo(args);
13307  FW_ASSERT (
13308  _deserStatus == Fw::FW_SERIALIZE_OK,
13309  static_cast<FwAssertArgType>(_deserStatus)
13310  );
13311 
13312  // Reset buffer
13313  args.resetDeser();
13314 
13315  // Deserialize argument channelId
13316  U8 channelId;
13317  _deserStatus = args.deserializeTo(channelId);
13318  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13320  this->cmdResponse_out(
13321  _opCode,
13322  _cmdSeq,
13324  );
13325  }
13326  // Don't crash the task if bad arguments were passed from the ground
13327  break;
13328  }
13329 
13330  // Deserialize argument transactionSeq
13331  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq;
13332  _deserStatus = args.deserializeTo(transactionSeq);
13333  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13335  this->cmdResponse_out(
13336  _opCode,
13337  _cmdSeq,
13339  );
13340  }
13341  // Don't crash the task if bad arguments were passed from the ground
13342  break;
13343  }
13344 
13345  // Deserialize argument entityId
13346  Svc::Ccsds::Cfdp::EntityId entityId;
13347  _deserStatus = args.deserializeTo(entityId);
13348  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13350  this->cmdResponse_out(
13351  _opCode,
13352  _cmdSeq,
13354  );
13355  }
13356  // Don't crash the task if bad arguments were passed from the ground
13357  break;
13358  }
13359 
13360  // Make sure there was no data left over.
13361  // That means the argument buffer size was incorrect.
13362 #if FW_CMD_CHECK_RESIDUAL
13363  if (args.getDeserializeSizeLeft() != 0) {
13365  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13366  }
13367  // Don't crash the task if bad arguments were passed from the ground
13368  break;
13369  }
13370 #endif
13371 
13372  // Call handler function
13374  _opCode, _cmdSeq,
13375  channelId,
13376  transactionSeq,
13377  entityId
13378  );
13379 
13380  break;
13381  }
13382 
13383  // Handle command AbandonTransaction
13384  case CMD_ABANDONTRANSACTION: {
13385  // Deserialize opcode
13386  FwOpcodeType _opCode = 0;
13387  _deserStatus = _msg.deserializeTo(_opCode);
13388  FW_ASSERT (
13389  _deserStatus == Fw::FW_SERIALIZE_OK,
13390  static_cast<FwAssertArgType>(_deserStatus)
13391  );
13392 
13393  // Deserialize command sequence
13394  U32 _cmdSeq = 0;
13395  _deserStatus = _msg.deserializeTo(_cmdSeq);
13396  FW_ASSERT (
13397  _deserStatus == Fw::FW_SERIALIZE_OK,
13398  static_cast<FwAssertArgType>(_deserStatus)
13399  );
13400 
13401  // Deserialize command argument buffer
13402  Fw::CmdArgBuffer args;
13403  _deserStatus = _msg.deserializeTo(args);
13404  FW_ASSERT (
13405  _deserStatus == Fw::FW_SERIALIZE_OK,
13406  static_cast<FwAssertArgType>(_deserStatus)
13407  );
13408 
13409  // Reset buffer
13410  args.resetDeser();
13411 
13412  // Deserialize argument channelId
13413  U8 channelId;
13414  _deserStatus = args.deserializeTo(channelId);
13415  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13417  this->cmdResponse_out(
13418  _opCode,
13419  _cmdSeq,
13421  );
13422  }
13423  // Don't crash the task if bad arguments were passed from the ground
13424  break;
13425  }
13426 
13427  // Deserialize argument transactionSeq
13428  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq;
13429  _deserStatus = args.deserializeTo(transactionSeq);
13430  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13432  this->cmdResponse_out(
13433  _opCode,
13434  _cmdSeq,
13436  );
13437  }
13438  // Don't crash the task if bad arguments were passed from the ground
13439  break;
13440  }
13441 
13442  // Deserialize argument entityId
13443  Svc::Ccsds::Cfdp::EntityId entityId;
13444  _deserStatus = args.deserializeTo(entityId);
13445  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13447  this->cmdResponse_out(
13448  _opCode,
13449  _cmdSeq,
13451  );
13452  }
13453  // Don't crash the task if bad arguments were passed from the ground
13454  break;
13455  }
13456 
13457  // Make sure there was no data left over.
13458  // That means the argument buffer size was incorrect.
13459 #if FW_CMD_CHECK_RESIDUAL
13460  if (args.getDeserializeSizeLeft() != 0) {
13462  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13463  }
13464  // Don't crash the task if bad arguments were passed from the ground
13465  break;
13466  }
13467 #endif
13468 
13469  // Call handler function
13471  _opCode, _cmdSeq,
13472  channelId,
13473  transactionSeq,
13474  entityId
13475  );
13476 
13477  break;
13478  }
13479 
13480  // Handle command ResetCounters
13481  case CMD_RESETCOUNTERS: {
13482  // Deserialize opcode
13483  FwOpcodeType _opCode = 0;
13484  _deserStatus = _msg.deserializeTo(_opCode);
13485  FW_ASSERT (
13486  _deserStatus == Fw::FW_SERIALIZE_OK,
13487  static_cast<FwAssertArgType>(_deserStatus)
13488  );
13489 
13490  // Deserialize command sequence
13491  U32 _cmdSeq = 0;
13492  _deserStatus = _msg.deserializeTo(_cmdSeq);
13493  FW_ASSERT (
13494  _deserStatus == Fw::FW_SERIALIZE_OK,
13495  static_cast<FwAssertArgType>(_deserStatus)
13496  );
13497 
13498  // Deserialize command argument buffer
13499  Fw::CmdArgBuffer args;
13500  _deserStatus = _msg.deserializeTo(args);
13501  FW_ASSERT (
13502  _deserStatus == Fw::FW_SERIALIZE_OK,
13503  static_cast<FwAssertArgType>(_deserStatus)
13504  );
13505 
13506  // Reset buffer
13507  args.resetDeser();
13508 
13509  // Deserialize argument channelId
13510  U8 channelId;
13511  _deserStatus = args.deserializeTo(channelId);
13512  if (_deserStatus != Fw::FW_SERIALIZE_OK) {
13514  this->cmdResponse_out(
13515  _opCode,
13516  _cmdSeq,
13518  );
13519  }
13520  // Don't crash the task if bad arguments were passed from the ground
13521  break;
13522  }
13523 
13524  // Make sure there was no data left over.
13525  // That means the argument buffer size was incorrect.
13526 #if FW_CMD_CHECK_RESIDUAL
13527  if (args.getDeserializeSizeLeft() != 0) {
13529  this->cmdResponse_out(_opCode, _cmdSeq, Fw::CmdResponse::FORMAT_ERROR);
13530  }
13531  // Don't crash the task if bad arguments were passed from the ground
13532  break;
13533  }
13534 #endif
13535 
13536  // Call handler function
13538  _opCode, _cmdSeq,
13539  channelId
13540  );
13541 
13542  break;
13543  }
13544 
13545  default:
13546  return MSG_DISPATCH_ERROR;
13547  }
13548 
13549  return MSG_DISPATCH_OK;
13550  }
13551 
13552  // ----------------------------------------------------------------------
13553  // Calls for messages received on special input ports
13554  // ----------------------------------------------------------------------
13555 
13556  void CfdpManagerComponentBase ::
13557  m_p_cmdIn_in(
13558  Fw::PassiveComponentBase* callComp,
13559  FwIndexType portNum,
13560  FwOpcodeType opCode,
13561  U32 cmdSeq,
13562  Fw::CmdArgBuffer& args
13563  )
13564  {
13565  FW_ASSERT(callComp != nullptr);
13566  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13567  compPtr->cmdIn_handlerBase(
13568  portNum,
13569  opCode,
13570  cmdSeq,
13571  args
13572  );
13573  }
13574 
13575  // ----------------------------------------------------------------------
13576  // Calls for messages received on typed input ports
13577  // ----------------------------------------------------------------------
13578 
13579  void CfdpManagerComponentBase ::
13580  m_p_dataIn_in(
13581  Fw::PassiveComponentBase* callComp,
13582  FwIndexType portNum,
13583  Fw::Buffer& fwBuffer
13584  )
13585  {
13586  FW_ASSERT(callComp != nullptr);
13587  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13588  compPtr->dataIn_handlerBase(
13589  portNum,
13590  fwBuffer
13591  );
13592  }
13593 
13594  void CfdpManagerComponentBase ::
13595  m_p_dataReturnIn_in(
13596  Fw::PassiveComponentBase* callComp,
13597  FwIndexType portNum,
13598  Fw::Buffer& fwBuffer
13599  )
13600  {
13601  FW_ASSERT(callComp != nullptr);
13602  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13603  compPtr->dataReturnIn_handlerBase(
13604  portNum,
13605  fwBuffer
13606  );
13607  }
13608 
13609  Svc::SendFileResponse CfdpManagerComponentBase ::
13610  m_p_fileIn_in(
13611  Fw::PassiveComponentBase* callComp,
13612  FwIndexType portNum,
13613  const Fw::StringBase& sourceFileName,
13614  const Fw::StringBase& destFileName,
13615  U32 offset,
13616  U32 length
13617  )
13618  {
13619  FW_ASSERT(callComp != nullptr);
13620  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13621  return compPtr->fileIn_handlerBase(
13622  portNum,
13623  sourceFileName,
13624  destFileName,
13625  offset,
13626  length
13627  );
13628  }
13629 
13630  void CfdpManagerComponentBase ::
13631  m_p_pingIn_in(
13632  Fw::PassiveComponentBase* callComp,
13633  FwIndexType portNum,
13634  U32 key
13635  )
13636  {
13637  FW_ASSERT(callComp != nullptr);
13638  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13639  compPtr->pingIn_handlerBase(
13640  portNum,
13641  key
13642  );
13643  }
13644 
13645  void CfdpManagerComponentBase ::
13646  m_p_run1Hz_in(
13647  Fw::PassiveComponentBase* callComp,
13648  FwIndexType portNum,
13649  U32 context
13650  )
13651  {
13652  FW_ASSERT(callComp != nullptr);
13653  CfdpManagerComponentBase* compPtr = static_cast<CfdpManagerComponentBase*>(callComp);
13654  compPtr->run1Hz_handlerBase(
13655  portNum,
13656  context
13657  );
13658  }
13659 
13660 #if !FW_DIRECT_PORT_CALLS
13661 
13662  // ----------------------------------------------------------------------
13663  // Invocation functions for special output ports
13664  // ----------------------------------------------------------------------
13665 
13666  void CfdpManagerComponentBase ::
13667  cmdRegOut_out(
13668  FwIndexType portNum,
13669  FwOpcodeType opCode
13670  ) const
13671  {
13672  FW_ASSERT(
13673  (0 <= portNum) && (portNum < this->getNum_cmdRegOut_OutputPorts()),
13674  static_cast<FwAssertArgType>(portNum)
13675  );
13676 
13677  FW_ASSERT(
13678  this->m_cmdRegOut_OutputPort[portNum].isConnected(),
13679  static_cast<FwAssertArgType>(portNum)
13680  );
13681  this->m_cmdRegOut_OutputPort[portNum].invoke(
13682  opCode
13683  );
13684  }
13685 
13686  void CfdpManagerComponentBase ::
13687  cmdResponseOut_out(
13688  FwIndexType portNum,
13689  FwOpcodeType opCode,
13690  U32 cmdSeq,
13691  const Fw::CmdResponse& response
13692  ) const
13693  {
13694  FW_ASSERT(
13695  (0 <= portNum) && (portNum < this->getNum_cmdResponseOut_OutputPorts()),
13696  static_cast<FwAssertArgType>(portNum)
13697  );
13698 
13699  FW_ASSERT(
13700  this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
13701  static_cast<FwAssertArgType>(portNum)
13702  );
13703  this->m_cmdResponseOut_OutputPort[portNum].invoke(
13704  opCode,
13705  cmdSeq,
13706  response
13707  );
13708  }
13709 
13710  void CfdpManagerComponentBase ::
13711  logOut_out(
13712  FwIndexType portNum,
13713  FwEventIdType id,
13714  Fw::Time& timeTag,
13715  const Fw::LogSeverity& severity,
13716  Fw::LogBuffer& args
13717  ) const
13718  {
13719  FW_ASSERT(
13720  (0 <= portNum) && (portNum < this->getNum_logOut_OutputPorts()),
13721  static_cast<FwAssertArgType>(portNum)
13722  );
13723 
13724  FW_ASSERT(
13725  this->m_logOut_OutputPort[portNum].isConnected(),
13726  static_cast<FwAssertArgType>(portNum)
13727  );
13728  this->m_logOut_OutputPort[portNum].invoke(
13729  id,
13730  timeTag,
13731  severity,
13732  args
13733  );
13734  }
13735 
13736 #if FW_ENABLE_TEXT_LOGGING
13737 
13738  void CfdpManagerComponentBase ::
13739  logTextOut_out(
13740  FwIndexType portNum,
13741  FwEventIdType id,
13742  Fw::Time& timeTag,
13743  const Fw::LogSeverity& severity,
13744  Fw::TextLogString& text
13745  ) const
13746  {
13747  FW_ASSERT(
13748  (0 <= portNum) && (portNum < this->getNum_logTextOut_OutputPorts()),
13749  static_cast<FwAssertArgType>(portNum)
13750  );
13751 
13752  FW_ASSERT(
13753  this->m_logTextOut_OutputPort[portNum].isConnected(),
13754  static_cast<FwAssertArgType>(portNum)
13755  );
13756  this->m_logTextOut_OutputPort[portNum].invoke(
13757  id,
13758  timeTag,
13759  severity,
13760  text
13761  );
13762  }
13763 
13764 #endif
13765 
13766  Fw::ParamValid CfdpManagerComponentBase ::
13767  prmGetOut_out(
13768  FwIndexType portNum,
13769  FwPrmIdType id,
13770  Fw::ParamBuffer& val
13771  ) const
13772  {
13773  FW_ASSERT(
13774  (0 <= portNum) && (portNum < this->getNum_prmGetOut_OutputPorts()),
13775  static_cast<FwAssertArgType>(portNum)
13776  );
13777 
13778  FW_ASSERT(
13779  this->m_prmGetOut_OutputPort[portNum].isConnected(),
13780  static_cast<FwAssertArgType>(portNum)
13781  );
13782  return this->m_prmGetOut_OutputPort[portNum].invoke(
13783  id,
13784  val
13785  );
13786  }
13787 
13788  void CfdpManagerComponentBase ::
13789  prmSetOut_out(
13790  FwIndexType portNum,
13791  FwPrmIdType id,
13792  Fw::ParamBuffer& val
13793  ) const
13794  {
13795  FW_ASSERT(
13796  (0 <= portNum) && (portNum < this->getNum_prmSetOut_OutputPorts()),
13797  static_cast<FwAssertArgType>(portNum)
13798  );
13799 
13800  FW_ASSERT(
13801  this->m_prmSetOut_OutputPort[portNum].isConnected(),
13802  static_cast<FwAssertArgType>(portNum)
13803  );
13804  this->m_prmSetOut_OutputPort[portNum].invoke(
13805  id,
13806  val
13807  );
13808  }
13809 
13810  void CfdpManagerComponentBase ::
13811  timeCaller_out(
13812  FwIndexType portNum,
13813  Fw::Time& time
13814  ) const
13815  {
13816  FW_ASSERT(
13817  (0 <= portNum) && (portNum < this->getNum_timeCaller_OutputPorts()),
13818  static_cast<FwAssertArgType>(portNum)
13819  );
13820 
13821  FW_ASSERT(
13822  this->m_timeCaller_OutputPort[portNum].isConnected(),
13823  static_cast<FwAssertArgType>(portNum)
13824  );
13825  this->m_timeCaller_OutputPort[portNum].invoke(
13826  time
13827  );
13828  }
13829 
13830  void CfdpManagerComponentBase ::
13831  tlmOut_out(
13832  FwIndexType portNum,
13833  FwChanIdType id,
13834  Fw::Time& timeTag,
13835  Fw::TlmBuffer& val
13836  ) const
13837  {
13838  FW_ASSERT(
13839  (0 <= portNum) && (portNum < this->getNum_tlmOut_OutputPorts()),
13840  static_cast<FwAssertArgType>(portNum)
13841  );
13842 
13843  FW_ASSERT(
13844  this->m_tlmOut_OutputPort[portNum].isConnected(),
13845  static_cast<FwAssertArgType>(portNum)
13846  );
13847  this->m_tlmOut_OutputPort[portNum].invoke(
13848  id,
13849  timeTag,
13850  val
13851  );
13852  }
13853 
13854 #endif
13855 
13856  // ----------------------------------------------------------------------
13857  // Parameter set functions
13858  // ----------------------------------------------------------------------
13859 
13860  Fw::CmdResponse CfdpManagerComponentBase ::
13861  paramSet_LocalEid(Fw::SerialBufferBase& val)
13862  {
13863  Svc::Ccsds::Cfdp::EntityId _localVal{};
13864  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13865  if (_stat != Fw::FW_SERIALIZE_OK) {
13867  }
13868 
13869  // Assign value only if successfully deserialized
13870  this->m_paramLock.lock();
13871  this->m_LocalEid = _localVal;
13872  this->m_param_LocalEid_valid = Fw::ParamValid::VALID;
13873  this->m_paramLock.unlock();
13874 
13875  // Call notifier
13877  return Fw::CmdResponse::OK;
13878  }
13879 
13880  Fw::CmdResponse CfdpManagerComponentBase ::
13881  paramSet_OutgoingFileChunkSize(Fw::SerialBufferBase& val)
13882  {
13883  U32 _localVal{};
13884  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13885  if (_stat != Fw::FW_SERIALIZE_OK) {
13887  }
13888 
13889  // Assign value only if successfully deserialized
13890  this->m_paramLock.lock();
13891  this->m_OutgoingFileChunkSize = _localVal;
13892  this->m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::VALID;
13893  this->m_paramLock.unlock();
13894 
13895  // Call notifier
13897  return Fw::CmdResponse::OK;
13898  }
13899 
13900  Fw::CmdResponse CfdpManagerComponentBase ::
13901  paramSet_RxCrcCalcBytesPerCycle(Fw::SerialBufferBase& val)
13902  {
13903  U32 _localVal{};
13904  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13905  if (_stat != Fw::FW_SERIALIZE_OK) {
13907  }
13908 
13909  // Assign value only if successfully deserialized
13910  this->m_paramLock.lock();
13911  this->m_RxCrcCalcBytesPerCycle = _localVal;
13912  this->m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::VALID;
13913  this->m_paramLock.unlock();
13914 
13915  // Call notifier
13917  return Fw::CmdResponse::OK;
13918  }
13919 
13920  Fw::CmdResponse CfdpManagerComponentBase ::
13921  paramSet_PostInactivitySendRetries(Fw::SerialBufferBase& val)
13922  {
13923  U8 _localVal{};
13924  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13925  if (_stat != Fw::FW_SERIALIZE_OK) {
13927  }
13928 
13929  // Assign value only if successfully deserialized
13930  this->m_paramLock.lock();
13931  this->m_PostInactivitySendRetries = _localVal;
13932  this->m_param_PostInactivitySendRetries_valid = Fw::ParamValid::VALID;
13933  this->m_paramLock.unlock();
13934 
13935  // Call notifier
13937  return Fw::CmdResponse::OK;
13938  }
13939 
13940  Fw::CmdResponse CfdpManagerComponentBase ::
13941  paramSet_FileInDefaultChannel(Fw::SerialBufferBase& val)
13942  {
13943  U8 _localVal{};
13944  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13945  if (_stat != Fw::FW_SERIALIZE_OK) {
13947  }
13948 
13949  // Assign value only if successfully deserialized
13950  this->m_paramLock.lock();
13951  this->m_FileInDefaultChannel = _localVal;
13952  this->m_param_FileInDefaultChannel_valid = Fw::ParamValid::VALID;
13953  this->m_paramLock.unlock();
13954 
13955  // Call notifier
13957  return Fw::CmdResponse::OK;
13958  }
13959 
13960  Fw::CmdResponse CfdpManagerComponentBase ::
13961  paramSet_FileInDefaultDestEntityId(Fw::SerialBufferBase& val)
13962  {
13963  Svc::Ccsds::Cfdp::EntityId _localVal{};
13964  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13965  if (_stat != Fw::FW_SERIALIZE_OK) {
13967  }
13968 
13969  // Assign value only if successfully deserialized
13970  this->m_paramLock.lock();
13971  this->m_FileInDefaultDestEntityId = _localVal;
13972  this->m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::VALID;
13973  this->m_paramLock.unlock();
13974 
13975  // Call notifier
13977  return Fw::CmdResponse::OK;
13978  }
13979 
13980  Fw::CmdResponse CfdpManagerComponentBase ::
13981  paramSet_FileInDefaultClass(Fw::SerialBufferBase& val)
13982  {
13983  Svc::Ccsds::Cfdp::Class _localVal{};
13984  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
13985  if (_stat != Fw::FW_SERIALIZE_OK) {
13987  }
13988 
13989  // Assign value only if successfully deserialized
13990  this->m_paramLock.lock();
13991  this->m_FileInDefaultClass = _localVal;
13992  this->m_param_FileInDefaultClass_valid = Fw::ParamValid::VALID;
13993  this->m_paramLock.unlock();
13994 
13995  // Call notifier
13997  return Fw::CmdResponse::OK;
13998  }
13999 
14000  Fw::CmdResponse CfdpManagerComponentBase ::
14001  paramSet_FileInDefaultKeep(Fw::SerialBufferBase& val)
14002  {
14003  Svc::Ccsds::Cfdp::Keep _localVal{};
14004  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
14005  if (_stat != Fw::FW_SERIALIZE_OK) {
14007  }
14008 
14009  // Assign value only if successfully deserialized
14010  this->m_paramLock.lock();
14011  this->m_FileInDefaultKeep = _localVal;
14012  this->m_param_FileInDefaultKeep_valid = Fw::ParamValid::VALID;
14013  this->m_paramLock.unlock();
14014 
14015  // Call notifier
14017  return Fw::CmdResponse::OK;
14018  }
14019 
14020  Fw::CmdResponse CfdpManagerComponentBase ::
14021  paramSet_FileInDefaultPriority(Fw::SerialBufferBase& val)
14022  {
14023  U8 _localVal{};
14024  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
14025  if (_stat != Fw::FW_SERIALIZE_OK) {
14027  }
14028 
14029  // Assign value only if successfully deserialized
14030  this->m_paramLock.lock();
14031  this->m_FileInDefaultPriority = _localVal;
14032  this->m_param_FileInDefaultPriority_valid = Fw::ParamValid::VALID;
14033  this->m_paramLock.unlock();
14034 
14035  // Call notifier
14037  return Fw::CmdResponse::OK;
14038  }
14039 
14040  Fw::CmdResponse CfdpManagerComponentBase ::
14041  paramSet_ChannelConfig(Fw::SerialBufferBase& val)
14042  {
14044  const Fw::SerializeStatus _stat = val.deserializeTo(_localVal);
14045  if (_stat != Fw::FW_SERIALIZE_OK) {
14047  }
14048 
14049  // Assign value only if successfully deserialized
14050  this->m_paramLock.lock();
14051  this->m_ChannelConfig = _localVal;
14052  this->m_param_ChannelConfig_valid = Fw::ParamValid::VALID;
14053  this->m_paramLock.unlock();
14054 
14055  // Call notifier
14057  return Fw::CmdResponse::OK;
14058  }
14059 
14060  // ----------------------------------------------------------------------
14061  // Parameter save functions
14062  // ----------------------------------------------------------------------
14063 
14064  Fw::CmdResponse CfdpManagerComponentBase ::
14065  paramSave_LocalEid()
14066  {
14067  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14069  }
14070  Fw::ParamBuffer _paramBuffer;
14071  const FwIdType idBase = this->getIdBase();
14073  // Serialize the parameter
14074  this->m_paramLock.lock();
14075  if ((this->m_param_LocalEid_valid == Fw::ParamValid::VALID) || (this->m_param_LocalEid_valid == Fw::ParamValid::DEFAULT)) {
14076  _stat = _paramBuffer.serializeFrom(m_LocalEid);
14077  }
14078  this->m_paramLock.unlock();
14079  if (_stat != Fw::FW_SERIALIZE_OK) {
14081  }
14082  // Save the parameter
14083  this->prmSetOut_out(
14084  0,
14085  static_cast<FwPrmIdType>(idBase + PARAMID_LOCALEID),
14086  _paramBuffer
14087  );
14088  // Return the command response
14089  return Fw::CmdResponse::OK;
14090  }
14091 
14092  Fw::CmdResponse CfdpManagerComponentBase ::
14093  paramSave_OutgoingFileChunkSize()
14094  {
14095  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14097  }
14098  Fw::ParamBuffer _paramBuffer;
14099  const FwIdType idBase = this->getIdBase();
14101  // Serialize the parameter
14102  this->m_paramLock.lock();
14103  if ((this->m_param_OutgoingFileChunkSize_valid == Fw::ParamValid::VALID) || (this->m_param_OutgoingFileChunkSize_valid == Fw::ParamValid::DEFAULT)) {
14104  _stat = _paramBuffer.serializeFrom(m_OutgoingFileChunkSize);
14105  }
14106  this->m_paramLock.unlock();
14107  if (_stat != Fw::FW_SERIALIZE_OK) {
14109  }
14110  // Save the parameter
14111  this->prmSetOut_out(
14112  0,
14113  static_cast<FwPrmIdType>(idBase + PARAMID_OUTGOINGFILECHUNKSIZE),
14114  _paramBuffer
14115  );
14116  // Return the command response
14117  return Fw::CmdResponse::OK;
14118  }
14119 
14120  Fw::CmdResponse CfdpManagerComponentBase ::
14121  paramSave_RxCrcCalcBytesPerCycle()
14122  {
14123  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14125  }
14126  Fw::ParamBuffer _paramBuffer;
14127  const FwIdType idBase = this->getIdBase();
14129  // Serialize the parameter
14130  this->m_paramLock.lock();
14131  if ((this->m_param_RxCrcCalcBytesPerCycle_valid == Fw::ParamValid::VALID) || (this->m_param_RxCrcCalcBytesPerCycle_valid == Fw::ParamValid::DEFAULT)) {
14132  _stat = _paramBuffer.serializeFrom(m_RxCrcCalcBytesPerCycle);
14133  }
14134  this->m_paramLock.unlock();
14135  if (_stat != Fw::FW_SERIALIZE_OK) {
14137  }
14138  // Save the parameter
14139  this->prmSetOut_out(
14140  0,
14141  static_cast<FwPrmIdType>(idBase + PARAMID_RXCRCCALCBYTESPERCYCLE),
14142  _paramBuffer
14143  );
14144  // Return the command response
14145  return Fw::CmdResponse::OK;
14146  }
14147 
14148  Fw::CmdResponse CfdpManagerComponentBase ::
14149  paramSave_PostInactivitySendRetries()
14150  {
14151  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14153  }
14154  Fw::ParamBuffer _paramBuffer;
14155  const FwIdType idBase = this->getIdBase();
14157  // Serialize the parameter
14158  this->m_paramLock.lock();
14159  if ((this->m_param_PostInactivitySendRetries_valid == Fw::ParamValid::VALID) || (this->m_param_PostInactivitySendRetries_valid == Fw::ParamValid::DEFAULT)) {
14160  _stat = _paramBuffer.serializeFrom(m_PostInactivitySendRetries);
14161  }
14162  this->m_paramLock.unlock();
14163  if (_stat != Fw::FW_SERIALIZE_OK) {
14165  }
14166  // Save the parameter
14167  this->prmSetOut_out(
14168  0,
14169  static_cast<FwPrmIdType>(idBase + PARAMID_POSTINACTIVITYSENDRETRIES),
14170  _paramBuffer
14171  );
14172  // Return the command response
14173  return Fw::CmdResponse::OK;
14174  }
14175 
14176  Fw::CmdResponse CfdpManagerComponentBase ::
14177  paramSave_FileInDefaultChannel()
14178  {
14179  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14181  }
14182  Fw::ParamBuffer _paramBuffer;
14183  const FwIdType idBase = this->getIdBase();
14185  // Serialize the parameter
14186  this->m_paramLock.lock();
14187  if ((this->m_param_FileInDefaultChannel_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultChannel_valid == Fw::ParamValid::DEFAULT)) {
14188  _stat = _paramBuffer.serializeFrom(m_FileInDefaultChannel);
14189  }
14190  this->m_paramLock.unlock();
14191  if (_stat != Fw::FW_SERIALIZE_OK) {
14193  }
14194  // Save the parameter
14195  this->prmSetOut_out(
14196  0,
14197  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTCHANNEL),
14198  _paramBuffer
14199  );
14200  // Return the command response
14201  return Fw::CmdResponse::OK;
14202  }
14203 
14204  Fw::CmdResponse CfdpManagerComponentBase ::
14205  paramSave_FileInDefaultDestEntityId()
14206  {
14207  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14209  }
14210  Fw::ParamBuffer _paramBuffer;
14211  const FwIdType idBase = this->getIdBase();
14213  // Serialize the parameter
14214  this->m_paramLock.lock();
14215  if ((this->m_param_FileInDefaultDestEntityId_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultDestEntityId_valid == Fw::ParamValid::DEFAULT)) {
14216  _stat = _paramBuffer.serializeFrom(m_FileInDefaultDestEntityId);
14217  }
14218  this->m_paramLock.unlock();
14219  if (_stat != Fw::FW_SERIALIZE_OK) {
14221  }
14222  // Save the parameter
14223  this->prmSetOut_out(
14224  0,
14225  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTDESTENTITYID),
14226  _paramBuffer
14227  );
14228  // Return the command response
14229  return Fw::CmdResponse::OK;
14230  }
14231 
14232  Fw::CmdResponse CfdpManagerComponentBase ::
14233  paramSave_FileInDefaultClass()
14234  {
14235  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14237  }
14238  Fw::ParamBuffer _paramBuffer;
14239  const FwIdType idBase = this->getIdBase();
14241  // Serialize the parameter
14242  this->m_paramLock.lock();
14243  if ((this->m_param_FileInDefaultClass_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultClass_valid == Fw::ParamValid::DEFAULT)) {
14244  _stat = _paramBuffer.serializeFrom(m_FileInDefaultClass);
14245  }
14246  this->m_paramLock.unlock();
14247  if (_stat != Fw::FW_SERIALIZE_OK) {
14249  }
14250  // Save the parameter
14251  this->prmSetOut_out(
14252  0,
14253  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTCLASS),
14254  _paramBuffer
14255  );
14256  // Return the command response
14257  return Fw::CmdResponse::OK;
14258  }
14259 
14260  Fw::CmdResponse CfdpManagerComponentBase ::
14261  paramSave_FileInDefaultKeep()
14262  {
14263  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14265  }
14266  Fw::ParamBuffer _paramBuffer;
14267  const FwIdType idBase = this->getIdBase();
14269  // Serialize the parameter
14270  this->m_paramLock.lock();
14271  if ((this->m_param_FileInDefaultKeep_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultKeep_valid == Fw::ParamValid::DEFAULT)) {
14272  _stat = _paramBuffer.serializeFrom(m_FileInDefaultKeep);
14273  }
14274  this->m_paramLock.unlock();
14275  if (_stat != Fw::FW_SERIALIZE_OK) {
14277  }
14278  // Save the parameter
14279  this->prmSetOut_out(
14280  0,
14281  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTKEEP),
14282  _paramBuffer
14283  );
14284  // Return the command response
14285  return Fw::CmdResponse::OK;
14286  }
14287 
14288  Fw::CmdResponse CfdpManagerComponentBase ::
14289  paramSave_FileInDefaultPriority()
14290  {
14291  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14293  }
14294  Fw::ParamBuffer _paramBuffer;
14295  const FwIdType idBase = this->getIdBase();
14297  // Serialize the parameter
14298  this->m_paramLock.lock();
14299  if ((this->m_param_FileInDefaultPriority_valid == Fw::ParamValid::VALID) || (this->m_param_FileInDefaultPriority_valid == Fw::ParamValid::DEFAULT)) {
14300  _stat = _paramBuffer.serializeFrom(m_FileInDefaultPriority);
14301  }
14302  this->m_paramLock.unlock();
14303  if (_stat != Fw::FW_SERIALIZE_OK) {
14305  }
14306  // Save the parameter
14307  this->prmSetOut_out(
14308  0,
14309  static_cast<FwPrmIdType>(idBase + PARAMID_FILEINDEFAULTPRIORITY),
14310  _paramBuffer
14311  );
14312  // Return the command response
14313  return Fw::CmdResponse::OK;
14314  }
14315 
14316  Fw::CmdResponse CfdpManagerComponentBase ::
14317  paramSave_ChannelConfig()
14318  {
14319  if (!this->isConnected_prmSetOut_OutputPort(0)) {
14321  }
14322  Fw::ParamBuffer _paramBuffer;
14323  const FwIdType idBase = this->getIdBase();
14325  // Serialize the parameter
14326  this->m_paramLock.lock();
14327  if ((this->m_param_ChannelConfig_valid == Fw::ParamValid::VALID) || (this->m_param_ChannelConfig_valid == Fw::ParamValid::DEFAULT)) {
14328  _stat = _paramBuffer.serializeFrom(m_ChannelConfig);
14329  }
14330  this->m_paramLock.unlock();
14331  if (_stat != Fw::FW_SERIALIZE_OK) {
14333  }
14334  // Save the parameter
14335  this->prmSetOut_out(
14336  0,
14337  static_cast<FwPrmIdType>(idBase + PARAMID_CHANNELCONFIG),
14338  _paramBuffer
14339  );
14340  // Return the command response
14341  return Fw::CmdResponse::OK;
14342  }
14343 
14344  }
14345 
14346  }
14347 
14348 }
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.
Parameter configuration for an array CFDP channels.
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
Default priority for fileIn port-initiated file transfers.
void log_WARNING_LO_RxEofWithError(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 conditionCode) const
Log event RxEofWithError.
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.
Default CFDP channel for fileIn port-initiated file transfers.
The size of the serial representation.
Definition: ClassEnumAc.hpp:60
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.
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.
CFDP ID to denote the current node when sending PDUs.
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.
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].
The maximum number of received bytes to calculate a CRC for in a single scheduler cycle...
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].
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
The size of the serial representation.
Definition: FlowEnumAc.hpp:53
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.
Default destination entity ID for fileIn port-initiated file transfers.
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()
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.
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.
Default file retention policy for fileIn port-initiated file transfers.
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
Command to cancel a transaction with graceful close-out.
static constexpr FwIndexType getNum_prmSetOut_OutputPorts()
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()
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.
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 incNumMsgDropped()
increment the number of messages dropped
void log_WARNING_LO_InvalidPollInterval(U32 interval) const
Log event InvalidPollInterval.
Default CFDP class for fileIn port-initiated file transfers.
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.
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.
The size of the serial representation.
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
message to exit active component task
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
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]