F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
CmdSequencerComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CmdSequencerComponentAc.cpp
3 // \author Auto-generated
4 // \brief cpp file for CmdSequencer component base class
5 //
6 // \copyright
7 // Copyright 2009-2015, by the California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
13 #include <stdio.h>
14 #include <FpConfig.hpp>
16 #include <Fw/Types/Assert.hpp>
17 #if FW_ENABLE_TEXT_LOGGING
19 #endif
20 
21 
22 namespace Svc {
23 
24  // ----------------------------------------------------------------------
25  // Anonymous namespace to prevent name collisions
26  // ----------------------------------------------------------------------
27 
28  namespace {
29 
30  typedef enum {
31  CMDSEQUENCER_COMPONENT_EXIT = Fw::ActiveComponentBase::ACTIVE_COMPONENT_EXIT,
32  PINGIN_PING,
33  CMDRESPONSEIN_CMDRESPONSE,
34  SCHEDIN_SCHED,
35  SEQRUNIN_CMDSEQIN,
36  CMD_CS_RUN,
37  CMD_CS_VALIDATE,
38  CMD_CS_CANCEL,
39  CMD_CS_START,
40  CMD_CS_STEP,
41  CMD_CS_AUTO,
42  CMD_CS_MANUAL
43  } MsgTypeEnum;
44 
45  // Get the max size by doing a union of the input port serialization sizes.
46 
47  typedef union {
53  } BuffUnion;
54 
55  // Define a message buffer class large enough to handle all the
56  // asynchronous inputs to the component
57 
58  class ComponentIpcSerializableBuffer :
60  {
61 
62  public:
63 
64  enum {
65  // Max. message size = size of data + message id + port
66  SERIALIZATION_SIZE =
67  sizeof(BuffUnion) +
68  sizeof(NATIVE_INT_TYPE) +
69  sizeof(NATIVE_INT_TYPE)
70  };
71 
72  NATIVE_UINT_TYPE getBuffCapacity(void) const {
73  return sizeof(m_buff);
74  }
75 
76  U8* getBuffAddr(void) {
77  return m_buff;
78  }
79 
80  const U8* getBuffAddr(void) const {
81  return m_buff;
82  }
83 
84  private:
85  // Should be the max of all the input ports serialized sizes...
86  U8 m_buff[SERIALIZATION_SIZE];
87 
88  };
89 
90  }
91 
92  // ----------------------------------------------------------------------
93  // Getters for numbers of input ports
94  // ----------------------------------------------------------------------
95 
98  {
99  FW_ASSERT(portNum < this->getNum_pingIn_InputPorts(),static_cast<AssertArg>(portNum));
100  return &this->m_pingIn_InputPort[portNum];
101  }
102 
105  {
106  FW_ASSERT(portNum < this->getNum_cmdResponseIn_InputPorts(),static_cast<AssertArg>(portNum));
107  return &this->m_cmdResponseIn_InputPort[portNum];
108  }
109 
112  {
113  FW_ASSERT(portNum < this->getNum_cmdIn_InputPorts(),static_cast<AssertArg>(portNum));
114  return &this->m_cmdIn_InputPort[portNum];
115  }
116 
119  {
120  FW_ASSERT(portNum < this->getNum_schedIn_InputPorts(),static_cast<AssertArg>(portNum));
121  return &this->m_schedIn_InputPort[portNum];
122  }
123 
126  {
127  FW_ASSERT(portNum < this->getNum_seqRunIn_InputPorts(),static_cast<AssertArg>(portNum));
128  return &this->m_seqRunIn_InputPort[portNum];
129  }
130 
131  // ----------------------------------------------------------------------
132  // Typed connectors for output ports
133  // ----------------------------------------------------------------------
134 
137  NATIVE_INT_TYPE portNum,
138  Fw::InputCmdRegPort* port
139  )
140  {
141  FW_ASSERT(portNum < this->getNum_cmdRegOut_OutputPorts(),static_cast<AssertArg>(portNum));
142  this->m_cmdRegOut_OutputPort[portNum].addCallPort(port);
143  }
144 
145 #if FW_ENABLE_TEXT_LOGGING == 1
146  void CmdSequencerComponentBase ::
147  set_LogText_OutputPort(
148  NATIVE_INT_TYPE portNum,
150  )
151  {
152  FW_ASSERT(portNum < this->getNum_LogText_OutputPorts(),static_cast<AssertArg>(portNum));
153  this->m_LogText_OutputPort[portNum].addCallPort(port);
154  }
155 #endif
156 
159  NATIVE_INT_TYPE portNum,
160  Fw::InputTlmPort* port
161  )
162  {
163  FW_ASSERT(portNum < this->getNum_tlmOut_OutputPorts(),static_cast<AssertArg>(portNum));
165  }
166 
169  NATIVE_INT_TYPE portNum,
171  )
172  {
173  FW_ASSERT(portNum < this->getNum_cmdResponseOut_OutputPorts(),static_cast<AssertArg>(portNum));
175  }
176 
179  NATIVE_INT_TYPE portNum,
180  Fw::InputTimePort* port
181  )
182  {
183  FW_ASSERT(portNum < this->getNum_timeCaller_OutputPorts(),static_cast<AssertArg>(portNum));
185  }
186 
189  NATIVE_INT_TYPE portNum,
190  Fw::InputComPort* port
191  )
192  {
193  FW_ASSERT(portNum < this->getNum_comCmdOut_OutputPorts(),static_cast<AssertArg>(portNum));
195  }
196 
199  NATIVE_INT_TYPE portNum,
200  Svc::InputPingPort* port
201  )
202  {
203  FW_ASSERT(portNum < this->getNum_pingOut_OutputPorts(),static_cast<AssertArg>(portNum));
205  }
206 
209  NATIVE_INT_TYPE portNum,
210  Fw::InputLogPort* port
211  )
212  {
213  FW_ASSERT(portNum < this->getNum_logOut_OutputPorts(),static_cast<AssertArg>(portNum));
215  }
216 
219  NATIVE_INT_TYPE portNum,
221  )
222  {
223  FW_ASSERT(portNum < this->getNum_seqDone_OutputPorts(),static_cast<AssertArg>(portNum));
225  }
226 
227  // ----------------------------------------------------------------------
228  // Serialization connectors for output ports
229  // ----------------------------------------------------------------------
230 
231 #if FW_PORT_SERIALIZATION
232 
235  NATIVE_INT_TYPE portNum,
236  Fw::InputSerializePort *port
237  )
238  {
239  FW_ASSERT(portNum < this->getNum_cmdRegOut_OutputPorts(),static_cast<AssertArg>(portNum));
240  return this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
241  }
242 
243 #if FW_ENABLE_TEXT_LOGGING == 1
244  void CmdSequencerComponentBase ::
245  set_LogText_OutputPort(
246  NATIVE_INT_TYPE portNum,
247  Fw::InputSerializePort *port
248  )
249  {
250  FW_ASSERT(portNum < this->getNum_LogText_OutputPorts(),static_cast<AssertArg>(portNum));
251  return this->m_LogText_OutputPort[portNum].registerSerialPort(port);
252  }
253 #endif
254 
257  NATIVE_INT_TYPE portNum,
258  Fw::InputSerializePort *port
259  )
260  {
261  FW_ASSERT(portNum < this->getNum_tlmOut_OutputPorts(),static_cast<AssertArg>(portNum));
262  return this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
263  }
264 
267  NATIVE_INT_TYPE portNum,
268  Fw::InputSerializePort *port
269  )
270  {
271  FW_ASSERT(portNum < this->getNum_cmdResponseOut_OutputPorts(),static_cast<AssertArg>(portNum));
272  return this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
273  }
274 
277  NATIVE_INT_TYPE portNum,
278  Fw::InputSerializePort *port
279  )
280  {
281  FW_ASSERT(portNum < this->getNum_timeCaller_OutputPorts(),static_cast<AssertArg>(portNum));
282  return this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
283  }
284 
287  NATIVE_INT_TYPE portNum,
288  Fw::InputSerializePort *port
289  )
290  {
291  FW_ASSERT(portNum < this->getNum_comCmdOut_OutputPorts(),static_cast<AssertArg>(portNum));
292  return this->m_comCmdOut_OutputPort[portNum].registerSerialPort(port);
293  }
294 
297  NATIVE_INT_TYPE portNum,
298  Fw::InputSerializePort *port
299  )
300  {
301  FW_ASSERT(portNum < this->getNum_pingOut_OutputPorts(),static_cast<AssertArg>(portNum));
302  return this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
303  }
304 
307  NATIVE_INT_TYPE portNum,
308  Fw::InputSerializePort *port
309  )
310  {
311  FW_ASSERT(portNum < this->getNum_logOut_OutputPorts(),static_cast<AssertArg>(portNum));
312  return this->m_logOut_OutputPort[portNum].registerSerialPort(port);
313  }
314 
317  NATIVE_INT_TYPE portNum,
318  Fw::InputSerializePort *port
319  )
320  {
321  FW_ASSERT(portNum < this->getNum_seqDone_OutputPorts(),static_cast<AssertArg>(portNum));
322  return this->m_seqDone_OutputPort[portNum].registerSerialPort(port);
323  }
324 
325 #endif
326 
327  // ----------------------------------------------------------------------
328  // Command registration
329  // ----------------------------------------------------------------------
330 
332  regCommands(void)
333  {
334  FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
335  this->m_cmdRegOut_OutputPort[0].invoke(
336  this->getIdBase() + OPCODE_CS_RUN
337  );
338  this->m_cmdRegOut_OutputPort[0].invoke(
339  this->getIdBase() + OPCODE_CS_VALIDATE
340  );
341  this->m_cmdRegOut_OutputPort[0].invoke(
342  this->getIdBase() + OPCODE_CS_CANCEL
343  );
344  this->m_cmdRegOut_OutputPort[0].invoke(
345  this->getIdBase() + OPCODE_CS_START
346  );
347  this->m_cmdRegOut_OutputPort[0].invoke(
348  this->getIdBase() + OPCODE_CS_STEP
349  );
350  this->m_cmdRegOut_OutputPort[0].invoke(
351  this->getIdBase() + OPCODE_CS_AUTO
352  );
353  this->m_cmdRegOut_OutputPort[0].invoke(
354  this->getIdBase() + OPCODE_CS_MANUAL
355  );
356  }
357 
358  // ----------------------------------------------------------------------
359  // Component construction, initialization, and destruction
360  // ----------------------------------------------------------------------
361 
363 #if FW_OBJECT_NAMES == 1
364  CmdSequencerComponentBase(const char* compName) :
365  Fw::ActiveComponentBase(compName)
366 #else
368  Fw::ActiveComponentBase()
369 #endif
370  {
371 
372 
373 
374  }
375 
377  init(
378  NATIVE_INT_TYPE queueDepth,
379  NATIVE_INT_TYPE instance
380  )
381  {
382 
383  // Initialize base class
385 
386  // Connect input port pingIn
387  for (
388  NATIVE_INT_TYPE port = 0;
389  port < this->getNum_pingIn_InputPorts();
390  port++
391  ) {
392 
393  this->m_pingIn_InputPort[port].init();
394  this->m_pingIn_InputPort[port].addCallComp(
395  this,
396  m_p_pingIn_in
397  );
398  this->m_pingIn_InputPort[port].setPortNum(port);
399 
400 #if FW_OBJECT_NAMES == 1
401  char portName[120];
402  (void) snprintf(
403  portName,
404  sizeof(portName),
405  "%s_pingIn_InputPort[%d]",
406  this->m_objName,
407  port
408  );
409  this->m_pingIn_InputPort[port].setObjName(portName);
410 #endif
411 
412  }
413 
414  // Connect input port cmdResponseIn
415  for (
416  NATIVE_INT_TYPE port = 0;
417  port < this->getNum_cmdResponseIn_InputPorts();
418  port++
419  ) {
420 
421  this->m_cmdResponseIn_InputPort[port].init();
423  this,
425  );
426  this->m_cmdResponseIn_InputPort[port].setPortNum(port);
427 
428 #if FW_OBJECT_NAMES == 1
429  char portName[120];
430  (void) snprintf(
431  portName,
432  sizeof(portName),
433  "%s_cmdResponseIn_InputPort[%d]",
434  this->m_objName,
435  port
436  );
437  this->m_cmdResponseIn_InputPort[port].setObjName(portName);
438 #endif
439 
440  }
441 
442  // Connect input port cmdIn
443  for (
444  NATIVE_INT_TYPE port = 0;
445  port < this->getNum_cmdIn_InputPorts();
446  port++
447  ) {
448 
449  this->m_cmdIn_InputPort[port].init();
450  this->m_cmdIn_InputPort[port].addCallComp(
451  this,
453  );
454  this->m_cmdIn_InputPort[port].setPortNum(port);
455 
456 #if FW_OBJECT_NAMES == 1
457  char portName[120];
458  (void) snprintf(
459  portName,
460  sizeof(portName),
461  "%s_cmdIn_InputPort[%d]",
462  this->m_objName,
463  port
464  );
465  this->m_cmdIn_InputPort[port].setObjName(portName);
466 #endif
467 
468  }
469 
470  // Connect input port schedIn
471  for (
472  NATIVE_INT_TYPE port = 0;
473  port < this->getNum_schedIn_InputPorts();
474  port++
475  ) {
476 
477  this->m_schedIn_InputPort[port].init();
478  this->m_schedIn_InputPort[port].addCallComp(
479  this,
481  );
482  this->m_schedIn_InputPort[port].setPortNum(port);
483 
484 #if FW_OBJECT_NAMES == 1
485  char portName[120];
486  (void) snprintf(
487  portName,
488  sizeof(portName),
489  "%s_schedIn_InputPort[%d]",
490  this->m_objName,
491  port
492  );
493  this->m_schedIn_InputPort[port].setObjName(portName);
494 #endif
495 
496  }
497 
498  // Connect input port seqRunIn
499  for (
500  NATIVE_INT_TYPE port = 0;
501  port < this->getNum_seqRunIn_InputPorts();
502  port++
503  ) {
504 
505  this->m_seqRunIn_InputPort[port].init();
506  this->m_seqRunIn_InputPort[port].addCallComp(
507  this,
509  );
510  this->m_seqRunIn_InputPort[port].setPortNum(port);
511 
512 #if FW_OBJECT_NAMES == 1
513  char portName[120];
514  (void) snprintf(
515  portName,
516  sizeof(portName),
517  "%s_seqRunIn_InputPort[%d]",
518  this->m_objName,
519  port
520  );
521  this->m_seqRunIn_InputPort[port].setObjName(portName);
522 #endif
523 
524  }
525 
526  // Initialize output port cmdRegOut
527  for (
528  NATIVE_INT_TYPE port = 0;
529  port < this->getNum_cmdRegOut_OutputPorts();
530  port++
531  ) {
532  this->m_cmdRegOut_OutputPort[port].init();
533 
534 #if FW_OBJECT_NAMES == 1
535  char portName[120];
536  (void) snprintf(
537  portName,
538  sizeof(portName),
539  "%s_cmdRegOut_OutputPort[%d]",
540  this->m_objName,
541  port
542  );
543  this->m_cmdRegOut_OutputPort[port].setObjName(portName);
544 #endif
545 
546  }
547 
548  // Initialize output port LogText
549 #if FW_ENABLE_TEXT_LOGGING == 1
550  for (
551  NATIVE_INT_TYPE port = 0;
552  port < this->getNum_LogText_OutputPorts();
553  port++
554  ) {
555  this->m_LogText_OutputPort[port].init();
556 
557 #if FW_OBJECT_NAMES == 1
558  char portName[120];
559  (void) snprintf(
560  portName,
561  sizeof(portName),
562  "%s_LogText_OutputPort[%d]",
563  this->m_objName,
564  port
565  );
566  this->m_LogText_OutputPort[port].setObjName(portName);
567 #endif
568 
569  }
570 #endif
571 
572  // Initialize output port tlmOut
573  for (
574  NATIVE_INT_TYPE port = 0;
575  port < this->getNum_tlmOut_OutputPorts();
576  port++
577  ) {
578  this->m_tlmOut_OutputPort[port].init();
579 
580 #if FW_OBJECT_NAMES == 1
581  char portName[120];
582  (void) snprintf(
583  portName,
584  sizeof(portName),
585  "%s_tlmOut_OutputPort[%d]",
586  this->m_objName,
587  port
588  );
589  this->m_tlmOut_OutputPort[port].setObjName(portName);
590 #endif
591 
592  }
593 
594  // Initialize output port cmdResponseOut
595  for (
596  NATIVE_INT_TYPE port = 0;
597  port < this->getNum_cmdResponseOut_OutputPorts();
598  port++
599  ) {
600  this->m_cmdResponseOut_OutputPort[port].init();
601 
602 #if FW_OBJECT_NAMES == 1
603  char portName[120];
604  (void) snprintf(
605  portName,
606  sizeof(portName),
607  "%s_cmdResponseOut_OutputPort[%d]",
608  this->m_objName,
609  port
610  );
611  this->m_cmdResponseOut_OutputPort[port].setObjName(portName);
612 #endif
613 
614  }
615 
616  // Initialize output port timeCaller
617  for (
618  NATIVE_INT_TYPE port = 0;
619  port < this->getNum_timeCaller_OutputPorts();
620  port++
621  ) {
622  this->m_timeCaller_OutputPort[port].init();
623 
624 #if FW_OBJECT_NAMES == 1
625  char portName[120];
626  (void) snprintf(
627  portName,
628  sizeof(portName),
629  "%s_timeCaller_OutputPort[%d]",
630  this->m_objName,
631  port
632  );
633  this->m_timeCaller_OutputPort[port].setObjName(portName);
634 #endif
635 
636  }
637 
638  // Initialize output port comCmdOut
639  for (
640  NATIVE_INT_TYPE port = 0;
641  port < this->getNum_comCmdOut_OutputPorts();
642  port++
643  ) {
644  this->m_comCmdOut_OutputPort[port].init();
645 
646 #if FW_OBJECT_NAMES == 1
647  char portName[120];
648  (void) snprintf(
649  portName,
650  sizeof(portName),
651  "%s_comCmdOut_OutputPort[%d]",
652  this->m_objName,
653  port
654  );
655  this->m_comCmdOut_OutputPort[port].setObjName(portName);
656 #endif
657 
658  }
659 
660  // Initialize output port pingOut
661  for (
662  NATIVE_INT_TYPE port = 0;
663  port < this->getNum_pingOut_OutputPorts();
664  port++
665  ) {
666  this->m_pingOut_OutputPort[port].init();
667 
668 #if FW_OBJECT_NAMES == 1
669  char portName[120];
670  (void) snprintf(
671  portName,
672  sizeof(portName),
673  "%s_pingOut_OutputPort[%d]",
674  this->m_objName,
675  port
676  );
677  this->m_pingOut_OutputPort[port].setObjName(portName);
678 #endif
679 
680  }
681 
682  // Initialize output port logOut
683  for (
684  NATIVE_INT_TYPE port = 0;
685  port < this->getNum_logOut_OutputPorts();
686  port++
687  ) {
688  this->m_logOut_OutputPort[port].init();
689 
690 #if FW_OBJECT_NAMES == 1
691  char portName[120];
692  (void) snprintf(
693  portName,
694  sizeof(portName),
695  "%s_logOut_OutputPort[%d]",
696  this->m_objName,
697  port
698  );
699  this->m_logOut_OutputPort[port].setObjName(portName);
700 #endif
701 
702  }
703 
704  // Initialize output port seqDone
705  for (
706  NATIVE_INT_TYPE port = 0;
707  port < this->getNum_seqDone_OutputPorts();
708  port++
709  ) {
710  this->m_seqDone_OutputPort[port].init();
711 
712 #if FW_OBJECT_NAMES == 1
713  char portName[120];
714  (void) snprintf(
715  portName,
716  sizeof(portName),
717  "%s_seqDone_OutputPort[%d]",
718  this->m_objName,
719  port
720  );
721  this->m_seqDone_OutputPort[port].setObjName(portName);
722 #endif
723 
724  }
725 
726  Os::Queue::QueueStatus qStat =
727  this->createQueue(
728  queueDepth,
729  ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
730  );
731  FW_ASSERT(
732  Os::Queue::QUEUE_OK == qStat,
733  static_cast<AssertArg>(qStat)
734  );
735 
736  }
737 
740 
741  }
742 
743  // ----------------------------------------------------------------------
744  // Invocation functions for output ports
745  // ----------------------------------------------------------------------
746 
747  void CmdSequencerComponentBase ::
748  comCmdOut_out(
749  NATIVE_INT_TYPE portNum,
750  Fw::ComBuffer &data, U32 context
751  )
752  {
753  FW_ASSERT(portNum < this->getNum_comCmdOut_OutputPorts(),static_cast<AssertArg>(portNum));
755  }
756 
759  NATIVE_INT_TYPE portNum,
760  U32 key
761  )
762  {
763  FW_ASSERT(portNum < this->getNum_pingOut_OutputPorts(),static_cast<AssertArg>(portNum));
764  this->m_pingOut_OutputPort[portNum].invoke(key);
765  }
766 
769  NATIVE_INT_TYPE portNum,
770  FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response
771  )
772  {
773  FW_ASSERT(portNum < this->getNum_seqDone_OutputPorts(),static_cast<AssertArg>(portNum));
775  }
776 
777  // ----------------------------------------------------------------------
778  // Getters for numbers of ports
779  // ----------------------------------------------------------------------
780 
781  NATIVE_INT_TYPE CmdSequencerComponentBase ::
782  getNum_cmdRegOut_OutputPorts(void)
783  {
785  this->m_cmdRegOut_OutputPort
786  );
787  }
788 
789 #if FW_ENABLE_TEXT_LOGGING == 1
790  NATIVE_INT_TYPE CmdSequencerComponentBase ::
791  getNum_LogText_OutputPorts(void)
792  {
794  this->m_LogText_OutputPort
795  );
796  }
797 #endif
798 
799  NATIVE_INT_TYPE CmdSequencerComponentBase ::
800  getNum_pingIn_InputPorts(void)
801  {
803  this->m_pingIn_InputPort
804  );
805  }
806 
809  {
811  this->m_tlmOut_OutputPort
812  );
813  }
814 
817  {
820  );
821  }
822 
825  {
828  );
829  }
830 
833  {
836  );
837  }
838 
841  {
844  );
845  }
846 
849  {
852  );
853  }
854 
857  {
859  this->m_cmdIn_InputPort
860  );
861  }
862 
865  {
867  this->m_schedIn_InputPort
868  );
869  }
870 
873  {
876  );
877  }
878 
881  {
883  this->m_logOut_OutputPort
884  );
885  }
886 
889  {
892  );
893  }
894 
895  // ----------------------------------------------------------------------
896  // Port connection status queries
897  // ----------------------------------------------------------------------
898 
899  bool CmdSequencerComponentBase ::
900  isConnected_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum)
901  {
902  FW_ASSERT(
903  portNum < this->getNum_cmdRegOut_OutputPorts(),
904  static_cast<AssertArg>(portNum)
905  );
906  return this->m_cmdRegOut_OutputPort[portNum].isConnected();
907  }
908 
909 #if FW_ENABLE_TEXT_LOGGING == 1
910  bool CmdSequencerComponentBase ::
911  isConnected_LogText_OutputPort(NATIVE_INT_TYPE portNum)
912  {
913  FW_ASSERT(
914  portNum < this->getNum_LogText_OutputPorts(),
915  static_cast<AssertArg>(portNum)
916  );
917  return this->m_LogText_OutputPort[portNum].isConnected();
918  }
919 #endif
920 
923  {
924  FW_ASSERT(
925  portNum < this->getNum_tlmOut_OutputPorts(),
926  static_cast<AssertArg>(portNum)
927  );
928  return this->m_tlmOut_OutputPort[portNum].isConnected();
929  }
930 
933  {
934  FW_ASSERT(
935  portNum < this->getNum_cmdResponseOut_OutputPorts(),
936  static_cast<AssertArg>(portNum)
937  );
939  }
940 
943  {
944  FW_ASSERT(
945  portNum < this->getNum_timeCaller_OutputPorts(),
946  static_cast<AssertArg>(portNum)
947  );
949  }
950 
953  {
954  FW_ASSERT(
955  portNum < this->getNum_comCmdOut_OutputPorts(),
956  static_cast<AssertArg>(portNum)
957  );
959  }
960 
963  {
964  FW_ASSERT(
965  portNum < this->getNum_pingOut_OutputPorts(),
966  static_cast<AssertArg>(portNum)
967  );
968  return this->m_pingOut_OutputPort[portNum].isConnected();
969  }
970 
973  {
974  FW_ASSERT(
975  portNum < this->getNum_logOut_OutputPorts(),
976  static_cast<AssertArg>(portNum)
977  );
978  return this->m_logOut_OutputPort[portNum].isConnected();
979  }
980 
983  {
984  FW_ASSERT(
985  portNum < this->getNum_seqDone_OutputPorts(),
986  static_cast<AssertArg>(portNum)
987  );
988  return this->m_seqDone_OutputPort[portNum].isConnected();
989  }
990 
991  // ----------------------------------------------------------------------
992  // Calls for messages received on command input ports
993  // ----------------------------------------------------------------------
994 
997  Fw::PassiveComponentBase* callComp,
998  NATIVE_INT_TYPE portNum,
999  FwOpcodeType opCode,
1000  U32 cmdSeq,
1001  Fw::CmdArgBuffer &args
1002  )
1003  {
1004 
1005  // Select base class function based on opcode
1006  FW_ASSERT(callComp);
1007  CmdSequencerComponentBase* compPtr =
1008  (CmdSequencerComponentBase*) callComp;
1009 
1010  const U32 idBase = callComp->getIdBase();
1011  FW_ASSERT(opCode >= idBase, opCode, idBase);
1012  switch (opCode - idBase) {
1013 
1014  case OPCODE_CS_RUN:
1015  compPtr->CS_RUN_cmdHandlerBase(
1016  opCode,
1017  cmdSeq,
1018  args
1019  );
1020  break;
1021 
1022  case OPCODE_CS_VALIDATE:
1023  compPtr->CS_VALIDATE_cmdHandlerBase(
1024  opCode,
1025  cmdSeq,
1026  args
1027  );
1028  break;
1029 
1030  case OPCODE_CS_CANCEL:
1031  compPtr->CS_CANCEL_cmdHandlerBase(
1032  opCode,
1033  cmdSeq,
1034  args
1035  );
1036  break;
1037 
1038  case OPCODE_CS_START:
1039  compPtr->CS_START_cmdHandlerBase(
1040  opCode,
1041  cmdSeq,
1042  args
1043  );
1044  break;
1045 
1046  case OPCODE_CS_STEP:
1047  compPtr->CS_STEP_cmdHandlerBase(
1048  opCode,
1049  cmdSeq,
1050  args
1051  );
1052  break;
1053 
1054  case OPCODE_CS_AUTO:
1055  compPtr->CS_AUTO_cmdHandlerBase(
1056  opCode,
1057  cmdSeq,
1058  args
1059  );
1060  break;
1061 
1062  case OPCODE_CS_MANUAL:
1063  compPtr->CS_MANUAL_cmdHandlerBase(
1064  opCode,
1065  cmdSeq,
1066  args
1067  );
1068  break;
1069 
1070  default: {
1071  compPtr->cmdResponse_out(
1072  opCode,cmdSeq,
1074  );
1075  break;
1076  }
1077 
1078  }
1079 
1080  }
1081 
1082  void CmdSequencerComponentBase ::
1083  cmdResponse_out(
1084  FwOpcodeType opCode,
1085  U32 cmdSeq,
1086  Fw::CommandResponse response
1087  )
1088  {
1089  FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1091  }
1092 
1093  // ----------------------------------------------------------------------
1094  // Base class command functions
1095  // ----------------------------------------------------------------------
1096 
1097  void CmdSequencerComponentBase ::
1098  CS_RUN_cmdHandlerBase(
1099  FwOpcodeType opCode,
1100  U32 cmdSeq,
1101  Fw::CmdArgBuffer &args
1102  )
1103  {
1104 
1105  // Call pre-message hook
1106  this->CS_RUN_preMsgHook(opCode,cmdSeq);
1107 
1108  // Defer deserializing arguments to the message dispatcher
1109  // to avoid deserializing and reserializing just for IPC
1110  ComponentIpcSerializableBuffer msg;
1112 
1113  // Serialize for IPC
1114  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_RUN);
1115  FW_ASSERT (
1116  _status == Fw::FW_SERIALIZE_OK,
1117  static_cast<AssertArg>(_status)
1118  );
1119 
1120  // Fake port number to make message dequeue work
1121  NATIVE_INT_TYPE port = 0;
1122  _status = msg.serialize(port);
1123  FW_ASSERT (
1124  _status == Fw::FW_SERIALIZE_OK,
1125  static_cast<AssertArg>(_status)
1126  );
1127 
1128  _status = msg.serialize(opCode);
1129  FW_ASSERT (
1130  _status == Fw::FW_SERIALIZE_OK,
1131  static_cast<AssertArg>(_status)
1132  );
1133 
1134  _status = msg.serialize(cmdSeq);
1135  FW_ASSERT (
1136  _status == Fw::FW_SERIALIZE_OK,
1137  static_cast<AssertArg>(_status)
1138  );
1139 
1140  _status = msg.serialize(args);
1141  FW_ASSERT (
1142  _status == Fw::FW_SERIALIZE_OK,
1143  static_cast<AssertArg>(_status)
1144  );
1145 
1146  // send message
1147  Os::Queue::QueueBlocking _block =
1149  Os::Queue::QueueStatus qStatus =
1150  this->m_queue.send(msg, 0,_block);
1151  FW_ASSERT(
1152  qStatus == Os::Queue::QUEUE_OK,
1153  static_cast<AssertArg>(qStatus)
1154  );
1155 
1156  }
1157 
1158  void CmdSequencerComponentBase::
1159  CS_RUN_preMsgHook(
1160  FwOpcodeType opCode,
1161  U32 cmdSeq
1162  )
1163  {
1164  // Defaults to no-op; can be overridden
1165  }
1166 
1169  FwOpcodeType opCode,
1170  U32 cmdSeq,
1171  Fw::CmdArgBuffer &args
1172  )
1173  {
1174 
1175  // Call pre-message hook
1176  this->CS_VALIDATE_preMsgHook(opCode,cmdSeq);
1177 
1178  // Defer deserializing arguments to the message dispatcher
1179  // to avoid deserializing and reserializing just for IPC
1180  ComponentIpcSerializableBuffer msg;
1182 
1183  // Serialize for IPC
1184  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_VALIDATE);
1185  FW_ASSERT (
1186  _status == Fw::FW_SERIALIZE_OK,
1187  static_cast<AssertArg>(_status)
1188  );
1189 
1190  // Fake port number to make message dequeue work
1191  NATIVE_INT_TYPE port = 0;
1192  _status = msg.serialize(port);
1193  FW_ASSERT (
1194  _status == Fw::FW_SERIALIZE_OK,
1195  static_cast<AssertArg>(_status)
1196  );
1197 
1198  _status = msg.serialize(opCode);
1199  FW_ASSERT (
1200  _status == Fw::FW_SERIALIZE_OK,
1201  static_cast<AssertArg>(_status)
1202  );
1203 
1204  _status = msg.serialize(cmdSeq);
1205  FW_ASSERT (
1206  _status == Fw::FW_SERIALIZE_OK,
1207  static_cast<AssertArg>(_status)
1208  );
1209 
1210  _status = msg.serialize(args);
1211  FW_ASSERT (
1212  _status == Fw::FW_SERIALIZE_OK,
1213  static_cast<AssertArg>(_status)
1214  );
1215 
1216  // send message
1217  Os::Queue::QueueBlocking _block =
1219  Os::Queue::QueueStatus qStatus =
1220  this->m_queue.send(msg, 0,_block);
1221  FW_ASSERT(
1222  qStatus == Os::Queue::QUEUE_OK,
1223  static_cast<AssertArg>(qStatus)
1224  );
1225 
1226  }
1227 
1230  FwOpcodeType opCode,
1231  U32 cmdSeq
1232  )
1233  {
1234  // Defaults to no-op; can be overridden
1235  }
1236 
1239  FwOpcodeType opCode,
1240  U32 cmdSeq,
1241  Fw::CmdArgBuffer &args
1242  )
1243  {
1244 
1245  // Call pre-message hook
1246  this->CS_CANCEL_preMsgHook(opCode,cmdSeq);
1247 
1248  // Defer deserializing arguments to the message dispatcher
1249  // to avoid deserializing and reserializing just for IPC
1250  ComponentIpcSerializableBuffer msg;
1252 
1253  // Serialize for IPC
1254  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_CANCEL);
1255  FW_ASSERT (
1256  _status == Fw::FW_SERIALIZE_OK,
1257  static_cast<AssertArg>(_status)
1258  );
1259 
1260  // Fake port number to make message dequeue work
1261  NATIVE_INT_TYPE port = 0;
1262  _status = msg.serialize(port);
1263  FW_ASSERT (
1264  _status == Fw::FW_SERIALIZE_OK,
1265  static_cast<AssertArg>(_status)
1266  );
1267 
1268  _status = msg.serialize(opCode);
1269  FW_ASSERT (
1270  _status == Fw::FW_SERIALIZE_OK,
1271  static_cast<AssertArg>(_status)
1272  );
1273 
1274  _status = msg.serialize(cmdSeq);
1275  FW_ASSERT (
1276  _status == Fw::FW_SERIALIZE_OK,
1277  static_cast<AssertArg>(_status)
1278  );
1279 
1280  _status = msg.serialize(args);
1281  FW_ASSERT (
1282  _status == Fw::FW_SERIALIZE_OK,
1283  static_cast<AssertArg>(_status)
1284  );
1285 
1286  // send message
1287  Os::Queue::QueueBlocking _block =
1289  Os::Queue::QueueStatus qStatus =
1290  this->m_queue.send(msg, 0,_block);
1291  FW_ASSERT(
1292  qStatus == Os::Queue::QUEUE_OK,
1293  static_cast<AssertArg>(qStatus)
1294  );
1295 
1296  }
1297 
1300  FwOpcodeType opCode,
1301  U32 cmdSeq
1302  )
1303  {
1304  // Defaults to no-op; can be overridden
1305  }
1306 
1309  FwOpcodeType opCode,
1310  U32 cmdSeq,
1311  Fw::CmdArgBuffer &args
1312  )
1313  {
1314 
1315  // Call pre-message hook
1316  this->CS_START_preMsgHook(opCode,cmdSeq);
1317 
1318  // Defer deserializing arguments to the message dispatcher
1319  // to avoid deserializing and reserializing just for IPC
1320  ComponentIpcSerializableBuffer msg;
1322 
1323  // Serialize for IPC
1324  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_START);
1325  FW_ASSERT (
1326  _status == Fw::FW_SERIALIZE_OK,
1327  static_cast<AssertArg>(_status)
1328  );
1329 
1330  // Fake port number to make message dequeue work
1331  NATIVE_INT_TYPE port = 0;
1332  _status = msg.serialize(port);
1333  FW_ASSERT (
1334  _status == Fw::FW_SERIALIZE_OK,
1335  static_cast<AssertArg>(_status)
1336  );
1337 
1338  _status = msg.serialize(opCode);
1339  FW_ASSERT (
1340  _status == Fw::FW_SERIALIZE_OK,
1341  static_cast<AssertArg>(_status)
1342  );
1343 
1344  _status = msg.serialize(cmdSeq);
1345  FW_ASSERT (
1346  _status == Fw::FW_SERIALIZE_OK,
1347  static_cast<AssertArg>(_status)
1348  );
1349 
1350  _status = msg.serialize(args);
1351  FW_ASSERT (
1352  _status == Fw::FW_SERIALIZE_OK,
1353  static_cast<AssertArg>(_status)
1354  );
1355 
1356  // send message
1357  Os::Queue::QueueBlocking _block =
1359  Os::Queue::QueueStatus qStatus =
1360  this->m_queue.send(msg, 0,_block);
1361  FW_ASSERT(
1362  qStatus == Os::Queue::QUEUE_OK,
1363  static_cast<AssertArg>(qStatus)
1364  );
1365 
1366  }
1367 
1370  FwOpcodeType opCode,
1371  U32 cmdSeq
1372  )
1373  {
1374  // Defaults to no-op; can be overridden
1375  }
1376 
1379  FwOpcodeType opCode,
1380  U32 cmdSeq,
1381  Fw::CmdArgBuffer &args
1382  )
1383  {
1384 
1385  // Call pre-message hook
1386  this->CS_STEP_preMsgHook(opCode,cmdSeq);
1387 
1388  // Defer deserializing arguments to the message dispatcher
1389  // to avoid deserializing and reserializing just for IPC
1390  ComponentIpcSerializableBuffer msg;
1392 
1393  // Serialize for IPC
1394  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_STEP);
1395  FW_ASSERT (
1396  _status == Fw::FW_SERIALIZE_OK,
1397  static_cast<AssertArg>(_status)
1398  );
1399 
1400  // Fake port number to make message dequeue work
1401  NATIVE_INT_TYPE port = 0;
1402  _status = msg.serialize(port);
1403  FW_ASSERT (
1404  _status == Fw::FW_SERIALIZE_OK,
1405  static_cast<AssertArg>(_status)
1406  );
1407 
1408  _status = msg.serialize(opCode);
1409  FW_ASSERT (
1410  _status == Fw::FW_SERIALIZE_OK,
1411  static_cast<AssertArg>(_status)
1412  );
1413 
1414  _status = msg.serialize(cmdSeq);
1415  FW_ASSERT (
1416  _status == Fw::FW_SERIALIZE_OK,
1417  static_cast<AssertArg>(_status)
1418  );
1419 
1420  _status = msg.serialize(args);
1421  FW_ASSERT (
1422  _status == Fw::FW_SERIALIZE_OK,
1423  static_cast<AssertArg>(_status)
1424  );
1425 
1426  // send message
1427  Os::Queue::QueueBlocking _block =
1429  Os::Queue::QueueStatus qStatus =
1430  this->m_queue.send(msg, 0,_block);
1431  FW_ASSERT(
1432  qStatus == Os::Queue::QUEUE_OK,
1433  static_cast<AssertArg>(qStatus)
1434  );
1435 
1436  }
1437 
1440  FwOpcodeType opCode,
1441  U32 cmdSeq
1442  )
1443  {
1444  // Defaults to no-op; can be overridden
1445  }
1446 
1449  FwOpcodeType opCode,
1450  U32 cmdSeq,
1451  Fw::CmdArgBuffer &args
1452  )
1453  {
1454 
1455  // Call pre-message hook
1456  this->CS_AUTO_preMsgHook(opCode,cmdSeq);
1457 
1458  // Defer deserializing arguments to the message dispatcher
1459  // to avoid deserializing and reserializing just for IPC
1460  ComponentIpcSerializableBuffer msg;
1462 
1463  // Serialize for IPC
1464  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_AUTO);
1465  FW_ASSERT (
1466  _status == Fw::FW_SERIALIZE_OK,
1467  static_cast<AssertArg>(_status)
1468  );
1469 
1470  // Fake port number to make message dequeue work
1471  NATIVE_INT_TYPE port = 0;
1472  _status = msg.serialize(port);
1473  FW_ASSERT (
1474  _status == Fw::FW_SERIALIZE_OK,
1475  static_cast<AssertArg>(_status)
1476  );
1477 
1478  _status = msg.serialize(opCode);
1479  FW_ASSERT (
1480  _status == Fw::FW_SERIALIZE_OK,
1481  static_cast<AssertArg>(_status)
1482  );
1483 
1484  _status = msg.serialize(cmdSeq);
1485  FW_ASSERT (
1486  _status == Fw::FW_SERIALIZE_OK,
1487  static_cast<AssertArg>(_status)
1488  );
1489 
1490  _status = msg.serialize(args);
1491  FW_ASSERT (
1492  _status == Fw::FW_SERIALIZE_OK,
1493  static_cast<AssertArg>(_status)
1494  );
1495 
1496  // send message
1497  Os::Queue::QueueBlocking _block =
1499  Os::Queue::QueueStatus qStatus =
1500  this->m_queue.send(msg, 0,_block);
1501  FW_ASSERT(
1502  qStatus == Os::Queue::QUEUE_OK,
1503  static_cast<AssertArg>(qStatus)
1504  );
1505 
1506  }
1507 
1510  FwOpcodeType opCode,
1511  U32 cmdSeq
1512  )
1513  {
1514  // Defaults to no-op; can be overridden
1515  }
1516 
1519  FwOpcodeType opCode,
1520  U32 cmdSeq,
1521  Fw::CmdArgBuffer &args
1522  )
1523  {
1524 
1525  // Call pre-message hook
1526  this->CS_MANUAL_preMsgHook(opCode,cmdSeq);
1527 
1528  // Defer deserializing arguments to the message dispatcher
1529  // to avoid deserializing and reserializing just for IPC
1530  ComponentIpcSerializableBuffer msg;
1532 
1533  // Serialize for IPC
1534  _status = msg.serialize((NATIVE_INT_TYPE)CMD_CS_MANUAL);
1535  FW_ASSERT (
1536  _status == Fw::FW_SERIALIZE_OK,
1537  static_cast<AssertArg>(_status)
1538  );
1539 
1540  // Fake port number to make message dequeue work
1541  NATIVE_INT_TYPE port = 0;
1542  _status = msg.serialize(port);
1543  FW_ASSERT (
1544  _status == Fw::FW_SERIALIZE_OK,
1545  static_cast<AssertArg>(_status)
1546  );
1547 
1548  _status = msg.serialize(opCode);
1549  FW_ASSERT (
1550  _status == Fw::FW_SERIALIZE_OK,
1551  static_cast<AssertArg>(_status)
1552  );
1553 
1554  _status = msg.serialize(cmdSeq);
1555  FW_ASSERT (
1556  _status == Fw::FW_SERIALIZE_OK,
1557  static_cast<AssertArg>(_status)
1558  );
1559 
1560  _status = msg.serialize(args);
1561  FW_ASSERT (
1562  _status == Fw::FW_SERIALIZE_OK,
1563  static_cast<AssertArg>(_status)
1564  );
1565 
1566  // send message
1567  Os::Queue::QueueBlocking _block =
1569  Os::Queue::QueueStatus qStatus =
1570  this->m_queue.send(msg, 0,_block);
1571  FW_ASSERT(
1572  qStatus == Os::Queue::QUEUE_OK,
1573  static_cast<AssertArg>(qStatus)
1574  );
1575 
1576  }
1577 
1580  FwOpcodeType opCode,
1581  U32 cmdSeq
1582  )
1583  {
1584  // Defaults to no-op; can be overridden
1585  }
1586 
1587  // ----------------------------------------------------------------------
1588  // Telemetry write functions
1589  // ----------------------------------------------------------------------
1590 
1591  void CmdSequencerComponentBase ::
1592  tlmWrite_CS_LoadCommands(U32 arg)
1593  {
1594 
1595  if (this->m_tlmOut_OutputPort[0].isConnected()) {
1596  Fw::Time _tlmTime;
1597  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1598  this->m_timeCaller_OutputPort[0].invoke( _tlmTime);
1599  }
1600  Fw::TlmBuffer _tlmBuff;
1601  Fw::SerializeStatus _stat = _tlmBuff.serialize(arg);
1602  FW_ASSERT(
1603  _stat == Fw::FW_SERIALIZE_OK,
1604  static_cast<AssertArg>(_stat)
1605  );
1606 
1607  FwChanIdType _id;
1608 
1609  _id = this->getIdBase() + CHANNELID_CS_LOADCOMMANDS;
1610 
1611  this->m_tlmOut_OutputPort[0].invoke(
1612  _id,
1613  _tlmTime,
1614  _tlmBuff
1615  );
1616  }
1617 
1618  }
1619 
1622  {
1623 
1624  if (this->m_tlmOut_OutputPort[0].isConnected()) {
1625  Fw::Time _tlmTime;
1626  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1627  this->m_timeCaller_OutputPort[0].invoke( _tlmTime);
1628  }
1629  Fw::TlmBuffer _tlmBuff;
1630  Fw::SerializeStatus _stat = _tlmBuff.serialize(arg);
1631  FW_ASSERT(
1632  _stat == Fw::FW_SERIALIZE_OK,
1633  static_cast<AssertArg>(_stat)
1634  );
1635 
1636  FwChanIdType _id;
1637 
1638  _id = this->getIdBase() + CHANNELID_CS_CANCELCOMMANDS;
1639 
1640  this->m_tlmOut_OutputPort[0].invoke(
1641  _id,
1642  _tlmTime,
1643  _tlmBuff
1644  );
1645  }
1646 
1647  }
1648 
1650  tlmWrite_CS_Errors(U32 arg)
1651  {
1652 
1653  if (this->m_tlmOut_OutputPort[0].isConnected()) {
1654  Fw::Time _tlmTime;
1655  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1656  this->m_timeCaller_OutputPort[0].invoke( _tlmTime);
1657  }
1658  Fw::TlmBuffer _tlmBuff;
1659  Fw::SerializeStatus _stat = _tlmBuff.serialize(arg);
1660  FW_ASSERT(
1661  _stat == Fw::FW_SERIALIZE_OK,
1662  static_cast<AssertArg>(_stat)
1663  );
1664 
1665  FwChanIdType _id;
1666 
1667  _id = this->getIdBase() + CHANNELID_CS_ERRORS;
1668 
1669  this->m_tlmOut_OutputPort[0].invoke(
1670  _id,
1671  _tlmTime,
1672  _tlmBuff
1673  );
1674  }
1675 
1676  }
1677 
1680  {
1681 
1682  if (this->m_tlmOut_OutputPort[0].isConnected()) {
1683  Fw::Time _tlmTime;
1684  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1685  this->m_timeCaller_OutputPort[0].invoke( _tlmTime);
1686  }
1687  Fw::TlmBuffer _tlmBuff;
1688  Fw::SerializeStatus _stat = _tlmBuff.serialize(arg);
1689  FW_ASSERT(
1690  _stat == Fw::FW_SERIALIZE_OK,
1691  static_cast<AssertArg>(_stat)
1692  );
1693 
1694  FwChanIdType _id;
1695 
1696  _id = this->getIdBase() + CHANNELID_CS_COMMANDSEXECUTED;
1697 
1698  this->m_tlmOut_OutputPort[0].invoke(
1699  _id,
1700  _tlmTime,
1701  _tlmBuff
1702  );
1703  }
1704 
1705  }
1706 
1709  {
1710 
1711  if (this->m_tlmOut_OutputPort[0].isConnected()) {
1712  Fw::Time _tlmTime;
1713  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1714  this->m_timeCaller_OutputPort[0].invoke( _tlmTime);
1715  }
1716  Fw::TlmBuffer _tlmBuff;
1717  Fw::SerializeStatus _stat = _tlmBuff.serialize(arg);
1718  FW_ASSERT(
1719  _stat == Fw::FW_SERIALIZE_OK,
1720  static_cast<AssertArg>(_stat)
1721  );
1722 
1723  FwChanIdType _id;
1724 
1726 
1727  this->m_tlmOut_OutputPort[0].invoke(
1728  _id,
1729  _tlmTime,
1730  _tlmBuff
1731  );
1732  }
1733 
1734  }
1735 
1736  // ----------------------------------------------------------------------
1737  // Time
1738  // ----------------------------------------------------------------------
1739 
1740  Fw::Time CmdSequencerComponentBase ::
1741  getTime(void)
1742  {
1743  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1744  Fw::Time _time;
1745  this->m_timeCaller_OutputPort[0].invoke(_time);
1746  return _time;
1747  } else {
1748  return Fw::Time(TB_NONE,0,0);
1749  }
1750  }
1751 
1752  // ----------------------------------------------------------------------
1753  // Event handling functions
1754  // ----------------------------------------------------------------------
1755 
1756  void CmdSequencerComponentBase ::
1757  log_ACTIVITY_LO_CS_SequenceLoaded(
1758  Fw::LogStringArg& fileName
1759  )
1760  {
1761 
1762 
1763  // Get the time
1764  Fw::Time _logTime;
1765  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1766  this->m_timeCaller_OutputPort[0].invoke( _logTime);
1767  }
1768 
1769  FwEventIdType _id = static_cast<FwEventIdType>(0);
1770 
1771  _id = this->getIdBase() + EVENTID_CS_SEQUENCELOADED;
1772 
1773  // Emit the event on the log port
1774  if (this->m_logOut_OutputPort[0].isConnected()) {
1775 
1776  Fw::LogBuffer _logBuff;
1778 
1779 #if FW_AMPCS_COMPATIBLE
1780  // Serialize the number of arguments
1781  _status = _logBuff.serialize(static_cast<U8>(1));
1782  FW_ASSERT(
1783  _status == Fw::FW_SERIALIZE_OK,
1784  static_cast<AssertArg>(_status)
1785  );
1786 #endif
1787 
1788  fileName.setMaxSerialize(60);
1789  _status = _logBuff.serialize(fileName);
1790  FW_ASSERT(
1791  _status == Fw::FW_SERIALIZE_OK,
1792  static_cast<AssertArg>(_status)
1793  );
1794 
1795 
1796  this->m_logOut_OutputPort[0].invoke(
1797  _id,
1798  _logTime,Fw::LOG_ACTIVITY_LO,
1799  _logBuff
1800  );
1801 
1802  }
1803 
1804  // Emit the event on the text log port
1805 #if FW_ENABLE_TEXT_LOGGING
1806  if (this->m_LogText_OutputPort[0].isConnected()) {
1807 
1808 #if FW_OBJECT_NAMES == 1
1809  const char* _formatString =
1810  "(%s) %s: Loaded sequence %s";
1811 #else
1812  const char* _formatString =
1813  "%s: Loaded sequence %s";
1814 #endif
1815 
1816  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
1817 
1818  (void) snprintf(
1819  _textBuffer,
1821  _formatString,
1822 #if FW_OBJECT_NAMES == 1
1823  this->m_objName,
1824 #endif
1825  "CS_SequenceLoaded "
1826  , fileName.toChar()
1827  );
1828 
1829  // Null terminate
1830  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
1831  Fw::TextLogString _logString = _textBuffer;
1832  this->m_LogText_OutputPort[0].invoke(
1833  _id,
1834  _logTime,Fw::TEXT_LOG_ACTIVITY_LO,
1835  _logString
1836  );
1837 
1838  }
1839 #endif
1840 
1841  }
1842 
1843 
1846  Fw::LogStringArg& fileName
1847  )
1848  {
1849 
1850 
1851  // Get the time
1852  Fw::Time _logTime;
1853  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1854  this->m_timeCaller_OutputPort[0].invoke( _logTime);
1855  }
1856 
1857  FwEventIdType _id = static_cast<FwEventIdType>(0);
1858 
1859  _id = this->getIdBase() + EVENTID_CS_SEQUENCECANCELED;
1860 
1861  // Emit the event on the log port
1862  if (this->m_logOut_OutputPort[0].isConnected()) {
1863 
1864  Fw::LogBuffer _logBuff;
1866 
1867 #if FW_AMPCS_COMPATIBLE
1868  // Serialize the number of arguments
1869  _status = _logBuff.serialize(static_cast<U8>(1));
1870  FW_ASSERT(
1871  _status == Fw::FW_SERIALIZE_OK,
1872  static_cast<AssertArg>(_status)
1873  );
1874 #endif
1875 
1876  fileName.setMaxSerialize(60);
1877  _status = _logBuff.serialize(fileName);
1878  FW_ASSERT(
1879  _status == Fw::FW_SERIALIZE_OK,
1880  static_cast<AssertArg>(_status)
1881  );
1882 
1883 
1884  this->m_logOut_OutputPort[0].invoke(
1885  _id,
1886  _logTime,Fw::LOG_ACTIVITY_HI,
1887  _logBuff
1888  );
1889 
1890  }
1891 
1892  // Emit the event on the text log port
1893 #if FW_ENABLE_TEXT_LOGGING
1894  if (this->m_LogText_OutputPort[0].isConnected()) {
1895 
1896 #if FW_OBJECT_NAMES == 1
1897  const char* _formatString =
1898  "(%s) %s: Sequence file %s canceled";
1899 #else
1900  const char* _formatString =
1901  "%s: Sequence file %s canceled";
1902 #endif
1903 
1904  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
1905 
1906  (void) snprintf(
1907  _textBuffer,
1909  _formatString,
1910 #if FW_OBJECT_NAMES == 1
1911  this->m_objName,
1912 #endif
1913  "CS_SequenceCanceled "
1914  , fileName.toChar()
1915  );
1916 
1917  // Null terminate
1918  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
1919  Fw::TextLogString _logString = _textBuffer;
1920  this->m_LogText_OutputPort[0].invoke(
1921  _id,
1922  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
1923  _logString
1924  );
1925 
1926  }
1927 #endif
1928 
1929  }
1930 
1931 
1934  Fw::LogStringArg& fileName
1935  )
1936  {
1937 
1938 
1939  // Get the time
1940  Fw::Time _logTime;
1941  if (this->m_timeCaller_OutputPort[0].isConnected()) {
1942  this->m_timeCaller_OutputPort[0].invoke( _logTime);
1943  }
1944 
1945  FwEventIdType _id = static_cast<FwEventIdType>(0);
1946 
1947  _id = this->getIdBase() + EVENTID_CS_FILEREADERROR;
1948 
1949  // Emit the event on the log port
1950  if (this->m_logOut_OutputPort[0].isConnected()) {
1951 
1952  Fw::LogBuffer _logBuff;
1954 
1955 #if FW_AMPCS_COMPATIBLE
1956  // Serialize the number of arguments
1957  _status = _logBuff.serialize(static_cast<U8>(1));
1958  FW_ASSERT(
1959  _status == Fw::FW_SERIALIZE_OK,
1960  static_cast<AssertArg>(_status)
1961  );
1962 #endif
1963 
1964  fileName.setMaxSerialize(60);
1965  _status = _logBuff.serialize(fileName);
1966  FW_ASSERT(
1967  _status == Fw::FW_SERIALIZE_OK,
1968  static_cast<AssertArg>(_status)
1969  );
1970 
1971 
1972  this->m_logOut_OutputPort[0].invoke(
1973  _id,
1974  _logTime,Fw::LOG_WARNING_HI,
1975  _logBuff
1976  );
1977 
1978  }
1979 
1980  // Emit the event on the text log port
1981 #if FW_ENABLE_TEXT_LOGGING
1982  if (this->m_LogText_OutputPort[0].isConnected()) {
1983 
1984 #if FW_OBJECT_NAMES == 1
1985  const char* _formatString =
1986  "(%s) %s: Error reading sequence file %s";
1987 #else
1988  const char* _formatString =
1989  "%s: Error reading sequence file %s";
1990 #endif
1991 
1992  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
1993 
1994  (void) snprintf(
1995  _textBuffer,
1997  _formatString,
1998 #if FW_OBJECT_NAMES == 1
1999  this->m_objName,
2000 #endif
2001  "CS_FileReadError "
2002  , fileName.toChar()
2003  );
2004 
2005  // Null terminate
2006  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2007  Fw::TextLogString _logString = _textBuffer;
2008  this->m_LogText_OutputPort[0].invoke(
2009  _id,
2010  _logTime,Fw::TEXT_LOG_WARNING_HI,
2011  _logString
2012  );
2013 
2014  }
2015 #endif
2016 
2017  }
2018 
2019 
2022  Fw::LogStringArg& fileName, FileReadStage stage, I32 error
2023  )
2024  {
2025 
2026 
2027  // Get the time
2028  Fw::Time _logTime;
2029  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2030  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2031  }
2032 
2033  FwEventIdType _id = static_cast<FwEventIdType>(0);
2034 
2035  _id = this->getIdBase() + EVENTID_CS_FILEINVALID;
2036 
2037  // Emit the event on the log port
2038  if (this->m_logOut_OutputPort[0].isConnected()) {
2039 
2040  Fw::LogBuffer _logBuff;
2042 
2043 #if FW_AMPCS_COMPATIBLE
2044  // Serialize the number of arguments
2045  _status = _logBuff.serialize(static_cast<U8>(3));
2046  FW_ASSERT(
2047  _status == Fw::FW_SERIALIZE_OK,
2048  static_cast<AssertArg>(_status)
2049  );
2050 #endif
2051 
2052  fileName.setMaxSerialize(60);
2053  _status = _logBuff.serialize(fileName);
2054  FW_ASSERT(
2055  _status == Fw::FW_SERIALIZE_OK,
2056  static_cast<AssertArg>(_status)
2057  );
2058 
2059 #if FW_AMPCS_COMPATIBLE
2060  // Serialize the argument size
2061  _status = _logBuff.serialize(static_cast<U8>(sizeof(FwEnumStoreType)));
2062  FW_ASSERT(
2063  _status == Fw::FW_SERIALIZE_OK,
2064  static_cast<AssertArg>(_status)
2065  );
2066 #endif
2067 
2068  _status = _logBuff.serialize(
2069  static_cast<FwEnumStoreType>(stage)
2070  );
2071  FW_ASSERT(
2072  _status == Fw::FW_SERIALIZE_OK,
2073  static_cast<AssertArg>(_status)
2074  );
2075 
2076 #if FW_AMPCS_COMPATIBLE
2077  // Serialize the argument size
2078  _status = _logBuff.serialize(
2079  static_cast<U8>(sizeof(error))
2080  );
2081  FW_ASSERT(
2082  _status == Fw::FW_SERIALIZE_OK,
2083  static_cast<AssertArg>(_status)
2084  );
2085 #endif
2086 
2087  _status = _logBuff.serialize(error);
2088  FW_ASSERT(
2089  _status == Fw::FW_SERIALIZE_OK,
2090  static_cast<AssertArg>(_status)
2091  );
2092 
2093 
2094  this->m_logOut_OutputPort[0].invoke(
2095  _id,
2096  _logTime,Fw::LOG_WARNING_HI,
2097  _logBuff
2098  );
2099 
2100  }
2101 
2102  // Emit the event on the text log port
2103 #if FW_ENABLE_TEXT_LOGGING
2104  if (this->m_LogText_OutputPort[0].isConnected()) {
2105 
2106 #if FW_OBJECT_NAMES == 1
2107  const char* _formatString =
2108  "(%s) %s: Sequence file %s invalid. Stage: %d Error: %d";
2109 #else
2110  const char* _formatString =
2111  "%s: Sequence file %s invalid. Stage: %d Error: %d";
2112 #endif
2113 
2114  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2115 
2116  (void) snprintf(
2117  _textBuffer,
2119  _formatString,
2120 #if FW_OBJECT_NAMES == 1
2121  this->m_objName,
2122 #endif
2123  "CS_FileInvalid "
2124  , fileName.toChar()
2125  , stage
2126  , error
2127  );
2128 
2129  // Null terminate
2130  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2131  Fw::TextLogString _logString = _textBuffer;
2132  this->m_LogText_OutputPort[0].invoke(
2133  _id,
2134  _logTime,Fw::TEXT_LOG_WARNING_HI,
2135  _logString
2136  );
2137 
2138  }
2139 #endif
2140 
2141  }
2142 
2143 
2146  Fw::LogStringArg& fileName, U32 recordNumber, I32 error
2147  )
2148  {
2149 
2150 
2151  // Get the time
2152  Fw::Time _logTime;
2153  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2154  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2155  }
2156 
2157  FwEventIdType _id = static_cast<FwEventIdType>(0);
2158 
2159  _id = this->getIdBase() + EVENTID_CS_RECORDINVALID;
2160 
2161  // Emit the event on the log port
2162  if (this->m_logOut_OutputPort[0].isConnected()) {
2163 
2164  Fw::LogBuffer _logBuff;
2166 
2167 #if FW_AMPCS_COMPATIBLE
2168  // Serialize the number of arguments
2169  _status = _logBuff.serialize(static_cast<U8>(3));
2170  FW_ASSERT(
2171  _status == Fw::FW_SERIALIZE_OK,
2172  static_cast<AssertArg>(_status)
2173  );
2174 #endif
2175 
2176  fileName.setMaxSerialize(60);
2177  _status = _logBuff.serialize(fileName);
2178  FW_ASSERT(
2179  _status == Fw::FW_SERIALIZE_OK,
2180  static_cast<AssertArg>(_status)
2181  );
2182 
2183 #if FW_AMPCS_COMPATIBLE
2184  // Serialize the argument size
2185  _status = _logBuff.serialize(
2186  static_cast<U8>(sizeof(recordNumber))
2187  );
2188  FW_ASSERT(
2189  _status == Fw::FW_SERIALIZE_OK,
2190  static_cast<AssertArg>(_status)
2191  );
2192 #endif
2193 
2194  _status = _logBuff.serialize(recordNumber);
2195  FW_ASSERT(
2196  _status == Fw::FW_SERIALIZE_OK,
2197  static_cast<AssertArg>(_status)
2198  );
2199 
2200 #if FW_AMPCS_COMPATIBLE
2201  // Serialize the argument size
2202  _status = _logBuff.serialize(
2203  static_cast<U8>(sizeof(error))
2204  );
2205  FW_ASSERT(
2206  _status == Fw::FW_SERIALIZE_OK,
2207  static_cast<AssertArg>(_status)
2208  );
2209 #endif
2210 
2211  _status = _logBuff.serialize(error);
2212  FW_ASSERT(
2213  _status == Fw::FW_SERIALIZE_OK,
2214  static_cast<AssertArg>(_status)
2215  );
2216 
2217 
2218  this->m_logOut_OutputPort[0].invoke(
2219  _id,
2220  _logTime,Fw::LOG_WARNING_HI,
2221  _logBuff
2222  );
2223 
2224  }
2225 
2226  // Emit the event on the text log port
2227 #if FW_ENABLE_TEXT_LOGGING
2228  if (this->m_LogText_OutputPort[0].isConnected()) {
2229 
2230 #if FW_OBJECT_NAMES == 1
2231  const char* _formatString =
2232  "(%s) %s: Sequence file %s: Record %d invalid. Err: %d";
2233 #else
2234  const char* _formatString =
2235  "%s: Sequence file %s: Record %d invalid. Err: %d";
2236 #endif
2237 
2238  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2239 
2240  (void) snprintf(
2241  _textBuffer,
2243  _formatString,
2244 #if FW_OBJECT_NAMES == 1
2245  this->m_objName,
2246 #endif
2247  "CS_RecordInvalid "
2248  , fileName.toChar()
2249  , recordNumber
2250  , error
2251  );
2252 
2253  // Null terminate
2254  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2255  Fw::TextLogString _logString = _textBuffer;
2256  this->m_LogText_OutputPort[0].invoke(
2257  _id,
2258  _logTime,Fw::TEXT_LOG_WARNING_HI,
2259  _logString
2260  );
2261 
2262  }
2263 #endif
2264 
2265  }
2266 
2267 
2270  Fw::LogStringArg& fileName, U32 size
2271  )
2272  {
2273 
2274 
2275  // Get the time
2276  Fw::Time _logTime;
2277  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2278  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2279  }
2280 
2281  FwEventIdType _id = static_cast<FwEventIdType>(0);
2282 
2283  _id = this->getIdBase() + EVENTID_CS_FILESIZEERROR;
2284 
2285  // Emit the event on the log port
2286  if (this->m_logOut_OutputPort[0].isConnected()) {
2287 
2288  Fw::LogBuffer _logBuff;
2290 
2291 #if FW_AMPCS_COMPATIBLE
2292  // Serialize the number of arguments
2293  _status = _logBuff.serialize(static_cast<U8>(2));
2294  FW_ASSERT(
2295  _status == Fw::FW_SERIALIZE_OK,
2296  static_cast<AssertArg>(_status)
2297  );
2298 #endif
2299 
2300  fileName.setMaxSerialize(60);
2301  _status = _logBuff.serialize(fileName);
2302  FW_ASSERT(
2303  _status == Fw::FW_SERIALIZE_OK,
2304  static_cast<AssertArg>(_status)
2305  );
2306 
2307 #if FW_AMPCS_COMPATIBLE
2308  // Serialize the argument size
2309  _status = _logBuff.serialize(
2310  static_cast<U8>(sizeof(size))
2311  );
2312  FW_ASSERT(
2313  _status == Fw::FW_SERIALIZE_OK,
2314  static_cast<AssertArg>(_status)
2315  );
2316 #endif
2317 
2318  _status = _logBuff.serialize(size);
2319  FW_ASSERT(
2320  _status == Fw::FW_SERIALIZE_OK,
2321  static_cast<AssertArg>(_status)
2322  );
2323 
2324 
2325  this->m_logOut_OutputPort[0].invoke(
2326  _id,
2327  _logTime,Fw::LOG_WARNING_HI,
2328  _logBuff
2329  );
2330 
2331  }
2332 
2333  // Emit the event on the text log port
2334 #if FW_ENABLE_TEXT_LOGGING
2335  if (this->m_LogText_OutputPort[0].isConnected()) {
2336 
2337 #if FW_OBJECT_NAMES == 1
2338  const char* _formatString =
2339  "(%s) %s: Sequence file %s too large. Size: %d";
2340 #else
2341  const char* _formatString =
2342  "%s: Sequence file %s too large. Size: %d";
2343 #endif
2344 
2345  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2346 
2347  (void) snprintf(
2348  _textBuffer,
2350  _formatString,
2351 #if FW_OBJECT_NAMES == 1
2352  this->m_objName,
2353 #endif
2354  "CS_FileSizeError "
2355  , fileName.toChar()
2356  , size
2357  );
2358 
2359  // Null terminate
2360  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2361  Fw::TextLogString _logString = _textBuffer;
2362  this->m_LogText_OutputPort[0].invoke(
2363  _id,
2364  _logTime,Fw::TEXT_LOG_WARNING_HI,
2365  _logString
2366  );
2367 
2368  }
2369 #endif
2370 
2371  }
2372 
2373 
2376  Fw::LogStringArg& fileName
2377  )
2378  {
2379 
2380 
2381  // Get the time
2382  Fw::Time _logTime;
2383  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2384  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2385  }
2386 
2387  FwEventIdType _id = static_cast<FwEventIdType>(0);
2388 
2389  _id = this->getIdBase() + EVENTID_CS_FILENOTFOUND;
2390 
2391  // Emit the event on the log port
2392  if (this->m_logOut_OutputPort[0].isConnected()) {
2393 
2394  Fw::LogBuffer _logBuff;
2396 
2397 #if FW_AMPCS_COMPATIBLE
2398  // Serialize the number of arguments
2399  _status = _logBuff.serialize(static_cast<U8>(1));
2400  FW_ASSERT(
2401  _status == Fw::FW_SERIALIZE_OK,
2402  static_cast<AssertArg>(_status)
2403  );
2404 #endif
2405 
2406  fileName.setMaxSerialize(60);
2407  _status = _logBuff.serialize(fileName);
2408  FW_ASSERT(
2409  _status == Fw::FW_SERIALIZE_OK,
2410  static_cast<AssertArg>(_status)
2411  );
2412 
2413 
2414  this->m_logOut_OutputPort[0].invoke(
2415  _id,
2416  _logTime,Fw::LOG_WARNING_HI,
2417  _logBuff
2418  );
2419 
2420  }
2421 
2422  // Emit the event on the text log port
2423 #if FW_ENABLE_TEXT_LOGGING
2424  if (this->m_LogText_OutputPort[0].isConnected()) {
2425 
2426 #if FW_OBJECT_NAMES == 1
2427  const char* _formatString =
2428  "(%s) %s: Sequence file %s not found.";
2429 #else
2430  const char* _formatString =
2431  "%s: Sequence file %s not found.";
2432 #endif
2433 
2434  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2435 
2436  (void) snprintf(
2437  _textBuffer,
2439  _formatString,
2440 #if FW_OBJECT_NAMES == 1
2441  this->m_objName,
2442 #endif
2443  "CS_FileNotFound "
2444  , fileName.toChar()
2445  );
2446 
2447  // Null terminate
2448  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2449  Fw::TextLogString _logString = _textBuffer;
2450  this->m_LogText_OutputPort[0].invoke(
2451  _id,
2452  _logTime,Fw::TEXT_LOG_WARNING_HI,
2453  _logString
2454  );
2455 
2456  }
2457 #endif
2458 
2459  }
2460 
2461 
2464  Fw::LogStringArg& fileName, U32 storedCRC, U32 computedCRC
2465  )
2466  {
2467 
2468 
2469  // Get the time
2470  Fw::Time _logTime;
2471  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2472  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2473  }
2474 
2475  FwEventIdType _id = static_cast<FwEventIdType>(0);
2476 
2477  _id = this->getIdBase() + EVENTID_CS_FILECRCFAILURE;
2478 
2479  // Emit the event on the log port
2480  if (this->m_logOut_OutputPort[0].isConnected()) {
2481 
2482  Fw::LogBuffer _logBuff;
2484 
2485 #if FW_AMPCS_COMPATIBLE
2486  // Serialize the number of arguments
2487  _status = _logBuff.serialize(static_cast<U8>(3));
2488  FW_ASSERT(
2489  _status == Fw::FW_SERIALIZE_OK,
2490  static_cast<AssertArg>(_status)
2491  );
2492 #endif
2493 
2494  fileName.setMaxSerialize(60);
2495  _status = _logBuff.serialize(fileName);
2496  FW_ASSERT(
2497  _status == Fw::FW_SERIALIZE_OK,
2498  static_cast<AssertArg>(_status)
2499  );
2500 
2501 #if FW_AMPCS_COMPATIBLE
2502  // Serialize the argument size
2503  _status = _logBuff.serialize(
2504  static_cast<U8>(sizeof(storedCRC))
2505  );
2506  FW_ASSERT(
2507  _status == Fw::FW_SERIALIZE_OK,
2508  static_cast<AssertArg>(_status)
2509  );
2510 #endif
2511 
2512  _status = _logBuff.serialize(storedCRC);
2513  FW_ASSERT(
2514  _status == Fw::FW_SERIALIZE_OK,
2515  static_cast<AssertArg>(_status)
2516  );
2517 
2518 #if FW_AMPCS_COMPATIBLE
2519  // Serialize the argument size
2520  _status = _logBuff.serialize(
2521  static_cast<U8>(sizeof(computedCRC))
2522  );
2523  FW_ASSERT(
2524  _status == Fw::FW_SERIALIZE_OK,
2525  static_cast<AssertArg>(_status)
2526  );
2527 #endif
2528 
2529  _status = _logBuff.serialize(computedCRC);
2530  FW_ASSERT(
2531  _status == Fw::FW_SERIALIZE_OK,
2532  static_cast<AssertArg>(_status)
2533  );
2534 
2535 
2536  this->m_logOut_OutputPort[0].invoke(
2537  _id,
2538  _logTime,Fw::LOG_WARNING_HI,
2539  _logBuff
2540  );
2541 
2542  }
2543 
2544  // Emit the event on the text log port
2545 #if FW_ENABLE_TEXT_LOGGING
2546  if (this->m_LogText_OutputPort[0].isConnected()) {
2547 
2548 #if FW_OBJECT_NAMES == 1
2549  const char* _formatString =
2550  "(%s) %s: Sequence file %s had invalid CRC. Stored 0x%08X, Computed 0x%08X.";
2551 #else
2552  const char* _formatString =
2553  "%s: Sequence file %s had invalid CRC. Stored 0x%08X, Computed 0x%08X.";
2554 #endif
2555 
2556  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2557 
2558  (void) snprintf(
2559  _textBuffer,
2561  _formatString,
2562 #if FW_OBJECT_NAMES == 1
2563  this->m_objName,
2564 #endif
2565  "CS_FileCrcFailure "
2566  , fileName.toChar()
2567  , storedCRC
2568  , computedCRC
2569  );
2570 
2571  // Null terminate
2572  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2573  Fw::TextLogString _logString = _textBuffer;
2574  this->m_LogText_OutputPort[0].invoke(
2575  _id,
2576  _logTime,Fw::TEXT_LOG_WARNING_HI,
2577  _logString
2578  );
2579 
2580  }
2581 #endif
2582 
2583  }
2584 
2585 
2588  Fw::LogStringArg& fileName, U32 recordNumber, U32 opCode
2589  )
2590  {
2591 
2592 
2593  // Get the time
2594  Fw::Time _logTime;
2595  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2596  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2597  }
2598 
2599  FwEventIdType _id = static_cast<FwEventIdType>(0);
2600 
2601  _id = this->getIdBase() + EVENTID_CS_COMMANDCOMPLETE;
2602 
2603  // Emit the event on the log port
2604  if (this->m_logOut_OutputPort[0].isConnected()) {
2605 
2606  Fw::LogBuffer _logBuff;
2608 
2609 #if FW_AMPCS_COMPATIBLE
2610  // Serialize the number of arguments
2611  _status = _logBuff.serialize(static_cast<U8>(3));
2612  FW_ASSERT(
2613  _status == Fw::FW_SERIALIZE_OK,
2614  static_cast<AssertArg>(_status)
2615  );
2616 #endif
2617 
2618  fileName.setMaxSerialize(60);
2619  _status = _logBuff.serialize(fileName);
2620  FW_ASSERT(
2621  _status == Fw::FW_SERIALIZE_OK,
2622  static_cast<AssertArg>(_status)
2623  );
2624 
2625 #if FW_AMPCS_COMPATIBLE
2626  // Serialize the argument size
2627  _status = _logBuff.serialize(
2628  static_cast<U8>(sizeof(recordNumber))
2629  );
2630  FW_ASSERT(
2631  _status == Fw::FW_SERIALIZE_OK,
2632  static_cast<AssertArg>(_status)
2633  );
2634 #endif
2635 
2636  _status = _logBuff.serialize(recordNumber);
2637  FW_ASSERT(
2638  _status == Fw::FW_SERIALIZE_OK,
2639  static_cast<AssertArg>(_status)
2640  );
2641 
2642 #if FW_AMPCS_COMPATIBLE
2643  // Serialize the argument size
2644  _status = _logBuff.serialize(
2645  static_cast<U8>(sizeof(opCode))
2646  );
2647  FW_ASSERT(
2648  _status == Fw::FW_SERIALIZE_OK,
2649  static_cast<AssertArg>(_status)
2650  );
2651 #endif
2652 
2653  _status = _logBuff.serialize(opCode);
2654  FW_ASSERT(
2655  _status == Fw::FW_SERIALIZE_OK,
2656  static_cast<AssertArg>(_status)
2657  );
2658 
2659 
2660  this->m_logOut_OutputPort[0].invoke(
2661  _id,
2662  _logTime,Fw::LOG_ACTIVITY_LO,
2663  _logBuff
2664  );
2665 
2666  }
2667 
2668  // Emit the event on the text log port
2669 #if FW_ENABLE_TEXT_LOGGING
2670  if (this->m_LogText_OutputPort[0].isConnected()) {
2671 
2672 #if FW_OBJECT_NAMES == 1
2673  const char* _formatString =
2674  "(%s) %s: Sequence file %s: Command %d (opcode %d) complete";
2675 #else
2676  const char* _formatString =
2677  "%s: Sequence file %s: Command %d (opcode %d) complete";
2678 #endif
2679 
2680  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2681 
2682  (void) snprintf(
2683  _textBuffer,
2685  _formatString,
2686 #if FW_OBJECT_NAMES == 1
2687  this->m_objName,
2688 #endif
2689  "CS_CommandComplete "
2690  , fileName.toChar()
2691  , recordNumber
2692  , opCode
2693  );
2694 
2695  // Null terminate
2696  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2697  Fw::TextLogString _logString = _textBuffer;
2698  this->m_LogText_OutputPort[0].invoke(
2699  _id,
2700  _logTime,Fw::TEXT_LOG_ACTIVITY_LO,
2701  _logString
2702  );
2703 
2704  }
2705 #endif
2706 
2707  }
2708 
2709 
2712  Fw::LogStringArg& fileName
2713  )
2714  {
2715 
2716 
2717  // Get the time
2718  Fw::Time _logTime;
2719  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2720  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2721  }
2722 
2723  FwEventIdType _id = static_cast<FwEventIdType>(0);
2724 
2725  _id = this->getIdBase() + EVENTID_CS_SEQUENCECOMPLETE;
2726 
2727  // Emit the event on the log port
2728  if (this->m_logOut_OutputPort[0].isConnected()) {
2729 
2730  Fw::LogBuffer _logBuff;
2732 
2733 #if FW_AMPCS_COMPATIBLE
2734  // Serialize the number of arguments
2735  _status = _logBuff.serialize(static_cast<U8>(1));
2736  FW_ASSERT(
2737  _status == Fw::FW_SERIALIZE_OK,
2738  static_cast<AssertArg>(_status)
2739  );
2740 #endif
2741 
2742  fileName.setMaxSerialize(60);
2743  _status = _logBuff.serialize(fileName);
2744  FW_ASSERT(
2745  _status == Fw::FW_SERIALIZE_OK,
2746  static_cast<AssertArg>(_status)
2747  );
2748 
2749 
2750  this->m_logOut_OutputPort[0].invoke(
2751  _id,
2752  _logTime,Fw::LOG_ACTIVITY_HI,
2753  _logBuff
2754  );
2755 
2756  }
2757 
2758  // Emit the event on the text log port
2759 #if FW_ENABLE_TEXT_LOGGING
2760  if (this->m_LogText_OutputPort[0].isConnected()) {
2761 
2762 #if FW_OBJECT_NAMES == 1
2763  const char* _formatString =
2764  "(%s) %s: Sequence file %s complete";
2765 #else
2766  const char* _formatString =
2767  "%s: Sequence file %s complete";
2768 #endif
2769 
2770  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2771 
2772  (void) snprintf(
2773  _textBuffer,
2775  _formatString,
2776 #if FW_OBJECT_NAMES == 1
2777  this->m_objName,
2778 #endif
2779  "CS_SequenceComplete "
2780  , fileName.toChar()
2781  );
2782 
2783  // Null terminate
2784  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2785  Fw::TextLogString _logString = _textBuffer;
2786  this->m_LogText_OutputPort[0].invoke(
2787  _id,
2788  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
2789  _logString
2790  );
2791 
2792  }
2793 #endif
2794 
2795  }
2796 
2797 
2800  Fw::LogStringArg& fileName, U32 recordNumber, U32 opCode, U32 errorStatus
2801  )
2802  {
2803 
2804 
2805  // Get the time
2806  Fw::Time _logTime;
2807  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2808  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2809  }
2810 
2811  FwEventIdType _id = static_cast<FwEventIdType>(0);
2812 
2813  _id = this->getIdBase() + EVENTID_CS_COMMANDERROR;
2814 
2815  // Emit the event on the log port
2816  if (this->m_logOut_OutputPort[0].isConnected()) {
2817 
2818  Fw::LogBuffer _logBuff;
2820 
2821 #if FW_AMPCS_COMPATIBLE
2822  // Serialize the number of arguments
2823  _status = _logBuff.serialize(static_cast<U8>(4));
2824  FW_ASSERT(
2825  _status == Fw::FW_SERIALIZE_OK,
2826  static_cast<AssertArg>(_status)
2827  );
2828 #endif
2829 
2830  fileName.setMaxSerialize(60);
2831  _status = _logBuff.serialize(fileName);
2832  FW_ASSERT(
2833  _status == Fw::FW_SERIALIZE_OK,
2834  static_cast<AssertArg>(_status)
2835  );
2836 
2837 #if FW_AMPCS_COMPATIBLE
2838  // Serialize the argument size
2839  _status = _logBuff.serialize(
2840  static_cast<U8>(sizeof(recordNumber))
2841  );
2842  FW_ASSERT(
2843  _status == Fw::FW_SERIALIZE_OK,
2844  static_cast<AssertArg>(_status)
2845  );
2846 #endif
2847 
2848  _status = _logBuff.serialize(recordNumber);
2849  FW_ASSERT(
2850  _status == Fw::FW_SERIALIZE_OK,
2851  static_cast<AssertArg>(_status)
2852  );
2853 
2854 #if FW_AMPCS_COMPATIBLE
2855  // Serialize the argument size
2856  _status = _logBuff.serialize(
2857  static_cast<U8>(sizeof(opCode))
2858  );
2859  FW_ASSERT(
2860  _status == Fw::FW_SERIALIZE_OK,
2861  static_cast<AssertArg>(_status)
2862  );
2863 #endif
2864 
2865  _status = _logBuff.serialize(opCode);
2866  FW_ASSERT(
2867  _status == Fw::FW_SERIALIZE_OK,
2868  static_cast<AssertArg>(_status)
2869  );
2870 
2871 #if FW_AMPCS_COMPATIBLE
2872  // Serialize the argument size
2873  _status = _logBuff.serialize(
2874  static_cast<U8>(sizeof(errorStatus))
2875  );
2876  FW_ASSERT(
2877  _status == Fw::FW_SERIALIZE_OK,
2878  static_cast<AssertArg>(_status)
2879  );
2880 #endif
2881 
2882  _status = _logBuff.serialize(errorStatus);
2883  FW_ASSERT(
2884  _status == Fw::FW_SERIALIZE_OK,
2885  static_cast<AssertArg>(_status)
2886  );
2887 
2888 
2889  this->m_logOut_OutputPort[0].invoke(
2890  _id,
2891  _logTime,Fw::LOG_WARNING_HI,
2892  _logBuff
2893  );
2894 
2895  }
2896 
2897  // Emit the event on the text log port
2898 #if FW_ENABLE_TEXT_LOGGING
2899  if (this->m_LogText_OutputPort[0].isConnected()) {
2900 
2901 #if FW_OBJECT_NAMES == 1
2902  const char* _formatString =
2903  "(%s) %s: Sequence file %s: Command %d (opcode %d) completed with error %d";
2904 #else
2905  const char* _formatString =
2906  "%s: Sequence file %s: Command %d (opcode %d) completed with error %d";
2907 #endif
2908 
2909  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2910 
2911  (void) snprintf(
2912  _textBuffer,
2914  _formatString,
2915 #if FW_OBJECT_NAMES == 1
2916  this->m_objName,
2917 #endif
2918  "CS_CommandError "
2919  , fileName.toChar()
2920  , recordNumber
2921  , opCode
2922  , errorStatus
2923  );
2924 
2925  // Null terminate
2926  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
2927  Fw::TextLogString _logString = _textBuffer;
2928  this->m_LogText_OutputPort[0].invoke(
2929  _id,
2930  _logTime,Fw::TEXT_LOG_WARNING_HI,
2931  _logString
2932  );
2933 
2934  }
2935 #endif
2936 
2937  }
2938 
2939 
2942  void
2943  )
2944  {
2945 
2946 
2947  // Get the time
2948  Fw::Time _logTime;
2949  if (this->m_timeCaller_OutputPort[0].isConnected()) {
2950  this->m_timeCaller_OutputPort[0].invoke( _logTime);
2951  }
2952 
2953  FwEventIdType _id = static_cast<FwEventIdType>(0);
2954 
2955  _id = this->getIdBase() + EVENTID_CS_INVALIDMODE;
2956 
2957  // Emit the event on the log port
2958  if (this->m_logOut_OutputPort[0].isConnected()) {
2959 
2960  Fw::LogBuffer _logBuff;
2961 #if FW_AMPCS_COMPATIBLE
2962  // for AMPCS, need to encode zero arguments
2964  _zero_status = _logBuff.serialize(static_cast<U8>(0));
2965  FW_ASSERT(
2966  _zero_status == Fw::FW_SERIALIZE_OK,
2967  static_cast<AssertArg>(_zero_status)
2968  );
2969 #endif
2970 
2971 
2972  this->m_logOut_OutputPort[0].invoke(
2973  _id,
2974  _logTime,Fw::LOG_WARNING_HI,
2975  _logBuff
2976  );
2977 
2978  }
2979 
2980  // Emit the event on the text log port
2981 #if FW_ENABLE_TEXT_LOGGING
2982  if (this->m_LogText_OutputPort[0].isConnected()) {
2983 
2984 #if FW_OBJECT_NAMES == 1
2985  const char* _formatString =
2986  "(%s) %s: Invalid mode";
2987 #else
2988  const char* _formatString =
2989  "%s: Invalid mode";
2990 #endif
2991 
2992  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
2993 
2994  (void) snprintf(
2995  _textBuffer,
2997  _formatString,
2998 #if FW_OBJECT_NAMES == 1
2999  this->m_objName,
3000 #endif
3001  "CS_InvalidMode "
3002  );
3003 
3004  // Null terminate
3005  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3006  Fw::TextLogString _logString = _textBuffer;
3007  this->m_LogText_OutputPort[0].invoke(
3008  _id,
3009  _logTime,Fw::TEXT_LOG_WARNING_HI,
3010  _logString
3011  );
3012 
3013  }
3014 #endif
3015 
3016  }
3017 
3018 
3021  Fw::LogStringArg& fileName, U32 header_records, U32 extra_bytes
3022  )
3023  {
3024 
3025 
3026  // Get the time
3027  Fw::Time _logTime;
3028  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3029  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3030  }
3031 
3032  FwEventIdType _id = static_cast<FwEventIdType>(0);
3033 
3034  _id = this->getIdBase() + EVENTID_CS_RECORDMISMATCH;
3035 
3036  // Emit the event on the log port
3037  if (this->m_logOut_OutputPort[0].isConnected()) {
3038 
3039  Fw::LogBuffer _logBuff;
3041 
3042 #if FW_AMPCS_COMPATIBLE
3043  // Serialize the number of arguments
3044  _status = _logBuff.serialize(static_cast<U8>(3));
3045  FW_ASSERT(
3046  _status == Fw::FW_SERIALIZE_OK,
3047  static_cast<AssertArg>(_status)
3048  );
3049 #endif
3050 
3051  fileName.setMaxSerialize(60);
3052  _status = _logBuff.serialize(fileName);
3053  FW_ASSERT(
3054  _status == Fw::FW_SERIALIZE_OK,
3055  static_cast<AssertArg>(_status)
3056  );
3057 
3058 #if FW_AMPCS_COMPATIBLE
3059  // Serialize the argument size
3060  _status = _logBuff.serialize(
3061  static_cast<U8>(sizeof(header_records))
3062  );
3063  FW_ASSERT(
3064  _status == Fw::FW_SERIALIZE_OK,
3065  static_cast<AssertArg>(_status)
3066  );
3067 #endif
3068 
3069  _status = _logBuff.serialize(header_records);
3070  FW_ASSERT(
3071  _status == Fw::FW_SERIALIZE_OK,
3072  static_cast<AssertArg>(_status)
3073  );
3074 
3075 #if FW_AMPCS_COMPATIBLE
3076  // Serialize the argument size
3077  _status = _logBuff.serialize(
3078  static_cast<U8>(sizeof(extra_bytes))
3079  );
3080  FW_ASSERT(
3081  _status == Fw::FW_SERIALIZE_OK,
3082  static_cast<AssertArg>(_status)
3083  );
3084 #endif
3085 
3086  _status = _logBuff.serialize(extra_bytes);
3087  FW_ASSERT(
3088  _status == Fw::FW_SERIALIZE_OK,
3089  static_cast<AssertArg>(_status)
3090  );
3091 
3092 
3093  this->m_logOut_OutputPort[0].invoke(
3094  _id,
3095  _logTime,Fw::LOG_WARNING_HI,
3096  _logBuff
3097  );
3098 
3099  }
3100 
3101  // Emit the event on the text log port
3102 #if FW_ENABLE_TEXT_LOGGING
3103  if (this->m_LogText_OutputPort[0].isConnected()) {
3104 
3105 #if FW_OBJECT_NAMES == 1
3106  const char* _formatString =
3107  "(%s) %s: Sequence file %s header records mismatch: %d in header, found %d extra bytes.";
3108 #else
3109  const char* _formatString =
3110  "%s: Sequence file %s header records mismatch: %d in header, found %d extra bytes.";
3111 #endif
3112 
3113  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3114 
3115  (void) snprintf(
3116  _textBuffer,
3118  _formatString,
3119 #if FW_OBJECT_NAMES == 1
3120  this->m_objName,
3121 #endif
3122  "CS_RecordMismatch "
3123  , fileName.toChar()
3124  , header_records
3125  , extra_bytes
3126  );
3127 
3128  // Null terminate
3129  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3130  Fw::TextLogString _logString = _textBuffer;
3131  this->m_LogText_OutputPort[0].invoke(
3132  _id,
3133  _logTime,Fw::TEXT_LOG_WARNING_HI,
3134  _logString
3135  );
3136 
3137  }
3138 #endif
3139 
3140  }
3141 
3142 
3145  Fw::LogStringArg& fileName, U16 time_base, U16 seq_time_base
3146  )
3147  {
3148 
3149 
3150  // Get the time
3151  Fw::Time _logTime;
3152  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3153  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3154  }
3155 
3156  FwEventIdType _id = static_cast<FwEventIdType>(0);
3157 
3158  _id = this->getIdBase() + EVENTID_CS_TIMEBASEMISMATCH;
3159 
3160  // Emit the event on the log port
3161  if (this->m_logOut_OutputPort[0].isConnected()) {
3162 
3163  Fw::LogBuffer _logBuff;
3165 
3166 #if FW_AMPCS_COMPATIBLE
3167  // Serialize the number of arguments
3168  _status = _logBuff.serialize(static_cast<U8>(3));
3169  FW_ASSERT(
3170  _status == Fw::FW_SERIALIZE_OK,
3171  static_cast<AssertArg>(_status)
3172  );
3173 #endif
3174 
3175  fileName.setMaxSerialize(60);
3176  _status = _logBuff.serialize(fileName);
3177  FW_ASSERT(
3178  _status == Fw::FW_SERIALIZE_OK,
3179  static_cast<AssertArg>(_status)
3180  );
3181 
3182 #if FW_AMPCS_COMPATIBLE
3183  // Serialize the argument size
3184  _status = _logBuff.serialize(
3185  static_cast<U8>(sizeof(time_base))
3186  );
3187  FW_ASSERT(
3188  _status == Fw::FW_SERIALIZE_OK,
3189  static_cast<AssertArg>(_status)
3190  );
3191 #endif
3192 
3193  _status = _logBuff.serialize(time_base);
3194  FW_ASSERT(
3195  _status == Fw::FW_SERIALIZE_OK,
3196  static_cast<AssertArg>(_status)
3197  );
3198 
3199 #if FW_AMPCS_COMPATIBLE
3200  // Serialize the argument size
3201  _status = _logBuff.serialize(
3202  static_cast<U8>(sizeof(seq_time_base))
3203  );
3204  FW_ASSERT(
3205  _status == Fw::FW_SERIALIZE_OK,
3206  static_cast<AssertArg>(_status)
3207  );
3208 #endif
3209 
3210  _status = _logBuff.serialize(seq_time_base);
3211  FW_ASSERT(
3212  _status == Fw::FW_SERIALIZE_OK,
3213  static_cast<AssertArg>(_status)
3214  );
3215 
3216 
3217  this->m_logOut_OutputPort[0].invoke(
3218  _id,
3219  _logTime,Fw::LOG_WARNING_HI,
3220  _logBuff
3221  );
3222 
3223  }
3224 
3225  // Emit the event on the text log port
3226 #if FW_ENABLE_TEXT_LOGGING
3227  if (this->m_LogText_OutputPort[0].isConnected()) {
3228 
3229 #if FW_OBJECT_NAMES == 1
3230  const char* _formatString =
3231  "(%s) %s: Sequence file %s: Current time base doesn't match sequence time: base: %d seq: %d";
3232 #else
3233  const char* _formatString =
3234  "%s: Sequence file %s: Current time base doesn't match sequence time: base: %d seq: %d";
3235 #endif
3236 
3237  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3238 
3239  (void) snprintf(
3240  _textBuffer,
3242  _formatString,
3243 #if FW_OBJECT_NAMES == 1
3244  this->m_objName,
3245 #endif
3246  "CS_TimeBaseMismatch "
3247  , fileName.toChar()
3248  , time_base
3249  , seq_time_base
3250  );
3251 
3252  // Null terminate
3253  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3254  Fw::TextLogString _logString = _textBuffer;
3255  this->m_LogText_OutputPort[0].invoke(
3256  _id,
3257  _logTime,Fw::TEXT_LOG_WARNING_HI,
3258  _logString
3259  );
3260 
3261  }
3262 #endif
3263 
3264  }
3265 
3266 
3269  Fw::LogStringArg& fileName, U8 currTimeBase, U8 seqTimeBase
3270  )
3271  {
3272 
3273 
3274  // Get the time
3275  Fw::Time _logTime;
3276  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3277  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3278  }
3279 
3280  FwEventIdType _id = static_cast<FwEventIdType>(0);
3281 
3282  _id = this->getIdBase() + EVENTID_CS_TIMECONTEXTMISMATCH;
3283 
3284  // Emit the event on the log port
3285  if (this->m_logOut_OutputPort[0].isConnected()) {
3286 
3287  Fw::LogBuffer _logBuff;
3289 
3290 #if FW_AMPCS_COMPATIBLE
3291  // Serialize the number of arguments
3292  _status = _logBuff.serialize(static_cast<U8>(3));
3293  FW_ASSERT(
3294  _status == Fw::FW_SERIALIZE_OK,
3295  static_cast<AssertArg>(_status)
3296  );
3297 #endif
3298 
3299  fileName.setMaxSerialize(60);
3300  _status = _logBuff.serialize(fileName);
3301  FW_ASSERT(
3302  _status == Fw::FW_SERIALIZE_OK,
3303  static_cast<AssertArg>(_status)
3304  );
3305 
3306 #if FW_AMPCS_COMPATIBLE
3307  // Serialize the argument size
3308  _status = _logBuff.serialize(
3309  static_cast<U8>(sizeof(currTimeBase))
3310  );
3311  FW_ASSERT(
3312  _status == Fw::FW_SERIALIZE_OK,
3313  static_cast<AssertArg>(_status)
3314  );
3315 #endif
3316 
3317  _status = _logBuff.serialize(currTimeBase);
3318  FW_ASSERT(
3319  _status == Fw::FW_SERIALIZE_OK,
3320  static_cast<AssertArg>(_status)
3321  );
3322 
3323 #if FW_AMPCS_COMPATIBLE
3324  // Serialize the argument size
3325  _status = _logBuff.serialize(
3326  static_cast<U8>(sizeof(seqTimeBase))
3327  );
3328  FW_ASSERT(
3329  _status == Fw::FW_SERIALIZE_OK,
3330  static_cast<AssertArg>(_status)
3331  );
3332 #endif
3333 
3334  _status = _logBuff.serialize(seqTimeBase);
3335  FW_ASSERT(
3336  _status == Fw::FW_SERIALIZE_OK,
3337  static_cast<AssertArg>(_status)
3338  );
3339 
3340 
3341  this->m_logOut_OutputPort[0].invoke(
3342  _id,
3343  _logTime,Fw::LOG_WARNING_HI,
3344  _logBuff
3345  );
3346 
3347  }
3348 
3349  // Emit the event on the text log port
3350 #if FW_ENABLE_TEXT_LOGGING
3351  if (this->m_LogText_OutputPort[0].isConnected()) {
3352 
3353 #if FW_OBJECT_NAMES == 1
3354  const char* _formatString =
3355  "(%s) %s: Sequence file %s: Current time context doesn't match sequence context: base: %d seq: %d";
3356 #else
3357  const char* _formatString =
3358  "%s: Sequence file %s: Current time context doesn't match sequence context: base: %d seq: %d";
3359 #endif
3360 
3361  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3362 
3363  (void) snprintf(
3364  _textBuffer,
3366  _formatString,
3367 #if FW_OBJECT_NAMES == 1
3368  this->m_objName,
3369 #endif
3370  "CS_TimeContextMismatch "
3371  , fileName.toChar()
3372  , currTimeBase
3373  , seqTimeBase
3374  );
3375 
3376  // Null terminate
3377  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3378  Fw::TextLogString _logString = _textBuffer;
3379  this->m_LogText_OutputPort[0].invoke(
3380  _id,
3381  _logTime,Fw::TEXT_LOG_WARNING_HI,
3382  _logString
3383  );
3384 
3385  }
3386 #endif
3387 
3388  }
3389 
3390 
3393  Fw::LogStringArg& filename
3394  )
3395  {
3396 
3397 
3398  // Get the time
3399  Fw::Time _logTime;
3400  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3401  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3402  }
3403 
3404  FwEventIdType _id = static_cast<FwEventIdType>(0);
3405 
3406  _id = this->getIdBase() + EVENTID_CS_PORTSEQUENCESTARTED;
3407 
3408  // Emit the event on the log port
3409  if (this->m_logOut_OutputPort[0].isConnected()) {
3410 
3411  Fw::LogBuffer _logBuff;
3413 
3414 #if FW_AMPCS_COMPATIBLE
3415  // Serialize the number of arguments
3416  _status = _logBuff.serialize(static_cast<U8>(1));
3417  FW_ASSERT(
3418  _status == Fw::FW_SERIALIZE_OK,
3419  static_cast<AssertArg>(_status)
3420  );
3421 #endif
3422 
3423  filename.setMaxSerialize(60);
3424  _status = _logBuff.serialize(filename);
3425  FW_ASSERT(
3426  _status == Fw::FW_SERIALIZE_OK,
3427  static_cast<AssertArg>(_status)
3428  );
3429 
3430 
3431  this->m_logOut_OutputPort[0].invoke(
3432  _id,
3433  _logTime,Fw::LOG_ACTIVITY_HI,
3434  _logBuff
3435  );
3436 
3437  }
3438 
3439  // Emit the event on the text log port
3440 #if FW_ENABLE_TEXT_LOGGING
3441  if (this->m_LogText_OutputPort[0].isConnected()) {
3442 
3443 #if FW_OBJECT_NAMES == 1
3444  const char* _formatString =
3445  "(%s) %s: Local request for sequence %s started.";
3446 #else
3447  const char* _formatString =
3448  "%s: Local request for sequence %s started.";
3449 #endif
3450 
3451  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3452 
3453  (void) snprintf(
3454  _textBuffer,
3456  _formatString,
3457 #if FW_OBJECT_NAMES == 1
3458  this->m_objName,
3459 #endif
3460  "CS_PortSequenceStarted "
3461  , filename.toChar()
3462  );
3463 
3464  // Null terminate
3465  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3466  Fw::TextLogString _logString = _textBuffer;
3467  this->m_LogText_OutputPort[0].invoke(
3468  _id,
3469  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
3470  _logString
3471  );
3472 
3473  }
3474 #endif
3475 
3476  }
3477 
3478 
3481  U32 opcode
3482  )
3483  {
3484 
3485 
3486  // Get the time
3487  Fw::Time _logTime;
3488  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3489  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3490  }
3491 
3492  FwEventIdType _id = static_cast<FwEventIdType>(0);
3493 
3495 
3496  // Emit the event on the log port
3497  if (this->m_logOut_OutputPort[0].isConnected()) {
3498 
3499  Fw::LogBuffer _logBuff;
3501 
3502 #if FW_AMPCS_COMPATIBLE
3503  // Serialize the number of arguments
3504  _status = _logBuff.serialize(static_cast<U8>(1));
3505  FW_ASSERT(
3506  _status == Fw::FW_SERIALIZE_OK,
3507  static_cast<AssertArg>(_status)
3508  );
3509 #endif
3510 
3511 #if FW_AMPCS_COMPATIBLE
3512  // Serialize the argument size
3513  _status = _logBuff.serialize(
3514  static_cast<U8>(sizeof(opcode))
3515  );
3516  FW_ASSERT(
3517  _status == Fw::FW_SERIALIZE_OK,
3518  static_cast<AssertArg>(_status)
3519  );
3520 #endif
3521 
3522  _status = _logBuff.serialize(opcode);
3523  FW_ASSERT(
3524  _status == Fw::FW_SERIALIZE_OK,
3525  static_cast<AssertArg>(_status)
3526  );
3527 
3528 
3529  this->m_logOut_OutputPort[0].invoke(
3530  _id,
3531  _logTime,Fw::LOG_WARNING_HI,
3532  _logBuff
3533  );
3534 
3535  }
3536 
3537  // Emit the event on the text log port
3538 #if FW_ENABLE_TEXT_LOGGING
3539  if (this->m_LogText_OutputPort[0].isConnected()) {
3540 
3541 #if FW_OBJECT_NAMES == 1
3542  const char* _formatString =
3543  "(%s) %s: Command complete status received while no sequences active. Opcode: %d";
3544 #else
3545  const char* _formatString =
3546  "%s: Command complete status received while no sequences active. Opcode: %d";
3547 #endif
3548 
3549  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3550 
3551  (void) snprintf(
3552  _textBuffer,
3554  _formatString,
3555 #if FW_OBJECT_NAMES == 1
3556  this->m_objName,
3557 #endif
3558  "CS_UnexpectedCompletion "
3559  , opcode
3560  );
3561 
3562  // Null terminate
3563  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3564  Fw::TextLogString _logString = _textBuffer;
3565  this->m_LogText_OutputPort[0].invoke(
3566  _id,
3567  _logTime,Fw::TEXT_LOG_WARNING_HI,
3568  _logString
3569  );
3570 
3571  }
3572 #endif
3573 
3574  }
3575 
3576 
3579  SeqMode mode
3580  )
3581  {
3582 
3583 
3584  // Get the time
3585  Fw::Time _logTime;
3586  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3587  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3588  }
3589 
3590  FwEventIdType _id = static_cast<FwEventIdType>(0);
3591 
3592  _id = this->getIdBase() + EVENTID_CS_MODESWITCHED;
3593 
3594  // Emit the event on the log port
3595  if (this->m_logOut_OutputPort[0].isConnected()) {
3596 
3597  Fw::LogBuffer _logBuff;
3599 
3600 #if FW_AMPCS_COMPATIBLE
3601  // Serialize the number of arguments
3602  _status = _logBuff.serialize(static_cast<U8>(1));
3603  FW_ASSERT(
3604  _status == Fw::FW_SERIALIZE_OK,
3605  static_cast<AssertArg>(_status)
3606  );
3607 #endif
3608 
3609 #if FW_AMPCS_COMPATIBLE
3610  // Serialize the argument size
3611  _status = _logBuff.serialize(static_cast<U8>(sizeof(FwEnumStoreType)));
3612  FW_ASSERT(
3613  _status == Fw::FW_SERIALIZE_OK,
3614  static_cast<AssertArg>(_status)
3615  );
3616 #endif
3617 
3618  _status = _logBuff.serialize(
3619  static_cast<FwEnumStoreType>(mode)
3620  );
3621  FW_ASSERT(
3622  _status == Fw::FW_SERIALIZE_OK,
3623  static_cast<AssertArg>(_status)
3624  );
3625 
3626 
3627  this->m_logOut_OutputPort[0].invoke(
3628  _id,
3629  _logTime,Fw::LOG_ACTIVITY_HI,
3630  _logBuff
3631  );
3632 
3633  }
3634 
3635  // Emit the event on the text log port
3636 #if FW_ENABLE_TEXT_LOGGING
3637  if (this->m_LogText_OutputPort[0].isConnected()) {
3638 
3639 #if FW_OBJECT_NAMES == 1
3640  const char* _formatString =
3641  "(%s) %s: Sequencer switched to %d step mode";
3642 #else
3643  const char* _formatString =
3644  "%s: Sequencer switched to %d step mode";
3645 #endif
3646 
3647  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3648 
3649  (void) snprintf(
3650  _textBuffer,
3652  _formatString,
3653 #if FW_OBJECT_NAMES == 1
3654  this->m_objName,
3655 #endif
3656  "CS_ModeSwitched "
3657  , mode
3658  );
3659 
3660  // Null terminate
3661  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3662  Fw::TextLogString _logString = _textBuffer;
3663  this->m_LogText_OutputPort[0].invoke(
3664  _id,
3665  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
3666  _logString
3667  );
3668 
3669  }
3670 #endif
3671 
3672  }
3673 
3674 
3677  void
3678  )
3679  {
3680 
3681 
3682  // Get the time
3683  Fw::Time _logTime;
3684  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3685  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3686  }
3687 
3688  FwEventIdType _id = static_cast<FwEventIdType>(0);
3689 
3690  _id = this->getIdBase() + EVENTID_CS_NOSEQUENCEACTIVE;
3691 
3692  // Emit the event on the log port
3693  if (this->m_logOut_OutputPort[0].isConnected()) {
3694 
3695  Fw::LogBuffer _logBuff;
3696 #if FW_AMPCS_COMPATIBLE
3697  // for AMPCS, need to encode zero arguments
3699  _zero_status = _logBuff.serialize(static_cast<U8>(0));
3700  FW_ASSERT(
3701  _zero_status == Fw::FW_SERIALIZE_OK,
3702  static_cast<AssertArg>(_zero_status)
3703  );
3704 #endif
3705 
3706 
3707  this->m_logOut_OutputPort[0].invoke(
3708  _id,
3709  _logTime,Fw::LOG_WARNING_LO,
3710  _logBuff
3711  );
3712 
3713  }
3714 
3715  // Emit the event on the text log port
3716 #if FW_ENABLE_TEXT_LOGGING
3717  if (this->m_LogText_OutputPort[0].isConnected()) {
3718 
3719 #if FW_OBJECT_NAMES == 1
3720  const char* _formatString =
3721  "(%s) %s: No sequence active.";
3722 #else
3723  const char* _formatString =
3724  "%s: No sequence active.";
3725 #endif
3726 
3727  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3728 
3729  (void) snprintf(
3730  _textBuffer,
3732  _formatString,
3733 #if FW_OBJECT_NAMES == 1
3734  this->m_objName,
3735 #endif
3736  "CS_NoSequenceActive "
3737  );
3738 
3739  // Null terminate
3740  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3741  Fw::TextLogString _logString = _textBuffer;
3742  this->m_LogText_OutputPort[0].invoke(
3743  _id,
3744  _logTime,Fw::TEXT_LOG_WARNING_LO,
3745  _logString
3746  );
3747 
3748  }
3749 #endif
3750 
3751  }
3752 
3753 
3756  Fw::LogStringArg& filename
3757  )
3758  {
3759 
3760 
3761  // Get the time
3762  Fw::Time _logTime;
3763  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3764  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3765  }
3766 
3767  FwEventIdType _id = static_cast<FwEventIdType>(0);
3768 
3769  _id = this->getIdBase() + EVENTID_CS_SEQUENCEVALID;
3770 
3771  // Emit the event on the log port
3772  if (this->m_logOut_OutputPort[0].isConnected()) {
3773 
3774  Fw::LogBuffer _logBuff;
3776 
3777 #if FW_AMPCS_COMPATIBLE
3778  // Serialize the number of arguments
3779  _status = _logBuff.serialize(static_cast<U8>(1));
3780  FW_ASSERT(
3781  _status == Fw::FW_SERIALIZE_OK,
3782  static_cast<AssertArg>(_status)
3783  );
3784 #endif
3785 
3786  filename.setMaxSerialize(60);
3787  _status = _logBuff.serialize(filename);
3788  FW_ASSERT(
3789  _status == Fw::FW_SERIALIZE_OK,
3790  static_cast<AssertArg>(_status)
3791  );
3792 
3793 
3794  this->m_logOut_OutputPort[0].invoke(
3795  _id,
3796  _logTime,Fw::LOG_ACTIVITY_HI,
3797  _logBuff
3798  );
3799 
3800  }
3801 
3802  // Emit the event on the text log port
3803 #if FW_ENABLE_TEXT_LOGGING
3804  if (this->m_LogText_OutputPort[0].isConnected()) {
3805 
3806 #if FW_OBJECT_NAMES == 1
3807  const char* _formatString =
3808  "(%s) %s: Sequence %s is valid.";
3809 #else
3810  const char* _formatString =
3811  "%s: Sequence %s is valid.";
3812 #endif
3813 
3814  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3815 
3816  (void) snprintf(
3817  _textBuffer,
3819  _formatString,
3820 #if FW_OBJECT_NAMES == 1
3821  this->m_objName,
3822 #endif
3823  "CS_SequenceValid "
3824  , filename.toChar()
3825  );
3826 
3827  // Null terminate
3828  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3829  Fw::TextLogString _logString = _textBuffer;
3830  this->m_LogText_OutputPort[0].invoke(
3831  _id,
3832  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
3833  _logString
3834  );
3835 
3836  }
3837 #endif
3838 
3839  }
3840 
3841 
3844  Fw::LogStringArg& filename, U32 command
3845  )
3846  {
3847 
3848 
3849  // Get the time
3850  Fw::Time _logTime;
3851  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3852  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3853  }
3854 
3855  FwEventIdType _id = static_cast<FwEventIdType>(0);
3856 
3857  _id = this->getIdBase() + EVENTID_CS_SEQUENCETIMEOUT;
3858 
3859  // Emit the event on the log port
3860  if (this->m_logOut_OutputPort[0].isConnected()) {
3861 
3862  Fw::LogBuffer _logBuff;
3864 
3865 #if FW_AMPCS_COMPATIBLE
3866  // Serialize the number of arguments
3867  _status = _logBuff.serialize(static_cast<U8>(2));
3868  FW_ASSERT(
3869  _status == Fw::FW_SERIALIZE_OK,
3870  static_cast<AssertArg>(_status)
3871  );
3872 #endif
3873 
3874  filename.setMaxSerialize(60);
3875  _status = _logBuff.serialize(filename);
3876  FW_ASSERT(
3877  _status == Fw::FW_SERIALIZE_OK,
3878  static_cast<AssertArg>(_status)
3879  );
3880 
3881 #if FW_AMPCS_COMPATIBLE
3882  // Serialize the argument size
3883  _status = _logBuff.serialize(
3884  static_cast<U8>(sizeof(command))
3885  );
3886  FW_ASSERT(
3887  _status == Fw::FW_SERIALIZE_OK,
3888  static_cast<AssertArg>(_status)
3889  );
3890 #endif
3891 
3892  _status = _logBuff.serialize(command);
3893  FW_ASSERT(
3894  _status == Fw::FW_SERIALIZE_OK,
3895  static_cast<AssertArg>(_status)
3896  );
3897 
3898 
3899  this->m_logOut_OutputPort[0].invoke(
3900  _id,
3901  _logTime,Fw::LOG_WARNING_HI,
3902  _logBuff
3903  );
3904 
3905  }
3906 
3907  // Emit the event on the text log port
3908 #if FW_ENABLE_TEXT_LOGGING
3909  if (this->m_LogText_OutputPort[0].isConnected()) {
3910 
3911 #if FW_OBJECT_NAMES == 1
3912  const char* _formatString =
3913  "(%s) %s: Sequence %s timed out on command %d";
3914 #else
3915  const char* _formatString =
3916  "%s: Sequence %s timed out on command %d";
3917 #endif
3918 
3919  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
3920 
3921  (void) snprintf(
3922  _textBuffer,
3924  _formatString,
3925 #if FW_OBJECT_NAMES == 1
3926  this->m_objName,
3927 #endif
3928  "CS_SequenceTimeout "
3929  , filename.toChar()
3930  , command
3931  );
3932 
3933  // Null terminate
3934  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
3935  Fw::TextLogString _logString = _textBuffer;
3936  this->m_LogText_OutputPort[0].invoke(
3937  _id,
3938  _logTime,Fw::TEXT_LOG_WARNING_HI,
3939  _logString
3940  );
3941 
3942  }
3943 #endif
3944 
3945  }
3946 
3947 
3950  Fw::LogStringArg& filename, U32 command
3951  )
3952  {
3953 
3954 
3955  // Get the time
3956  Fw::Time _logTime;
3957  if (this->m_timeCaller_OutputPort[0].isConnected()) {
3958  this->m_timeCaller_OutputPort[0].invoke( _logTime);
3959  }
3960 
3961  FwEventIdType _id = static_cast<FwEventIdType>(0);
3962 
3963  _id = this->getIdBase() + EVENTID_CS_CMDSTEPPED;
3964 
3965  // Emit the event on the log port
3966  if (this->m_logOut_OutputPort[0].isConnected()) {
3967 
3968  Fw::LogBuffer _logBuff;
3970 
3971 #if FW_AMPCS_COMPATIBLE
3972  // Serialize the number of arguments
3973  _status = _logBuff.serialize(static_cast<U8>(2));
3974  FW_ASSERT(
3975  _status == Fw::FW_SERIALIZE_OK,
3976  static_cast<AssertArg>(_status)
3977  );
3978 #endif
3979 
3980  filename.setMaxSerialize(60);
3981  _status = _logBuff.serialize(filename);
3982  FW_ASSERT(
3983  _status == Fw::FW_SERIALIZE_OK,
3984  static_cast<AssertArg>(_status)
3985  );
3986 
3987 #if FW_AMPCS_COMPATIBLE
3988  // Serialize the argument size
3989  _status = _logBuff.serialize(
3990  static_cast<U8>(sizeof(command))
3991  );
3992  FW_ASSERT(
3993  _status == Fw::FW_SERIALIZE_OK,
3994  static_cast<AssertArg>(_status)
3995  );
3996 #endif
3997 
3998  _status = _logBuff.serialize(command);
3999  FW_ASSERT(
4000  _status == Fw::FW_SERIALIZE_OK,
4001  static_cast<AssertArg>(_status)
4002  );
4003 
4004 
4005  this->m_logOut_OutputPort[0].invoke(
4006  _id,
4007  _logTime,Fw::LOG_ACTIVITY_HI,
4008  _logBuff
4009  );
4010 
4011  }
4012 
4013  // Emit the event on the text log port
4014 #if FW_ENABLE_TEXT_LOGGING
4015  if (this->m_LogText_OutputPort[0].isConnected()) {
4016 
4017 #if FW_OBJECT_NAMES == 1
4018  const char* _formatString =
4019  "(%s) %s: Sequence %s command %d stepped";
4020 #else
4021  const char* _formatString =
4022  "%s: Sequence %s command %d stepped";
4023 #endif
4024 
4025  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
4026 
4027  (void) snprintf(
4028  _textBuffer,
4030  _formatString,
4031 #if FW_OBJECT_NAMES == 1
4032  this->m_objName,
4033 #endif
4034  "CS_CmdStepped "
4035  , filename.toChar()
4036  , command
4037  );
4038 
4039  // Null terminate
4040  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
4041  Fw::TextLogString _logString = _textBuffer;
4042  this->m_LogText_OutputPort[0].invoke(
4043  _id,
4044  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
4045  _logString
4046  );
4047 
4048  }
4049 #endif
4050 
4051  }
4052 
4053 
4056  Fw::LogStringArg& filename
4057  )
4058  {
4059 
4060 
4061  // Get the time
4062  Fw::Time _logTime;
4063  if (this->m_timeCaller_OutputPort[0].isConnected()) {
4064  this->m_timeCaller_OutputPort[0].invoke( _logTime);
4065  }
4066 
4067  FwEventIdType _id = static_cast<FwEventIdType>(0);
4068 
4069  _id = this->getIdBase() + EVENTID_CS_CMDSTARTED;
4070 
4071  // Emit the event on the log port
4072  if (this->m_logOut_OutputPort[0].isConnected()) {
4073 
4074  Fw::LogBuffer _logBuff;
4076 
4077 #if FW_AMPCS_COMPATIBLE
4078  // Serialize the number of arguments
4079  _status = _logBuff.serialize(static_cast<U8>(1));
4080  FW_ASSERT(
4081  _status == Fw::FW_SERIALIZE_OK,
4082  static_cast<AssertArg>(_status)
4083  );
4084 #endif
4085 
4086  filename.setMaxSerialize(60);
4087  _status = _logBuff.serialize(filename);
4088  FW_ASSERT(
4089  _status == Fw::FW_SERIALIZE_OK,
4090  static_cast<AssertArg>(_status)
4091  );
4092 
4093 
4094  this->m_logOut_OutputPort[0].invoke(
4095  _id,
4096  _logTime,Fw::LOG_ACTIVITY_HI,
4097  _logBuff
4098  );
4099 
4100  }
4101 
4102  // Emit the event on the text log port
4103 #if FW_ENABLE_TEXT_LOGGING
4104  if (this->m_LogText_OutputPort[0].isConnected()) {
4105 
4106 #if FW_OBJECT_NAMES == 1
4107  const char* _formatString =
4108  "(%s) %s: Sequence %s started";
4109 #else
4110  const char* _formatString =
4111  "%s: Sequence %s started";
4112 #endif
4113 
4114  char _textBuffer[FW_LOG_TEXT_BUFFER_SIZE];
4115 
4116  (void) snprintf(
4117  _textBuffer,
4119  _formatString,
4120 #if FW_OBJECT_NAMES == 1
4121  this->m_objName,
4122 #endif
4123  "CS_CmdStarted "
4124  , filename.toChar()
4125  );
4126 
4127  // Null terminate
4128  _textBuffer[FW_LOG_TEXT_BUFFER_SIZE-1] = 0;
4129  Fw::TextLogString _logString = _textBuffer;
4130  this->m_LogText_OutputPort[0].invoke(
4131  _id,
4132  _logTime,Fw::TEXT_LOG_ACTIVITY_HI,
4133  _logString
4134  );
4135 
4136  }
4137 #endif
4138 
4139  }
4140 
4141 
4142  // ----------------------------------------------------------------------
4143  // Calls for invocations received on typed input ports
4144  // ----------------------------------------------------------------------
4145 
4146  void CmdSequencerComponentBase ::
4147  m_p_pingIn_in(
4148  Fw::PassiveComponentBase* callComp,
4149  NATIVE_INT_TYPE portNum,
4150  U32 key
4151  )
4152  {
4153  FW_ASSERT(callComp);
4154  CmdSequencerComponentBase* compPtr =
4155  (CmdSequencerComponentBase*) callComp;
4156  compPtr->pingIn_handlerBase(portNum, key);
4157  }
4158 
4161  Fw::PassiveComponentBase* callComp,
4162  NATIVE_INT_TYPE portNum,
4163  FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response
4164  )
4165  {
4166  FW_ASSERT(callComp);
4167  CmdSequencerComponentBase* compPtr =
4168  (CmdSequencerComponentBase*) callComp;
4169  compPtr->cmdResponseIn_handlerBase(portNum, opCode, cmdSeq, response);
4170  }
4171 
4174  Fw::PassiveComponentBase* callComp,
4175  NATIVE_INT_TYPE portNum,
4176  NATIVE_UINT_TYPE context
4177  )
4178  {
4179  FW_ASSERT(callComp);
4180  CmdSequencerComponentBase* compPtr =
4181  (CmdSequencerComponentBase*) callComp;
4182  compPtr->schedIn_handlerBase(portNum, context);
4183  }
4184 
4187  Fw::PassiveComponentBase* callComp,
4188  NATIVE_INT_TYPE portNum,
4189  Fw::EightyCharString &filename
4190  )
4191  {
4192  FW_ASSERT(callComp);
4193  CmdSequencerComponentBase* compPtr =
4194  (CmdSequencerComponentBase*) callComp;
4195  compPtr->seqRunIn_handlerBase(portNum, filename);
4196  }
4197 
4198  // ----------------------------------------------------------------------
4199  // Port handler base-class functions for typed input ports
4200  // ----------------------------------------------------------------------
4201 
4202  void CmdSequencerComponentBase ::
4203  pingIn_handlerBase(
4204  NATIVE_INT_TYPE portNum,
4205  U32 key
4206  )
4207  {
4208 
4209  // Make sure port number is valid
4210  FW_ASSERT(portNum < this->getNum_pingIn_InputPorts(),static_cast<AssertArg>(portNum));
4211 
4212  // Call pre-message hook
4213  pingIn_preMsgHook(
4214  portNum,
4215  key
4216  );
4217 
4218  ComponentIpcSerializableBuffer msg;
4220 
4221  _status = msg.serialize(
4222  static_cast<NATIVE_INT_TYPE>(PINGIN_PING)
4223  );
4224  FW_ASSERT (
4225  _status == Fw::FW_SERIALIZE_OK,
4226  static_cast<AssertArg>(_status)
4227  );
4228 
4229  _status = msg.serialize(portNum);
4230  FW_ASSERT (
4231  _status == Fw::FW_SERIALIZE_OK,
4232  static_cast<AssertArg>(_status)
4233  );
4234 
4235  // Serialize argument key
4236  _status = msg.serialize(key);
4237  FW_ASSERT(
4238  _status == Fw::FW_SERIALIZE_OK,
4239  static_cast<AssertArg>(_status)
4240  );
4241 
4242 
4243  // send message
4244  Os::Queue::QueueBlocking _block =
4246  Os::Queue::QueueStatus qStatus =
4247  this->m_queue.send(msg, 0,_block);
4248  FW_ASSERT(
4249  qStatus == Os::Queue::QUEUE_OK,
4250  static_cast<AssertArg>(qStatus)
4251  );
4252 
4253  }
4254 
4257  NATIVE_INT_TYPE portNum,
4258  FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response
4259  )
4260  {
4261 
4262  // Make sure port number is valid
4263  FW_ASSERT(portNum < this->getNum_cmdResponseIn_InputPorts(),static_cast<AssertArg>(portNum));
4264 
4265  // Call pre-message hook
4267  portNum,
4268  opCode, cmdSeq, response
4269  );
4270 
4271  ComponentIpcSerializableBuffer msg;
4273 
4274  _status = msg.serialize(
4275  static_cast<NATIVE_INT_TYPE>(CMDRESPONSEIN_CMDRESPONSE)
4276  );
4277  FW_ASSERT (
4278  _status == Fw::FW_SERIALIZE_OK,
4279  static_cast<AssertArg>(_status)
4280  );
4281 
4282  _status = msg.serialize(portNum);
4283  FW_ASSERT (
4284  _status == Fw::FW_SERIALIZE_OK,
4285  static_cast<AssertArg>(_status)
4286  );
4287 
4288  // Serialize argument opCode
4289  _status = msg.serialize(opCode);
4290  FW_ASSERT(
4291  _status == Fw::FW_SERIALIZE_OK,
4292  static_cast<AssertArg>(_status)
4293  );
4294 
4295  // Serialize argument cmdSeq
4296  _status = msg.serialize(cmdSeq);
4297  FW_ASSERT(
4298  _status == Fw::FW_SERIALIZE_OK,
4299  static_cast<AssertArg>(_status)
4300  );
4301 
4302  // Serialize argument response
4303  _status = msg.serialize(static_cast<FwEnumStoreType>(response));
4304  FW_ASSERT(
4305  _status == Fw::FW_SERIALIZE_OK,
4306  static_cast<AssertArg>(_status)
4307  );
4308 
4309 
4310  // send message
4311  Os::Queue::QueueBlocking _block =
4313  Os::Queue::QueueStatus qStatus =
4314  this->m_queue.send(msg, 0,_block);
4315  FW_ASSERT(
4316  qStatus == Os::Queue::QUEUE_OK,
4317  static_cast<AssertArg>(qStatus)
4318  );
4319 
4320  }
4321 
4324  NATIVE_INT_TYPE portNum,
4325  NATIVE_UINT_TYPE context
4326  )
4327  {
4328 
4329  // Make sure port number is valid
4330  FW_ASSERT(portNum < this->getNum_schedIn_InputPorts(),static_cast<AssertArg>(portNum));
4331 
4332  // Call pre-message hook
4334  portNum,
4335  context
4336  );
4337 
4338  ComponentIpcSerializableBuffer msg;
4340 
4341  _status = msg.serialize(
4342  static_cast<NATIVE_INT_TYPE>(SCHEDIN_SCHED)
4343  );
4344  FW_ASSERT (
4345  _status == Fw::FW_SERIALIZE_OK,
4346  static_cast<AssertArg>(_status)
4347  );
4348 
4349  _status = msg.serialize(portNum);
4350  FW_ASSERT (
4351  _status == Fw::FW_SERIALIZE_OK,
4352  static_cast<AssertArg>(_status)
4353  );
4354 
4355  // Serialize argument context
4356  _status = msg.serialize(context);
4357  FW_ASSERT(
4358  _status == Fw::FW_SERIALIZE_OK,
4359  static_cast<AssertArg>(_status)
4360  );
4361 
4362 
4363  // send message
4364  Os::Queue::QueueBlocking _block =
4366  Os::Queue::QueueStatus qStatus =
4367  this->m_queue.send(msg, 0,_block);
4368  FW_ASSERT(
4369  qStatus == Os::Queue::QUEUE_OK,
4370  static_cast<AssertArg>(qStatus)
4371  );
4372 
4373  }
4374 
4377  NATIVE_INT_TYPE portNum,
4378  Fw::EightyCharString &filename
4379  )
4380  {
4381 
4382  // Make sure port number is valid
4383  FW_ASSERT(portNum < this->getNum_seqRunIn_InputPorts(),static_cast<AssertArg>(portNum));
4384 
4385  // Call pre-message hook
4387  portNum,
4388  filename
4389  );
4390 
4391  ComponentIpcSerializableBuffer msg;
4393 
4394  _status = msg.serialize(
4395  static_cast<NATIVE_INT_TYPE>(SEQRUNIN_CMDSEQIN)
4396  );
4397  FW_ASSERT (
4398  _status == Fw::FW_SERIALIZE_OK,
4399  static_cast<AssertArg>(_status)
4400  );
4401 
4402  _status = msg.serialize(portNum);
4403  FW_ASSERT (
4404  _status == Fw::FW_SERIALIZE_OK,
4405  static_cast<AssertArg>(_status)
4406  );
4407 
4408  // Serialize argument filename
4409  _status = msg.serialize(filename);
4410  FW_ASSERT(
4411  _status == Fw::FW_SERIALIZE_OK,
4412  static_cast<AssertArg>(_status)
4413  );
4414 
4415 
4416  // send message
4417  Os::Queue::QueueBlocking _block =
4419  Os::Queue::QueueStatus qStatus =
4420  this->m_queue.send(msg, 0,_block);
4421  FW_ASSERT(
4422  qStatus == Os::Queue::QUEUE_OK,
4423  static_cast<AssertArg>(qStatus)
4424  );
4425 
4426  }
4427 
4428  // ----------------------------------------------------------------------
4429  // Pre-message hooks for async input ports
4430  // ----------------------------------------------------------------------
4431 
4432  void CmdSequencerComponentBase ::
4433  pingIn_preMsgHook(
4434  NATIVE_INT_TYPE portNum,
4435  U32 key
4436  )
4437  {
4438  // Default: no-op
4439  }
4440 
4443  NATIVE_INT_TYPE portNum,
4444  FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response
4445  )
4446  {
4447  // Default: no-op
4448  }
4449 
4452  NATIVE_INT_TYPE portNum,
4453  NATIVE_UINT_TYPE context
4454  )
4455  {
4456  // Default: no-op
4457  }
4458 
4461  NATIVE_INT_TYPE portNum,
4462  Fw::EightyCharString &filename
4463  )
4464  {
4465  // Default: no-op
4466  }
4467 
4468  // ----------------------------------------------------------------------
4469  // Message dispatch method for active and queued components. Called
4470  // by active component thread or implementation code for queued components
4471  // ----------------------------------------------------------------------
4472 
4474  doDispatch(void)
4475  {
4476  ComponentIpcSerializableBuffer msg;
4477  NATIVE_INT_TYPE priority;
4478 
4479  Os::Queue::QueueStatus msgStatus = this->m_queue.receive(msg,priority,Os::Queue::QUEUE_BLOCKING);
4480  FW_ASSERT(
4481  msgStatus == Os::Queue::QUEUE_OK,
4482  static_cast<AssertArg>(msgStatus)
4483  );
4484 
4485  // Reset to beginning of buffer
4486  msg.resetDeser();
4487 
4488  NATIVE_INT_TYPE desMsg;
4489  Fw::SerializeStatus deserStatus = msg.deserialize(desMsg);
4490  FW_ASSERT(
4491  deserStatus == Fw::FW_SERIALIZE_OK,
4492  static_cast<AssertArg>(deserStatus)
4493  );
4494 
4495  MsgTypeEnum msgType = static_cast<MsgTypeEnum>(desMsg);
4496 
4497  if (msgType == CMDSEQUENCER_COMPONENT_EXIT) {
4498  return MSG_DISPATCH_EXIT;
4499  }
4500 
4502  deserStatus = msg.deserialize(portNum);
4503  FW_ASSERT(
4504  deserStatus == Fw::FW_SERIALIZE_OK,
4505  static_cast<AssertArg>(deserStatus)
4506  );
4507 
4508  switch (msgType) {
4509 
4510  // Handle async input port pingIn
4511  case PINGIN_PING: {
4512 
4513  // Deserialize argument key
4514  U32 key;
4515  deserStatus = msg.deserialize(key);
4516  FW_ASSERT(
4517  deserStatus == Fw::FW_SERIALIZE_OK,
4518  static_cast<AssertArg>(deserStatus)
4519  );
4520 
4521  // Call handler function
4522  this->pingIn_handler(
4523  portNum,
4524  key
4525  );
4526 
4527  break;
4528 
4529  }
4530 
4531  // Handle async input port cmdResponseIn
4532  case CMDRESPONSEIN_CMDRESPONSE: {
4533 
4534  // Deserialize argument opCode
4535  FwOpcodeType opCode;
4536  deserStatus = msg.deserialize(opCode);
4537  FW_ASSERT(
4538  deserStatus == Fw::FW_SERIALIZE_OK,
4539  static_cast<AssertArg>(deserStatus)
4540  );
4541 
4542  // Deserialize argument cmdSeq
4543  U32 cmdSeq;
4544  deserStatus = msg.deserialize(cmdSeq);
4545  FW_ASSERT(
4546  deserStatus == Fw::FW_SERIALIZE_OK,
4547  static_cast<AssertArg>(deserStatus)
4548  );
4549 
4550  // Deserialize argument response
4552  FwEnumStoreType responseInt;
4553  deserStatus = msg.deserialize(responseInt);
4554  response = (Fw::CommandResponse) responseInt;
4555  FW_ASSERT(
4556  deserStatus == Fw::FW_SERIALIZE_OK,
4557  static_cast<AssertArg>(deserStatus)
4558  );
4559 
4560  // Call handler function
4561  this->cmdResponseIn_handler(
4562  portNum,
4563  opCode, cmdSeq, response
4564  );
4565 
4566  break;
4567 
4568  }
4569 
4570  // Handle async input port schedIn
4571  case SCHEDIN_SCHED: {
4572 
4573  // Deserialize argument context
4575  deserStatus = msg.deserialize(context);
4576  FW_ASSERT(
4577  deserStatus == Fw::FW_SERIALIZE_OK,
4578  static_cast<AssertArg>(deserStatus)
4579  );
4580 
4581  // Call handler function
4582  this->schedIn_handler(
4583  portNum,
4584  context
4585  );
4586 
4587  break;
4588 
4589  }
4590 
4591  // Handle async input port seqRunIn
4592  case SEQRUNIN_CMDSEQIN: {
4593 
4594  // Deserialize argument filename
4595  Fw::EightyCharString filename;
4596  deserStatus = msg.deserialize(filename);
4597  FW_ASSERT(
4598  deserStatus == Fw::FW_SERIALIZE_OK,
4599  static_cast<AssertArg>(deserStatus)
4600  );
4601 
4602  // Call handler function
4603  this->seqRunIn_handler(
4604  portNum,
4605  filename
4606  );
4607 
4608  break;
4609 
4610  }
4611 
4612  // Handle command CS_RUN
4613  case CMD_CS_RUN: {
4614  // Deserialize opcode
4615  FwOpcodeType opCode;
4616  deserStatus = msg.deserialize(opCode);
4617  FW_ASSERT (
4618  deserStatus == Fw::FW_SERIALIZE_OK,
4619  static_cast<AssertArg>(deserStatus)
4620  );
4621 
4622  // Deserialize command sequence
4623  U32 cmdSeq;
4624  deserStatus = msg.deserialize(cmdSeq);
4625  FW_ASSERT (
4626  deserStatus == Fw::FW_SERIALIZE_OK,
4627  static_cast<AssertArg>(deserStatus)
4628  );
4629 
4630  // Deserialize command argument buffer
4632  deserStatus = msg.deserialize(args);
4633  FW_ASSERT (
4634  deserStatus == Fw::FW_SERIALIZE_OK,
4635  static_cast<AssertArg>(deserStatus)
4636  );
4637 
4638  // Reset buffer
4639  args.resetDeser();
4640 
4641  // Deserialize argument fileName
4643  deserStatus = args.deserialize(fileName);
4644  if (deserStatus != Fw::FW_SERIALIZE_OK) {
4645  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4646  this->cmdResponse_out(
4647  opCode,
4648  cmdSeq,
4650  );
4651  }
4652  // Don't crash the task if bad arguments were passed from the ground
4653  break;
4654  }
4655 
4656  // Make sure there was no data left over.
4657  // That means the argument buffer size was incorrect.
4658 #if FW_CMD_CHECK_RESIDUAL
4659  if (args.getBuffLeft() != 0) {
4660  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4661  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4662  }
4663  // Don't crash the task if bad arguments were passed from the ground
4664  break;
4665  }
4666 #endif
4667  // Call handler function
4668  this->CS_RUN_cmdHandler(
4669  opCode,
4670  cmdSeq,
4671  fileName
4672  );
4673 
4674  break;
4675 
4676  }
4677 
4678  // Handle command CS_VALIDATE
4679  case CMD_CS_VALIDATE: {
4680  // Deserialize opcode
4681  FwOpcodeType opCode;
4682  deserStatus = msg.deserialize(opCode);
4683  FW_ASSERT (
4684  deserStatus == Fw::FW_SERIALIZE_OK,
4685  static_cast<AssertArg>(deserStatus)
4686  );
4687 
4688  // Deserialize command sequence
4689  U32 cmdSeq;
4690  deserStatus = msg.deserialize(cmdSeq);
4691  FW_ASSERT (
4692  deserStatus == Fw::FW_SERIALIZE_OK,
4693  static_cast<AssertArg>(deserStatus)
4694  );
4695 
4696  // Deserialize command argument buffer
4698  deserStatus = msg.deserialize(args);
4699  FW_ASSERT (
4700  deserStatus == Fw::FW_SERIALIZE_OK,
4701  static_cast<AssertArg>(deserStatus)
4702  );
4703 
4704  // Reset buffer
4705  args.resetDeser();
4706 
4707  // Deserialize argument fileName
4709  deserStatus = args.deserialize(fileName);
4710  if (deserStatus != Fw::FW_SERIALIZE_OK) {
4711  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4712  this->cmdResponse_out(
4713  opCode,
4714  cmdSeq,
4716  );
4717  }
4718  // Don't crash the task if bad arguments were passed from the ground
4719  break;
4720  }
4721 
4722  // Make sure there was no data left over.
4723  // That means the argument buffer size was incorrect.
4724 #if FW_CMD_CHECK_RESIDUAL
4725  if (args.getBuffLeft() != 0) {
4726  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4727  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4728  }
4729  // Don't crash the task if bad arguments were passed from the ground
4730  break;
4731  }
4732 #endif
4733  // Call handler function
4734  this->CS_VALIDATE_cmdHandler(
4735  opCode,
4736  cmdSeq,
4737  fileName
4738  );
4739 
4740  break;
4741 
4742  }
4743 
4744  // Handle command CS_CANCEL
4745  case CMD_CS_CANCEL: {
4746  // Deserialize opcode
4747  FwOpcodeType opCode;
4748  deserStatus = msg.deserialize(opCode);
4749  FW_ASSERT (
4750  deserStatus == Fw::FW_SERIALIZE_OK,
4751  static_cast<AssertArg>(deserStatus)
4752  );
4753 
4754  // Deserialize command sequence
4755  U32 cmdSeq;
4756  deserStatus = msg.deserialize(cmdSeq);
4757  FW_ASSERT (
4758  deserStatus == Fw::FW_SERIALIZE_OK,
4759  static_cast<AssertArg>(deserStatus)
4760  );
4761 
4762  // Deserialize command argument buffer
4764  deserStatus = msg.deserialize(args);
4765  FW_ASSERT (
4766  deserStatus == Fw::FW_SERIALIZE_OK,
4767  static_cast<AssertArg>(deserStatus)
4768  );
4769 
4770  // Reset buffer
4771  args.resetDeser();
4772 
4773  // Make sure there was no data left over.
4774  // That means the argument buffer size was incorrect.
4775 #if FW_CMD_CHECK_RESIDUAL
4776  if (args.getBuffLeft() != 0) {
4777  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4778  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4779  }
4780  // Don't crash the task if bad arguments were passed from the ground
4781  break;
4782  }
4783 #endif
4784  // Call handler function
4785  this->CS_CANCEL_cmdHandler(opCode, cmdSeq);
4786 
4787  break;
4788 
4789  }
4790 
4791  // Handle command CS_START
4792  case CMD_CS_START: {
4793  // Deserialize opcode
4794  FwOpcodeType opCode;
4795  deserStatus = msg.deserialize(opCode);
4796  FW_ASSERT (
4797  deserStatus == Fw::FW_SERIALIZE_OK,
4798  static_cast<AssertArg>(deserStatus)
4799  );
4800 
4801  // Deserialize command sequence
4802  U32 cmdSeq;
4803  deserStatus = msg.deserialize(cmdSeq);
4804  FW_ASSERT (
4805  deserStatus == Fw::FW_SERIALIZE_OK,
4806  static_cast<AssertArg>(deserStatus)
4807  );
4808 
4809  // Deserialize command argument buffer
4811  deserStatus = msg.deserialize(args);
4812  FW_ASSERT (
4813  deserStatus == Fw::FW_SERIALIZE_OK,
4814  static_cast<AssertArg>(deserStatus)
4815  );
4816 
4817  // Reset buffer
4818  args.resetDeser();
4819 
4820  // Make sure there was no data left over.
4821  // That means the argument buffer size was incorrect.
4822 #if FW_CMD_CHECK_RESIDUAL
4823  if (args.getBuffLeft() != 0) {
4824  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4825  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4826  }
4827  // Don't crash the task if bad arguments were passed from the ground
4828  break;
4829  }
4830 #endif
4831  // Call handler function
4832  this->CS_START_cmdHandler(opCode, cmdSeq);
4833 
4834  break;
4835 
4836  }
4837 
4838  // Handle command CS_STEP
4839  case CMD_CS_STEP: {
4840  // Deserialize opcode
4841  FwOpcodeType opCode;
4842  deserStatus = msg.deserialize(opCode);
4843  FW_ASSERT (
4844  deserStatus == Fw::FW_SERIALIZE_OK,
4845  static_cast<AssertArg>(deserStatus)
4846  );
4847 
4848  // Deserialize command sequence
4849  U32 cmdSeq;
4850  deserStatus = msg.deserialize(cmdSeq);
4851  FW_ASSERT (
4852  deserStatus == Fw::FW_SERIALIZE_OK,
4853  static_cast<AssertArg>(deserStatus)
4854  );
4855 
4856  // Deserialize command argument buffer
4858  deserStatus = msg.deserialize(args);
4859  FW_ASSERT (
4860  deserStatus == Fw::FW_SERIALIZE_OK,
4861  static_cast<AssertArg>(deserStatus)
4862  );
4863 
4864  // Reset buffer
4865  args.resetDeser();
4866 
4867  // Make sure there was no data left over.
4868  // That means the argument buffer size was incorrect.
4869 #if FW_CMD_CHECK_RESIDUAL
4870  if (args.getBuffLeft() != 0) {
4871  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4872  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4873  }
4874  // Don't crash the task if bad arguments were passed from the ground
4875  break;
4876  }
4877 #endif
4878  // Call handler function
4879  this->CS_STEP_cmdHandler(opCode, cmdSeq);
4880 
4881  break;
4882 
4883  }
4884 
4885  // Handle command CS_AUTO
4886  case CMD_CS_AUTO: {
4887  // Deserialize opcode
4888  FwOpcodeType opCode;
4889  deserStatus = msg.deserialize(opCode);
4890  FW_ASSERT (
4891  deserStatus == Fw::FW_SERIALIZE_OK,
4892  static_cast<AssertArg>(deserStatus)
4893  );
4894 
4895  // Deserialize command sequence
4896  U32 cmdSeq;
4897  deserStatus = msg.deserialize(cmdSeq);
4898  FW_ASSERT (
4899  deserStatus == Fw::FW_SERIALIZE_OK,
4900  static_cast<AssertArg>(deserStatus)
4901  );
4902 
4903  // Deserialize command argument buffer
4905  deserStatus = msg.deserialize(args);
4906  FW_ASSERT (
4907  deserStatus == Fw::FW_SERIALIZE_OK,
4908  static_cast<AssertArg>(deserStatus)
4909  );
4910 
4911  // Reset buffer
4912  args.resetDeser();
4913 
4914  // Make sure there was no data left over.
4915  // That means the argument buffer size was incorrect.
4916 #if FW_CMD_CHECK_RESIDUAL
4917  if (args.getBuffLeft() != 0) {
4918  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4919  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4920  }
4921  // Don't crash the task if bad arguments were passed from the ground
4922  break;
4923  }
4924 #endif
4925  // Call handler function
4926  this->CS_AUTO_cmdHandler(opCode, cmdSeq);
4927 
4928  break;
4929 
4930  }
4931 
4932  // Handle command CS_MANUAL
4933  case CMD_CS_MANUAL: {
4934  // Deserialize opcode
4935  FwOpcodeType opCode;
4936  deserStatus = msg.deserialize(opCode);
4937  FW_ASSERT (
4938  deserStatus == Fw::FW_SERIALIZE_OK,
4939  static_cast<AssertArg>(deserStatus)
4940  );
4941 
4942  // Deserialize command sequence
4943  U32 cmdSeq;
4944  deserStatus = msg.deserialize(cmdSeq);
4945  FW_ASSERT (
4946  deserStatus == Fw::FW_SERIALIZE_OK,
4947  static_cast<AssertArg>(deserStatus)
4948  );
4949 
4950  // Deserialize command argument buffer
4952  deserStatus = msg.deserialize(args);
4953  FW_ASSERT (
4954  deserStatus == Fw::FW_SERIALIZE_OK,
4955  static_cast<AssertArg>(deserStatus)
4956  );
4957 
4958  // Reset buffer
4959  args.resetDeser();
4960 
4961  // Make sure there was no data left over.
4962  // That means the argument buffer size was incorrect.
4963 #if FW_CMD_CHECK_RESIDUAL
4964  if (args.getBuffLeft() != 0) {
4965  if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4966  this->cmdResponse_out(opCode,cmdSeq,Fw::COMMAND_FORMAT_ERROR);
4967  }
4968  // Don't crash the task if bad arguments were passed from the ground
4969  break;
4970  }
4971 #endif
4972  // Call handler function
4973  this->CS_MANUAL_cmdHandler(opCode, cmdSeq);
4974 
4975  break;
4976 
4977  }
4978 
4979  default:
4980  return MSG_DISPATCH_ERROR;
4981 
4982  }
4983 
4984  return MSG_DISPATCH_OK;
4985 
4986  }
4987 
4988 } // end namespace Svc
Svc::CmdSequencerComponentBase::OPCODE_CS_AUTO
PROTECTED OPCODE_CS_AUTO
Definition: CmdSequencerComponentAc.hpp:655
Fw::TEXT_LOG_ACTIVITY_HI
@ TEXT_LOG_ACTIVITY_HI
Definition: LogTextPortAc.hpp:31
Svc::CmdSequencerComponentBase::CS_VALIDATE_cmdHandlerBase
void CS_VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:1168
Svc::CmdSequencerComponentBase::schedIn_preMsgHook
virtual void schedIn_preMsgHook(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Definition: CmdSequencerComponentAc.cpp:4451
Svc::CmdSequencerComponentBase::CS_MANUAL_cmdHandlerBase
void CS_MANUAL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:1518
Fw::TextLogString
Definition: TextLogString.hpp:11
Fw::InputTimePort
Definition: TimePortAc.hpp:28
Svc::CmdSequencerComponentBase::getNum_seqDone_OutputPorts
NATIVE_INT_TYPE getNum_seqDone_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:888
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_PortSequenceStarted
void log_ACTIVITY_HI_CS_PortSequenceStarted(Fw::LogStringArg &filename)
Definition: CmdSequencerComponentAc.cpp:3392
Svc::CmdSequencerComponentBase::EVENTID_CS_COMMANDERROR
PROTECTED EVENTID_CS_COMMANDERROR
Definition: CmdSequencerComponentAc.hpp:869
Svc::CmdSequencerComponentBase::m_seqDone_OutputPort
Fw::OutputCmdResponsePort m_seqDone_OutputPort[NUM_SEQDONE_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1255
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_FileSizeError
void log_WARNING_HI_CS_FileSizeError(Fw::LogStringArg &fileName, U32 size)
Definition: CmdSequencerComponentAc.cpp:2269
Svc::CmdSequencerComponentBase::getNum_cmdIn_InputPorts
NATIVE_INT_TYPE getNum_cmdIn_InputPorts(void)
Definition: CmdSequencerComponentAc.cpp:856
Svc::CmdSequencerComponentBase
Auto-generated base for CmdSequencer component.
Definition: CmdSequencerComponentAc.hpp:52
Svc::InputPingPort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: PingPortAc.hpp:30
Svc::CmdSequencerComponentBase::getNum_tlmOut_OutputPorts
NATIVE_INT_TYPE getNum_tlmOut_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:808
Fw::InputTlmPort
Definition: TlmPortAc.hpp:29
Svc::CmdSequencerComponentBase::set_pingOut_OutputPort
void set_pingOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
Definition: CmdSequencerComponentAc.cpp:198
Fw::PassiveComponentBase::getIdBase
U32 getIdBase(void) const
Definition: PassiveComponentBase.cpp:40
Svc::CmdSequencerComponentBase::EVENTID_CS_FILENOTFOUND
PROTECTED EVENTID_CS_FILENOTFOUND
Definition: CmdSequencerComponentAc.hpp:865
Svc::CmdSequencerComponentBase::isConnected_cmdResponseOut_OutputPort
bool isConnected_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:932
Svc::CmdSequencerComponentBase::set_tlmOut_OutputPort
void set_tlmOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
Definition: CmdSequencerComponentAc.cpp:158
Svc::CmdSequencerComponentBase::seqRunIn_handlerBase
void seqRunIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::EightyCharString &filename)
Definition: CmdSequencerComponentAc.cpp:4376
Svc::CmdSequencerComponentBase::get_seqRunIn_InputPort
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:125
Fw::Time
Definition: Time.hpp:10
Svc::CmdSequencerComponentBase::m_p_cmdIn_in
static void m_p_cmdIn_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:996
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_RecordInvalid
void log_WARNING_HI_CS_RecordInvalid(Fw::LogStringArg &fileName, U32 recordNumber, I32 error)
Definition: CmdSequencerComponentAc.cpp:2145
Svc::CmdSequencerComponentBase::EVENTID_CS_SEQUENCEVALID
PROTECTED EVENTID_CS_SEQUENCEVALID
Definition: CmdSequencerComponentAc.hpp:878
Svc::CmdSequencerComponentBase::CS_STEP_cmdHandler
virtual void CS_STEP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Handler for command CS_STEP.
Svc::CmdSequencerComponentBase::m_timeCaller_OutputPort
Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1239
Svc::CmdSequencerComponentBase::EVENTID_CS_CMDSTARTED
PROTECTED EVENTID_CS_CMDSTARTED
Definition: CmdSequencerComponentAc.hpp:881
Svc::CmdSequencerComponentBase::CS_VALIDATE_cmdHandler
virtual void CS_VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0
Handler for command CS_VALIDATE.
Fw::QueuedComponentBase::doDispatch
virtual MsgDispatchStatus doDispatch(void)=0
method to dispatch a single message in the queue.
Svc::CmdSequencerComponentBase::m_tlmOut_OutputPort
Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1231
Fw::OutputCmdResponsePort::addCallPort
void addCallPort(InputCmdResponsePort *callPort)
Definition: CmdResponsePortAc.cpp:105
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Fw::TlmBuffer
Definition: TlmBuffer.hpp:21
Svc::InputSchedPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: SchedPortAc.cpp:42
Fw::CommandResponse
CommandResponse
Definition: CmdResponsePortAc.hpp:24
FwChanIdType
#define FwChanIdType
Type representation for a channel id.
Definition: FpConfig.hpp:66
Fw::SerializeBufferBase::resetDeser
void resetDeser(void)
reset deserialization to beginning
Definition: Serializable.cpp:575
Fw::PortBase::isConnected
bool isConnected(void)
Definition: PortBase.cpp:40
Svc::CmdSequencerComponentBase::m_cmdIn_InputPort
Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1203
Fw::CmdStringArg::toChar
const char * toChar(void) const
Definition: CmdString.cpp:34
Fw::OutputLogPort::invoke
void invoke(FwEventIdType id, Fw::Time &timeTag, LogSeverity severity, LogBuffer &args)
Definition: LogPortAc.cpp:121
Svc::CmdSequencerComponentBase::context
PROTECTED Fw::ComBuffer U32 context
Definition: CmdSequencerComponentAc.hpp:421
Fw::LOG_WARNING_HI
@ LOG_WARNING_HI
Definition: LogPortAc.hpp:28
Svc::CmdSequencerComponentBase::EVENTID_CS_FILECRCFAILURE
PROTECTED EVENTID_CS_FILECRCFAILURE
Definition: CmdSequencerComponentAc.hpp:866
FW_OBJECT_NAMES
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects)
Definition: FpConfig.hpp:91
Svc::CmdSequencerComponentBase::CS_START_cmdHandlerBase
void CS_START_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:1308
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:67
Svc::CmdSequencerComponentBase::tlmWrite_CS_CancelCommands
void tlmWrite_CS_CancelCommands(U32 arg)
Definition: CmdSequencerComponentAc.cpp:1621
Fw::LOG_WARNING_LO
@ LOG_WARNING_LO
Definition: LogPortAc.hpp:29
Svc::CmdSequencerComponentBase::isConnected_pingOut_OutputPort
bool isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:962
FW_NUM_ARRAY_ELEMENTS
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition: BasicTypes.hpp:103
Svc::CmdSequencerComponentBase::~CmdSequencerComponentBase
virtual ~CmdSequencerComponentBase(void)
Definition: CmdSequencerComponentAc.cpp:739
Svc::CmdSequencerComponentBase::OPCODE_CS_START
PROTECTED OPCODE_CS_START
Definition: CmdSequencerComponentAc.hpp:653
Fw::LogStringArg
Definition: LogString.hpp:11
Svc::CmdSequencerComponentBase::CHANNELID_CS_SEQUENCESCOMPLETED
PROTECTED CHANNELID_CS_SEQUENCESCOMPLETED
Channel ID for CS_SequencesCompleted.
Definition: CmdSequencerComponentAc.hpp:1130
U8
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.hpp:76
Svc::CmdSequencerComponentBase::log_ACTIVITY_LO_CS_CommandComplete
void log_ACTIVITY_LO_CS_CommandComplete(Fw::LogStringArg &fileName, U32 recordNumber, U32 opCode)
Definition: CmdSequencerComponentAc.cpp:2587
Svc::CmdSequencerComponentBase::get_schedIn_InputPort
Svc::InputSchedPort * get_schedIn_InputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:118
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_SequenceComplete
void log_ACTIVITY_HI_CS_SequenceComplete(Fw::LogStringArg &fileName)
Definition: CmdSequencerComponentAc.cpp:2711
Fw::InputCmdResponsePort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: CmdResponsePortAc.hpp:40
Svc::CmdSequencerComponentBase::isConnected_tlmOut_OutputPort
bool isConnected_tlmOut_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:922
Svc::CmdSequencerComponentBase::CS_CANCEL_cmdHandler
virtual void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Handler for command CS_CANCEL.
FwEnumStoreType
#define FwEnumStoreType
Type representation for an enumeration value.
Definition: FpConfig.hpp:84
Svc::CmdSequencerComponentBase::tlmWrite_CS_Errors
void tlmWrite_CS_Errors(U32 arg)
Definition: CmdSequencerComponentAc.cpp:1650
Svc::InputCmdSeqInPort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: CmdSeqInPortAc.hpp:31
Fw::InputCmdRegPort
Definition: CmdRegPortAc.hpp:27
Svc::OutputPingPort::init
void init(void)
Definition: PingPortAc.cpp:89
Os::Queue::QueueStatus
QueueStatus
Definition: Queue.hpp:27
Fw::EightyCharString
Definition: EightyCharString.hpp:10
Fw::COMMAND_FORMAT_ERROR
@ COMMAND_FORMAT_ERROR
Definition: CmdResponsePortAc.hpp:28
Svc::CmdSequencerComponentBase::EVENTID_CS_SEQUENCECANCELED
PROTECTED EVENTID_CS_SEQUENCECANCELED
Definition: CmdSequencerComponentAc.hpp:860
Fw::QueuedComponentBase::m_queue
Os::Queue m_queue
queue object for active component
Definition: QueuedComponentBase.hpp:36
Fw::LogBuffer
Definition: LogBuffer.hpp:22
Svc::CmdSequencerComponentBase::m_p_cmdResponseIn_in
static void m_p_cmdResponseIn_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response)
Definition: CmdSequencerComponentAc.cpp:4160
Svc::CmdSequencerComponentBase::set_cmdResponseOut_OutputPort
void set_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Definition: CmdSequencerComponentAc.cpp:168
Svc::CmdSequencerComponentBase::tlmWrite_CS_SequencesCompleted
void tlmWrite_CS_SequencesCompleted(U32 arg)
Definition: CmdSequencerComponentAc.cpp:1708
Svc::CmdSequencerComponentBase::CS_AUTO_preMsgHook
virtual void CS_AUTO_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerComponentAc.cpp:1509
Fw::InputCmdPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: CmdPortAc.cpp:42
Svc::CmdSequencerComponentBase::regCommands
void regCommands(void)
Register commands with the Command Dispatcher.
Definition: CmdSequencerComponentAc.cpp:332
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_ModeSwitched
void log_ACTIVITY_HI_CS_ModeSwitched(SeqMode mode)
Definition: CmdSequencerComponentAc.cpp:3578
Svc::CmdSequencerComponentBase::pingOut_out
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Definition: CmdSequencerComponentAc.cpp:758
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_SequenceTimeout
void log_WARNING_HI_CS_SequenceTimeout(Fw::LogStringArg &filename, U32 command)
Definition: CmdSequencerComponentAc.cpp:3843
Fw::OutputComPort::init
void init(void)
Definition: ComPortAc.cpp:95
Svc::CmdSequencerComponentBase::m_comCmdOut_OutputPort
Fw::OutputComPort m_comCmdOut_OutputPort[NUM_COMCMDOUT_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1243
Fw::InputCmdResponsePort::init
void init(void)
initialization function
Definition: CmdResponsePortAc.cpp:38
Svc::CmdSequencerComponentBase::seqDone_out
void seqDone_out(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response)
Definition: CmdSequencerComponentAc.cpp:768
Svc::CmdSequencerComponentBase::OPCODE_CS_VALIDATE
PROTECTED OPCODE_CS_VALIDATE
Definition: CmdSequencerComponentAc.hpp:651
Svc::OutputPingPort::invoke
void invoke(U32 key)
Definition: PingPortAc.cpp:103
Svc::InputSchedPort::init
void init(void)
initialization function
Definition: SchedPortAc.cpp:38
Svc::CmdSequencerComponentBase::cmdResponseIn_preMsgHook
virtual void cmdResponseIn_preMsgHook(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response)
Definition: CmdSequencerComponentAc.cpp:4442
Svc::CmdSequencerComponentBase::portNum
PRIVATE NATIVE_INT_TYPE portNum
Definition: CmdSequencerComponentAc.hpp:1267
Fw::CmdStringArg
Definition: CmdString.hpp:11
Fw::TEXT_LOG_WARNING_HI
@ TEXT_LOG_WARNING_HI
Definition: LogTextPortAc.hpp:28
Svc::CmdSequencerComponentBase::getNum_logOut_OutputPorts
NATIVE_INT_TYPE getNum_logOut_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:880
Svc::CmdSequencerComponentBase::OPCODE_CS_STEP
PROTECTED OPCODE_CS_STEP
Definition: CmdSequencerComponentAc.hpp:654
Svc::InputSchedPort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: SchedPortAc.hpp:30
Assert.hpp
Svc::CmdSequencerComponentBase::set_logOut_OutputPort
void set_logOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Definition: CmdSequencerComponentAc.cpp:208
Svc::CmdSequencerComponentBase::EVENTID_CS_NOSEQUENCEACTIVE
PROTECTED EVENTID_CS_NOSEQUENCEACTIVE
Definition: CmdSequencerComponentAc.hpp:877
Svc::CmdSequencerComponentBase::EVENTID_CS_FILESIZEERROR
PROTECTED EVENTID_CS_FILESIZEERROR
Definition: CmdSequencerComponentAc.hpp:864
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
Svc::CmdSequencerComponentBase::log_WARNING_LO_CS_NoSequenceActive
void log_WARNING_LO_CS_NoSequenceActive(void)
Definition: CmdSequencerComponentAc.cpp:3676
Svc::CmdSequencerComponentBase::args
PROTECTED U32 Fw::CmdArgBuffer & args
Definition: CmdSequencerComponentAc.hpp:788
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_FileReadError
void log_WARNING_HI_CS_FileReadError(Fw::LogStringArg &fileName)
Definition: CmdSequencerComponentAc.cpp:1933
Os::Queue::send
QueueStatus send(const Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE priority, QueueBlocking block)
send a message
Definition: QueueCommon.cpp:13
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_FileInvalid
void log_WARNING_HI_CS_FileInvalid(Fw::LogStringArg &fileName, FileReadStage stage, I32 error)
Definition: CmdSequencerComponentAc.cpp:2021
Fw::SerializeBufferBase::getBuffLeft
NATIVE_UINT_TYPE getBuffLeft() const
returns how much deserialization buffer is left
Definition: Serializable.cpp:619
Svc::CmdSequencerComponentBase::cmdResponseIn_handler
virtual void cmdResponseIn_handler(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response)=0
Handler for input port cmdResponseIn.
Fw::InputCmdPort::init
void init(void)
initialization function
Definition: CmdPortAc.cpp:38
Svc::CmdSequencerComponentBase::EVENTID_CS_SEQUENCETIMEOUT
PROTECTED EVENTID_CS_SEQUENCETIMEOUT
Definition: CmdSequencerComponentAc.hpp:879
Svc::CmdSequencerComponentBase::get_pingIn_InputPort
Svc::InputPingPort * get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:97
Fw::LogStringArg::toChar
const char * toChar(void) const
Definition: LogString.cpp:38
Fw::InputComPort
Definition: ComPortAc.hpp:28
Svc::CmdSequencerComponentBase::EVENTID_CS_FILEREADERROR
PROTECTED EVENTID_CS_FILEREADERROR
Definition: CmdSequencerComponentAc.hpp:861
Svc::CmdSequencerComponentBase::CS_CANCEL_preMsgHook
virtual void CS_CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerComponentAc.cpp:1299
Svc::OutputPingPort::addCallPort
void addCallPort(InputPingPort *callPort)
Definition: PingPortAc.cpp:93
EightyCharString.hpp
Fw::PassiveComponentBase
Definition: PassiveComponentBase.hpp:10
Fw::OutputLogPort::init
void init(void)
Definition: LogPortAc.cpp:107
Fw::OutputComPort::invoke
void invoke(ComBuffer &data, U32 context)
Definition: ComPortAc.cpp:109
Fw::OutputTimePort::init
void init(void)
Definition: TimePortAc.cpp:89
Fw::ObjBase::init
void init(void)
Object initializer.
Definition: ObjBase.cpp:26
Svc::CmdSequencerComponentBase::EVENTID_CS_TIMECONTEXTMISMATCH
PROTECTED EVENTID_CS_TIMECONTEXTMISMATCH
Definition: CmdSequencerComponentAc.hpp:873
Svc::CmdSequencerComponentBase::CS_START_cmdHandler
virtual void CS_START_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Handler for command CS_START.
Os::Queue::QueueBlocking
QueueBlocking
Definition: Queue.hpp:40
Svc::CmdSequencerComponentBase::CS_STEP_preMsgHook
virtual void CS_STEP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerComponentAc.cpp:1439
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_FileCrcFailure
void log_WARNING_HI_CS_FileCrcFailure(Fw::LogStringArg &fileName, U32 storedCRC, U32 computedCRC)
Definition: CmdSequencerComponentAc.cpp:2463
Fw::QueuedComponentBase::MSG_DISPATCH_OK
@ MSG_DISPATCH_OK
Dispatch was normal.
Definition: QueuedComponentBase.hpp:26
Svc::CmdSequencerComponentBase::CHANNELID_CS_CANCELCOMMANDS
PROTECTED CHANNELID_CS_CANCELCOMMANDS
Channel ID for CS_CancelCommands.
Definition: CmdSequencerComponentAc.hpp:1127
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:77
Os::Queue::receive
QueueStatus receive(Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE &priority, QueueBlocking block)
receive a message
Definition: QueueCommon.cpp:22
Fw::TEXT_LOG_WARNING_LO
@ TEXT_LOG_WARNING_LO
Definition: LogTextPortAc.hpp:29
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_TimeContextMismatch
void log_WARNING_HI_CS_TimeContextMismatch(Fw::LogStringArg &fileName, U8 currTimeBase, U8 seqTimeBase)
Definition: CmdSequencerComponentAc.cpp:3268
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_CmdStepped
void log_ACTIVITY_HI_CS_CmdStepped(Fw::LogStringArg &filename, U32 command)
Definition: CmdSequencerComponentAc.cpp:3949
Svc::InputPingPort
Definition: PingPortAc.hpp:27
Fw::OutputTlmPort::addCallPort
void addCallPort(InputTlmPort *callPort)
Definition: TlmPortAc.cpp:105
Fw::TEXT_LOG_ACTIVITY_LO
@ TEXT_LOG_ACTIVITY_LO
Definition: LogTextPortAc.hpp:32
Fw::ActiveComponentBase::ACTIVE_COMPONENT_EXIT
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Definition: ActiveComponentBase.hpp:27
Svc::CmdSequencerComponentBase::response
PROTECTED U32 Fw::CommandResponse response
Definition: CmdSequencerComponentAc.hpp:850
Svc::CmdSequencerComponentBase::CS_AUTO_cmdHandlerBase
void CS_AUTO_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:1448
Svc::CmdSequencerComponentBase::CS_STEP_cmdHandlerBase
void CS_STEP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:1378
Svc::CmdSequencerComponentBase::CS_START_preMsgHook
virtual void CS_START_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerComponentAc.cpp:1369
Svc::InputSchedPort
Definition: SchedPortAc.hpp:27
Svc::CmdSequencerComponentBase::seqRunIn_preMsgHook
virtual void seqRunIn_preMsgHook(NATIVE_INT_TYPE portNum, Fw::EightyCharString &filename)
Definition: CmdSequencerComponentAc.cpp:4460
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_UnexpectedCompletion
void log_WARNING_HI_CS_UnexpectedCompletion(U32 opcode)
Definition: CmdSequencerComponentAc.cpp:3480
Svc::CmdSequencerComponentBase::SeqMode
SeqMode
Definition: CmdSequencerComponentAc.hpp:903
Svc::CmdSequencerComponentBase::isConnected_timeCaller_OutputPort
bool isConnected_timeCaller_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:942
port1
BYTE port1[Svc::InputPingPort::SERIALIZED_SIZE]
Definition: CmdSequencerComponentAc.cpp:48
Svc::CmdSequencerComponentBase::CS_AUTO_cmdHandler
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Handler for command CS_AUTO.
FwOpcodeType
#define FwOpcodeType
Type representation for a command opcode.
Definition: FpConfig.hpp:62
Svc::CmdSequencerComponentBase::m_seqRunIn_InputPort
Svc::InputCmdSeqInPort m_seqRunIn_InputPort[NUM_SEQRUNIN_INPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1211
Svc::CmdSequencerComponentBase::get_cmdIn_InputPort
Fw::InputCmdPort * get_cmdIn_InputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:111
Fw::QueuedComponentBase::MsgDispatchStatus
MsgDispatchStatus
Definition: QueuedComponentBase.hpp:25
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_CommandError
void log_WARNING_HI_CS_CommandError(Fw::LogStringArg &fileName, U32 recordNumber, U32 opCode, U32 errorStatus)
Definition: CmdSequencerComponentAc.cpp:2799
Svc::CmdSequencerComponentBase::getNum_cmdResponseOut_OutputPorts
NATIVE_INT_TYPE getNum_cmdResponseOut_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:816
Svc::CmdSequencerComponentBase::isConnected_seqDone_OutputPort
bool isConnected_seqDone_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:982
NATIVE_UINT_TYPE
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
Definition: BasicTypes.hpp:30
Fw::OutputTimePort::invoke
void invoke(Fw::Time &time)
Definition: TimePortAc.cpp:103
Fw::OutputTlmPort::invoke
void invoke(FwChanIdType id, Fw::Time &timeTag, TlmBuffer &val)
Definition: TlmPortAc.cpp:115
Svc::CmdSequencerComponentBase::EVENTID_CS_RECORDMISMATCH
PROTECTED EVENTID_CS_RECORDMISMATCH
Definition: CmdSequencerComponentAc.hpp:871
Fw::CmdArgBuffer
Definition: CmdArgBuffer.hpp:22
port2
BYTE port2[Fw::InputCmdResponsePort::SERIALIZED_SIZE]
Definition: CmdSequencerComponentAc.cpp:49
Svc::CmdSequencerComponentBase::getNum_cmdResponseIn_InputPorts
NATIVE_INT_TYPE getNum_cmdResponseIn_InputPorts(void)
Definition: CmdSequencerComponentAc.cpp:848
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_SequenceCanceled
void log_ACTIVITY_HI_CS_SequenceCanceled(Fw::LogStringArg &fileName)
Definition: CmdSequencerComponentAc.cpp:1845
Svc::CmdSequencerComponentBase::cmdResponseIn_handlerBase
void cmdResponseIn_handlerBase(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CommandResponse response)
Definition: CmdSequencerComponentAc.cpp:4256
Fw::OutputCmdResponsePort::init
void init(void)
Definition: CmdResponsePortAc.cpp:101
Svc::CmdSequencerComponentBase::CS_CANCEL_cmdHandlerBase
void CS_CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Definition: CmdSequencerComponentAc.cpp:1238
Fw::COMMAND_INVALID_OPCODE
@ COMMAND_INVALID_OPCODE
Definition: CmdResponsePortAc.hpp:26
Svc::CmdSequencerComponentBase::seqRunIn_handler
virtual void seqRunIn_handler(NATIVE_INT_TYPE portNum, Fw::EightyCharString &filename)=0
Handler for input port seqRunIn.
Svc::CmdSequencerComponentBase::EVENTID_CS_COMMANDCOMPLETE
PROTECTED EVENTID_CS_COMMANDCOMPLETE
Definition: CmdSequencerComponentAc.hpp:867
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Svc::CmdSequencerComponentBase::isConnected_logOut_OutputPort
bool isConnected_logOut_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:972
Fw::OutputCmdResponsePort::invoke
void invoke(FwOpcodeType opCode, U32 cmdSeq, CommandResponse response)
Definition: CmdResponsePortAc.cpp:115
port3
BYTE port3[Svc::InputSchedPort::SERIALIZED_SIZE]
Definition: CmdSequencerComponentAc.cpp:50
Fw::QueuedComponentBase::MSG_DISPATCH_ERROR
@ MSG_DISPATCH_ERROR
Errors dispatching messages.
Definition: QueuedComponentBase.hpp:28
Fw::LOG_ACTIVITY_HI
@ LOG_ACTIVITY_HI
Definition: LogPortAc.hpp:31
Os::Queue::QUEUE_OK
@ QUEUE_OK
message sent/received okay
Definition: Queue.hpp:28
Svc::CmdSequencerComponentBase::OPCODE_CS_CANCEL
PROTECTED OPCODE_CS_CANCEL
Definition: CmdSequencerComponentAc.hpp:652
Svc::InputCmdSeqInPort
Definition: CmdSeqInPortAc.hpp:28
Svc::CmdSequencerComponentBase::cmdSeq
PROTECTED U32 cmdSeq
Definition: CmdSequencerComponentAc.hpp:669
Svc::CmdSequencerComponentBase::set_comCmdOut_OutputPort
void set_comCmdOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Definition: CmdSequencerComponentAc.cpp:188
Fw::LogStringArg::setMaxSerialize
void setMaxSerialize(NATIVE_UINT_TYPE size)
Definition: LogString.cpp:106
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:292
Svc::CmdSequencerComponentBase::isConnected_comCmdOut_OutputPort
bool isConnected_comCmdOut_OutputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:952
Svc::CmdSequencerComponentBase::EVENTID_CS_TIMEBASEMISMATCH
PROTECTED EVENTID_CS_TIMEBASEMISMATCH
Definition: CmdSequencerComponentAc.hpp:872
Svc::CmdSequencerComponentBase::EVENTID_CS_CMDSTEPPED
PROTECTED EVENTID_CS_CMDSTEPPED
Definition: CmdSequencerComponentAc.hpp:880
Svc::CmdSequencerComponentBase::fileName
PROTECTED U32 const Fw::CmdStringArg & fileName
Definition: CmdSequencerComponentAc.hpp:671
Svc::CmdSequencerComponentBase::CHANNELID_CS_COMMANDSEXECUTED
PROTECTED CHANNELID_CS_COMMANDSEXECUTED
Channel ID for CS_CommandsExecuted.
Definition: CmdSequencerComponentAc.hpp:1129
Fw::OutputTlmPort::init
void init(void)
Definition: TlmPortAc.cpp:101
Fw::InputCmdPort
Definition: CmdPortAc.hpp:28
Svc::CmdSequencerComponentBase::m_p_seqRunIn_in
static void m_p_seqRunIn_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, Fw::EightyCharString &filename)
Definition: CmdSequencerComponentAc.cpp:4186
FpConfig.hpp
ISF configuration file.
Fw::InputPortBase::setPortNum
void setPortNum(NATIVE_INT_TYPE portNum)
Definition: InputPortBase.cpp:25
Fw::OutputLogPort::addCallPort
void addCallPort(InputLogPort *callPort)
Definition: LogPortAc.cpp:111
Svc::CmdSequencerComponentBase::get_cmdResponseIn_InputPort
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(NATIVE_INT_TYPE portNum)
Definition: CmdSequencerComponentAc.cpp:104
Svc::CmdSequencerComponentBase::EVENTID_CS_INVALIDMODE
PROTECTED EVENTID_CS_INVALIDMODE
Definition: CmdSequencerComponentAc.hpp:870
Fw::QueuedComponentBase::MSG_DISPATCH_EXIT
@ MSG_DISPATCH_EXIT
A message was sent requesting an exit of the loop.
Definition: QueuedComponentBase.hpp:29
Svc::CmdSequencerComponentBase::getNum_timeCaller_OutputPorts
NATIVE_INT_TYPE getNum_timeCaller_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:824
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_CmdStarted
void log_ACTIVITY_HI_CS_CmdStarted(Fw::LogStringArg &filename)
Definition: CmdSequencerComponentAc.cpp:4055
Svc::InputCmdSeqInPort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: CmdSeqInPortAc.cpp:42
Svc::CmdSequencerComponentBase::getNum_seqRunIn_InputPorts
NATIVE_INT_TYPE getNum_seqRunIn_InputPorts(void)
Definition: CmdSequencerComponentAc.cpp:872
CmdSequencerComponentAc.hpp
Svc
Definition: ActiveLoggerComponentAc.cpp:22
Svc::CmdSequencerComponentBase::m_pingOut_OutputPort
Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1247
Svc::CmdSequencerComponentBase::schedIn_handlerBase
void schedIn_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Definition: CmdSequencerComponentAc.cpp:4323
Svc::CmdSequencerComponentBase::CS_MANUAL_preMsgHook
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerComponentAc.cpp:1579
Svc::InputCmdSeqInPort::init
void init(void)
initialization function
Definition: CmdSeqInPortAc.cpp:38
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_TimeBaseMismatch
void log_WARNING_HI_CS_TimeBaseMismatch(Fw::LogStringArg &fileName, U16 time_base, U16 seq_time_base)
Definition: CmdSequencerComponentAc.cpp:3144
Os::Queue::QUEUE_NONBLOCKING
@ QUEUE_NONBLOCKING
Queue receive always returns even if there is no message.
Definition: Queue.hpp:42
Svc::CmdSequencerComponentBase::EVENTID_CS_SEQUENCECOMPLETE
PROTECTED EVENTID_CS_SEQUENCECOMPLETE
Definition: CmdSequencerComponentAc.hpp:868
Fw::InputCmdResponsePort
Definition: CmdResponsePortAc.hpp:37
Svc::CmdSequencerComponentBase::EVENTID_CS_PORTSEQUENCESTARTED
PROTECTED EVENTID_CS_PORTSEQUENCESTARTED
Definition: CmdSequencerComponentAc.hpp:874
Svc::CmdSequencerComponentBase::EVENTID_CS_UNEXPECTEDCOMPLETION
PROTECTED EVENTID_CS_UNEXPECTEDCOMPLETION
Definition: CmdSequencerComponentAc.hpp:875
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_RecordMismatch
void log_WARNING_HI_CS_RecordMismatch(Fw::LogStringArg &fileName, U32 header_records, U32 extra_bytes)
Definition: CmdSequencerComponentAc.cpp:3020
Fw::InputLogPort
Definition: LogPortAc.hpp:40
Svc::CmdSequencerComponentBase::m_logOut_OutputPort
Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1251
Svc::CmdSequencerComponentBase::OPCODE_CS_MANUAL
PROTECTED OPCODE_CS_MANUAL
Definition: CmdSequencerComponentAc.hpp:656
Svc::CmdSequencerComponentBase::getNum_pingOut_OutputPorts
NATIVE_INT_TYPE getNum_pingOut_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:840
Svc::CmdSequencerComponentBase::EVENTID_CS_MODESWITCHED
PROTECTED EVENTID_CS_MODESWITCHED
Definition: CmdSequencerComponentAc.hpp:876
Svc::CmdSequencerComponentBase::getNum_comCmdOut_OutputPorts
NATIVE_INT_TYPE getNum_comCmdOut_OutputPorts(void)
Definition: CmdSequencerComponentAc.cpp:832
Svc::CmdSequencerComponentBase::schedIn_handler
virtual void schedIn_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port schedIn.
Svc::CmdSequencerComponentBase::tlmWrite_CS_CommandsExecuted
void tlmWrite_CS_CommandsExecuted(U32 arg)
Definition: CmdSequencerComponentAc.cpp:1679
Svc::CmdSequencerComponentBase::set_timeCaller_OutputPort
void set_timeCaller_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Definition: CmdSequencerComponentAc.cpp:178
port4
BYTE port4[Svc::InputCmdSeqInPort::SERIALIZED_SIZE]
Definition: CmdSequencerComponentAc.cpp:51
Svc::CmdSequencerComponentBase::getNum_schedIn_InputPorts
NATIVE_INT_TYPE getNum_schedIn_InputPorts(void)
Definition: CmdSequencerComponentAc.cpp:864
Svc::CmdSequencerComponentBase::m_p_schedIn_in
static void m_p_schedIn_in(Fw::PassiveComponentBase *callComp, NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Definition: CmdSequencerComponentAc.cpp:4173
FwEventIdType
#define FwEventIdType
Type representation for a event id.
Definition: FpConfig.hpp:70
Fw::LOG_ACTIVITY_LO
@ LOG_ACTIVITY_LO
Definition: LogPortAc.hpp:32
Svc::CmdSequencerComponentBase::CS_VALIDATE_preMsgHook
virtual void CS_VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Definition: CmdSequencerComponentAc.cpp:1229
Fw::OutputComPort::addCallPort
void addCallPort(InputComPort *callPort)
Definition: ComPortAc.cpp:99
Svc::CmdSequencerComponentBase::CHANNELID_CS_ERRORS
PROTECTED CHANNELID_CS_ERRORS
Channel ID for CS_Errors.
Definition: CmdSequencerComponentAc.hpp:1128
Svc::CmdSequencerComponentBase::m_cmdResponseOut_OutputPort
Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1235
Svc::CmdSequencerComponentBase::m_schedIn_InputPort
Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1207
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Svc::CmdSequencerComponentBase::set_seqDone_OutputPort
void set_seqDone_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Definition: CmdSequencerComponentAc.cpp:218
AssertArg
#define AssertArg
Definition: FpConfig.hpp:51
Fw::ComBuffer
Definition: ComBuffer.hpp:21
Svc::CmdSequencerComponentBase::m_cmdResponseIn_InputPort
Fw::InputCmdResponsePort m_cmdResponseIn_InputPort[NUM_CMDRESPONSEIN_INPUT_PORTS]
Definition: CmdSequencerComponentAc.hpp:1199
Svc::CmdSequencerComponentBase::set_cmdRegOut_OutputPort
void set_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
Definition: CmdSequencerComponentAc.cpp:136
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_FileNotFound
void log_WARNING_HI_CS_FileNotFound(Fw::LogStringArg &fileName)
Definition: CmdSequencerComponentAc.cpp:2375
Fw::QueuedComponentBase::createQueue
Os::Queue::QueueStatus createQueue(NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
Definition: QueuedComponentBase.cpp:29
TB_NONE
@ TB_NONE
No time base has been established.
Definition: FpConfig.hpp:324
Svc::CmdSequencerComponentBase::key
PROTECTED U32 key
Definition: CmdSequencerComponentAc.hpp:306
Fw::InputCmdResponsePort::addCallComp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
call to register a component
Definition: CmdResponsePortAc.cpp:42
Svc::CmdSequencerComponentBase::EVENTID_CS_FILEINVALID
PROTECTED EVENTID_CS_FILEINVALID
Definition: CmdSequencerComponentAc.hpp:862
Svc::CmdSequencerComponentBase::CS_MANUAL_cmdHandler
virtual void CS_MANUAL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Handler for command CS_MANUAL.
Fw::InputCmdPort::SERIALIZED_SIZE
@ SERIALIZED_SIZE
serialized size of port arguments
Definition: CmdPortAc.hpp:31
Fw
Definition: BufferGetPortAc.cpp:6
Svc::CmdSequencerComponentBase::log_WARNING_HI_CS_InvalidMode
void log_WARNING_HI_CS_InvalidMode(void)
Definition: CmdSequencerComponentAc.cpp:2941
Svc::CmdSequencerComponentBase::EVENTID_CS_RECORDINVALID
PROTECTED EVENTID_CS_RECORDINVALID
Definition: CmdSequencerComponentAc.hpp:863
Fw::OutputTimePort::addCallPort
void addCallPort(InputTimePort *callPort)
Definition: TimePortAc.cpp:93
FW_LOG_TEXT_BUFFER_SIZE
#define FW_LOG_TEXT_BUFFER_SIZE
Max size of string for text log message.
Definition: FpConfig.hpp:291
Os::Queue::QUEUE_BLOCKING
@ QUEUE_BLOCKING
Queue receive blocks until a message arrives.
Definition: Queue.hpp:41
Fw::InputLogTextPort
Definition: LogTextPortAc.hpp:40
cmdPort
BYTE cmdPort[Fw::InputCmdPort::SERIALIZED_SIZE]
Definition: CmdSequencerComponentAc.cpp:52
Svc::CmdSequencerComponentBase::log_ACTIVITY_HI_CS_SequenceValid
void log_ACTIVITY_HI_CS_SequenceValid(Fw::LogStringArg &filename)
Definition: CmdSequencerComponentAc.cpp:3755