F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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