10 #if FW_ENABLE_TEXT_LOGGING
19 CMDRESPONSEIN_CMDRESPONSE,
22 SEQCANCELIN_CMDSEQCANCEL,
46 class ComponentIpcSerializableBuffer :
61 return sizeof(m_buff);
68 const U8* getBuffAddr()
const {
74 U8 m_buff[SERIALIZATION_SIZE];
98 this->m_cmdIn_InputPort[port].
init();
103 this->m_cmdIn_InputPort[port].
setPortNum(port);
105 #if FW_OBJECT_NAMES == 1
109 this->m_objName.toChar(),
112 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
122 this->m_cmdResponseIn_InputPort[port].
init();
127 this->m_cmdResponseIn_InputPort[port].
setPortNum(port);
129 #if FW_OBJECT_NAMES == 1
133 this->m_objName.toChar(),
136 this->m_cmdResponseIn_InputPort[port].setObjName(portName.
toChar());
146 this->m_pingIn_InputPort[port].
init();
151 this->m_pingIn_InputPort[port].
setPortNum(port);
153 #if FW_OBJECT_NAMES == 1
157 this->m_objName.toChar(),
160 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
170 this->m_schedIn_InputPort[port].
init();
175 this->m_schedIn_InputPort[port].
setPortNum(port);
177 #if FW_OBJECT_NAMES == 1
181 this->m_objName.toChar(),
184 this->m_schedIn_InputPort[port].setObjName(portName.
toChar());
194 this->m_seqCancelIn_InputPort[port].
init();
199 this->m_seqCancelIn_InputPort[port].
setPortNum(port);
201 #if FW_OBJECT_NAMES == 1
205 this->m_objName.toChar(),
208 this->m_seqCancelIn_InputPort[port].setObjName(portName.
toChar());
218 this->m_seqRunIn_InputPort[port].
init();
223 this->m_seqRunIn_InputPort[port].
setPortNum(port);
225 #if FW_OBJECT_NAMES == 1
229 this->m_objName.toChar(),
232 this->m_seqRunIn_InputPort[port].setObjName(portName.
toChar());
236 #if FW_ENABLE_TEXT_LOGGING == 1
240 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
243 this->m_LogText_OutputPort[port].
init();
245 #if FW_OBJECT_NAMES == 1
249 this->m_objName.toChar(),
252 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
263 this->m_cmdRegOut_OutputPort[port].
init();
265 #if FW_OBJECT_NAMES == 1
269 this->m_objName.toChar(),
272 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
282 this->m_cmdResponseOut_OutputPort[port].
init();
284 #if FW_OBJECT_NAMES == 1
288 this->m_objName.toChar(),
291 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
301 this->m_logOut_OutputPort[port].
init();
303 #if FW_OBJECT_NAMES == 1
307 this->m_objName.toChar(),
310 this->m_logOut_OutputPort[port].setObjName(portName.
toChar());
320 this->m_timeCaller_OutputPort[port].
init();
322 #if FW_OBJECT_NAMES == 1
326 this->m_objName.toChar(),
329 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
339 this->m_tlmOut_OutputPort[port].
init();
341 #if FW_OBJECT_NAMES == 1
345 this->m_objName.toChar(),
348 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
358 this->m_comCmdOut_OutputPort[port].
init();
360 #if FW_OBJECT_NAMES == 1
364 this->m_objName.toChar(),
367 this->m_comCmdOut_OutputPort[port].setObjName(portName.
toChar());
377 this->m_pingOut_OutputPort[port].
init();
379 #if FW_OBJECT_NAMES == 1
383 this->m_objName.toChar(),
386 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
396 this->m_seqDone_OutputPort[port].
init();
398 #if FW_OBJECT_NAMES == 1
402 this->m_objName.toChar(),
405 this->m_seqDone_OutputPort[port].setObjName(portName.
toChar());
415 this->m_seqStartOut_OutputPort[port].
init();
417 #if FW_OBJECT_NAMES == 1
421 this->m_objName.toChar(),
424 this->m_seqStartOut_OutputPort[port].setObjName(portName.
toChar());
430 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
450 return &this->m_cmdIn_InputPort[portNum];
465 return &this->m_cmdResponseIn_InputPort[portNum];
476 return &this->m_pingIn_InputPort[portNum];
487 return &this->m_schedIn_InputPort[portNum];
498 return &this->m_seqCancelIn_InputPort[portNum];
509 return &this->m_seqRunIn_InputPort[portNum];
516 #if FW_ENABLE_TEXT_LOGGING == 1
518 void CmdSequencerComponentBase ::
519 set_LogText_OutputPort(
525 portNum < this->getNum_LogText_OutputPorts(),
529 this->m_LogText_OutputPort[portNum].addCallPort(port);
545 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
559 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
573 this->m_logOut_OutputPort[portNum].
addCallPort(port);
587 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
601 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
619 this->m_comCmdOut_OutputPort[portNum].
addCallPort(port);
633 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
647 this->m_seqDone_OutputPort[portNum].
addCallPort(port);
661 this->m_seqStartOut_OutputPort[portNum].
addCallPort(port);
664 #if FW_PORT_SERIALIZATION
670 #if FW_ENABLE_TEXT_LOGGING == 1
672 void CmdSequencerComponentBase ::
673 set_LogText_OutputPort(
675 Fw::InputSerializePort* port
679 portNum < this->getNum_LogText_OutputPorts(),
683 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
691 Fw::InputSerializePort* port
699 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
705 Fw::InputSerializePort* port
713 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
719 Fw::InputSerializePort* port
727 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
733 Fw::InputSerializePort* port
741 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
747 Fw::InputSerializePort* port
755 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
760 #if FW_PORT_SERIALIZATION
769 Fw::InputSerializePort* port
777 this->m_comCmdOut_OutputPort[portNum].registerSerialPort(port);
783 Fw::InputSerializePort* port
791 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
797 Fw::InputSerializePort* port
805 this->m_seqDone_OutputPort[portNum].registerSerialPort(port);
811 Fw::InputSerializePort* port
819 this->m_seqStartOut_OutputPort[portNum].registerSerialPort(port);
831 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
833 this->m_cmdRegOut_OutputPort[0].
invoke(
837 this->m_cmdRegOut_OutputPort[0].
invoke(
841 this->m_cmdRegOut_OutputPort[0].
invoke(
845 this->m_cmdRegOut_OutputPort[0].
invoke(
849 this->m_cmdRegOut_OutputPort[0].
invoke(
853 this->m_cmdRegOut_OutputPort[0].
invoke(
857 this->m_cmdRegOut_OutputPort[0].
invoke(
861 this->m_cmdRegOut_OutputPort[0].
invoke(
872 Fw::ActiveComponentBase(compName)
931 #if FW_ENABLE_TEXT_LOGGING == 1
934 getNum_LogText_OutputPorts()
const
1003 #if FW_ENABLE_TEXT_LOGGING == 1
1005 bool CmdSequencerComponentBase ::
1006 isConnected_LogText_OutputPort(
FwIndexType portNum)
1009 portNum < this->getNum_LogText_OutputPorts(),
1013 return this->m_LogText_OutputPort[portNum].isConnected();
1026 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
1037 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
1048 return this->m_logOut_OutputPort[portNum].
isConnected();
1059 return this->m_timeCaller_OutputPort[portNum].
isConnected();
1070 return this->m_tlmOut_OutputPort[portNum].
isConnected();
1085 return this->m_comCmdOut_OutputPort[portNum].
isConnected();
1096 return this->m_pingOut_OutputPort[portNum].
isConnected();
1107 return this->m_seqDone_OutputPort[portNum].
isConnected();
1118 return this->m_seqStartOut_OutputPort[portNum].
isConnected();
1148 ComponentIpcSerializableBuffer msg;
1152 _status = msg.serialize(
1161 _status = msg.serialize(portNum);
1168 _status = msg.serialize(opCode);
1175 _status = msg.serialize(cmdSeq);
1182 _status = msg.serialize(response);
1215 ComponentIpcSerializableBuffer msg;
1219 _status = msg.serialize(
1228 _status = msg.serialize(portNum);
1235 _status = msg.serialize(key);
1268 ComponentIpcSerializableBuffer msg;
1272 _status = msg.serialize(
1281 _status = msg.serialize(portNum);
1288 _status = msg.serialize(context);
1315 ComponentIpcSerializableBuffer msg;
1319 _status = msg.serialize(
1328 _status = msg.serialize(portNum);
1361 ComponentIpcSerializableBuffer msg;
1365 _status = msg.serialize(
1374 _status = msg.serialize(portNum);
1464 this->m_comCmdOut_OutputPort[portNum].
invoke(
1480 this->m_pingOut_OutputPort[portNum].
invoke(
1497 this->m_seqDone_OutputPort[portNum].
invoke(
1514 this->m_seqStartOut_OutputPort[portNum].
invoke(
1530 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1531 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1552 ComponentIpcSerializableBuffer msg;
1565 _status = msg.serialize(port);
1571 _status = msg.serialize(opCode);
1577 _status = msg.serialize(cmdSeq);
1583 _status = msg.serialize(args);
1611 ComponentIpcSerializableBuffer msg;
1615 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_CS_VALIDATE));
1624 _status = msg.serialize(port);
1630 _status = msg.serialize(opCode);
1636 _status = msg.serialize(cmdSeq);
1642 _status = msg.serialize(args);
1670 ComponentIpcSerializableBuffer msg;
1683 _status = msg.serialize(port);
1689 _status = msg.serialize(opCode);
1695 _status = msg.serialize(cmdSeq);
1701 _status = msg.serialize(args);
1729 ComponentIpcSerializableBuffer msg;
1742 _status = msg.serialize(port);
1748 _status = msg.serialize(opCode);
1754 _status = msg.serialize(cmdSeq);
1760 _status = msg.serialize(args);
1788 ComponentIpcSerializableBuffer msg;
1801 _status = msg.serialize(port);
1807 _status = msg.serialize(opCode);
1813 _status = msg.serialize(cmdSeq);
1819 _status = msg.serialize(args);
1847 ComponentIpcSerializableBuffer msg;
1860 _status = msg.serialize(port);
1866 _status = msg.serialize(opCode);
1872 _status = msg.serialize(cmdSeq);
1878 _status = msg.serialize(args);
1906 ComponentIpcSerializableBuffer msg;
1919 _status = msg.serialize(port);
1925 _status = msg.serialize(opCode);
1931 _status = msg.serialize(cmdSeq);
1937 _status = msg.serialize(args);
1965 ComponentIpcSerializableBuffer msg;
1969 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_CS_JOIN_WAIT));
1978 _status = msg.serialize(port);
1984 _status = msg.serialize(opCode);
1990 _status = msg.serialize(cmdSeq);
1996 _status = msg.serialize(args);
2117 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2118 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2126 if (this->m_logOut_OutputPort[0].isConnected()) {
2130 #if FW_AMPCS_COMPATIBLE
2145 this->m_logOut_OutputPort[0].
invoke(
2154 #if FW_ENABLE_TEXT_LOGGING
2155 if (this->m_LogText_OutputPort[0].isConnected()) {
2156 #if FW_OBJECT_NAMES == 1
2157 const char* _formatString =
2158 "(%s) %s: Loaded sequence %s";
2160 const char* _formatString =
2161 "%s: Loaded sequence %s";
2168 this->m_objName.toChar(),
2170 "CS_SequenceLoaded ",
2174 this->m_LogText_OutputPort[0].invoke(
2189 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2190 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2198 if (this->m_logOut_OutputPort[0].isConnected()) {
2202 #if FW_AMPCS_COMPATIBLE
2217 this->m_logOut_OutputPort[0].
invoke(
2226 #if FW_ENABLE_TEXT_LOGGING
2227 if (this->m_LogText_OutputPort[0].isConnected()) {
2228 #if FW_OBJECT_NAMES == 1
2229 const char* _formatString =
2230 "(%s) %s: Sequence file %s canceled";
2232 const char* _formatString =
2233 "%s: Sequence file %s canceled";
2240 this->m_objName.toChar(),
2242 "CS_SequenceCanceled ",
2246 this->m_LogText_OutputPort[0].invoke(
2261 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2262 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2270 if (this->m_logOut_OutputPort[0].isConnected()) {
2274 #if FW_AMPCS_COMPATIBLE
2289 this->m_logOut_OutputPort[0].
invoke(
2298 #if FW_ENABLE_TEXT_LOGGING
2299 if (this->m_LogText_OutputPort[0].isConnected()) {
2300 #if FW_OBJECT_NAMES == 1
2301 const char* _formatString =
2302 "(%s) %s: Error reading sequence file %s";
2304 const char* _formatString =
2305 "%s: Error reading sequence file %s";
2312 this->m_objName.toChar(),
2314 "CS_FileReadError ",
2318 this->m_LogText_OutputPort[0].invoke(
2337 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2338 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2346 if (this->m_logOut_OutputPort[0].isConnected()) {
2350 #if FW_AMPCS_COMPATIBLE
2365 #if FW_AMPCS_COMPATIBLE
2381 #if FW_AMPCS_COMPATIBLE
2384 static_cast<U8>(
sizeof(I32))
2397 this->m_logOut_OutputPort[0].
invoke(
2406 #if FW_ENABLE_TEXT_LOGGING
2407 if (this->m_LogText_OutputPort[0].isConnected()) {
2408 #if FW_OBJECT_NAMES == 1
2409 const char* _formatString =
2410 "(%s) %s: Sequence file %s invalid. Stage: %s Error: %" PRIi32
"";
2412 const char* _formatString =
2413 "%s: Sequence file %s invalid. Stage: %s Error: %" PRIi32
"";
2417 stage.toString(stageStr);
2423 this->m_objName.toChar(),
2431 this->m_LogText_OutputPort[0].invoke(
2450 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2451 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2459 if (this->m_logOut_OutputPort[0].isConnected()) {
2463 #if FW_AMPCS_COMPATIBLE
2478 #if FW_AMPCS_COMPATIBLE
2481 static_cast<U8>(
sizeof(U32))
2488 _status = _logBuff.
serialize(recordNumber);
2494 #if FW_AMPCS_COMPATIBLE
2497 static_cast<U8>(
sizeof(I32))
2510 this->m_logOut_OutputPort[0].
invoke(
2519 #if FW_ENABLE_TEXT_LOGGING
2520 if (this->m_LogText_OutputPort[0].isConnected()) {
2521 #if FW_OBJECT_NAMES == 1
2522 const char* _formatString =
2523 "(%s) %s: Sequence file %s: Record %" PRIu32
" invalid. Err: %" PRIi32
"";
2525 const char* _formatString =
2526 "%s: Sequence file %s: Record %" PRIu32
" invalid. Err: %" PRIi32
"";
2533 this->m_objName.toChar(),
2535 "CS_RecordInvalid ",
2541 this->m_LogText_OutputPort[0].invoke(
2559 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2560 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2568 if (this->m_logOut_OutputPort[0].isConnected()) {
2572 #if FW_AMPCS_COMPATIBLE
2587 #if FW_AMPCS_COMPATIBLE
2590 static_cast<U8>(
sizeof(U32))
2603 this->m_logOut_OutputPort[0].
invoke(
2612 #if FW_ENABLE_TEXT_LOGGING
2613 if (this->m_LogText_OutputPort[0].isConnected()) {
2614 #if FW_OBJECT_NAMES == 1
2615 const char* _formatString =
2616 "(%s) %s: Sequence file %s too large. Size: %" PRIu32
"";
2618 const char* _formatString =
2619 "%s: Sequence file %s too large. Size: %" PRIu32
"";
2626 this->m_objName.toChar(),
2628 "CS_FileSizeError ",
2633 this->m_LogText_OutputPort[0].invoke(
2648 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2649 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2657 if (this->m_logOut_OutputPort[0].isConnected()) {
2661 #if FW_AMPCS_COMPATIBLE
2676 this->m_logOut_OutputPort[0].
invoke(
2685 #if FW_ENABLE_TEXT_LOGGING
2686 if (this->m_LogText_OutputPort[0].isConnected()) {
2687 #if FW_OBJECT_NAMES == 1
2688 const char* _formatString =
2689 "(%s) %s: Sequence file %s not found.";
2691 const char* _formatString =
2692 "%s: Sequence file %s not found.";
2699 this->m_objName.toChar(),
2705 this->m_LogText_OutputPort[0].invoke(
2724 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2725 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2733 if (this->m_logOut_OutputPort[0].isConnected()) {
2737 #if FW_AMPCS_COMPATIBLE
2752 #if FW_AMPCS_COMPATIBLE
2755 static_cast<U8>(
sizeof(U32))
2762 _status = _logBuff.
serialize(storedCRC);
2768 #if FW_AMPCS_COMPATIBLE
2771 static_cast<U8>(
sizeof(U32))
2778 _status = _logBuff.
serialize(computedCRC);
2784 this->m_logOut_OutputPort[0].
invoke(
2793 #if FW_ENABLE_TEXT_LOGGING
2794 if (this->m_LogText_OutputPort[0].isConnected()) {
2795 #if FW_OBJECT_NAMES == 1
2796 const char* _formatString =
2797 "(%s) %s: Sequence file %s had invalid CRC. Stored 0x%" PRIx32
", Computed 0x%" PRIx32
".";
2799 const char* _formatString =
2800 "%s: Sequence file %s had invalid CRC. Stored 0x%" PRIx32
", Computed 0x%" PRIx32
".";
2807 this->m_objName.toChar(),
2809 "CS_FileCrcFailure ",
2815 this->m_LogText_OutputPort[0].invoke(
2834 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2835 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2843 if (this->m_logOut_OutputPort[0].isConnected()) {
2847 #if FW_AMPCS_COMPATIBLE
2862 #if FW_AMPCS_COMPATIBLE
2865 static_cast<U8>(
sizeof(U32))
2872 _status = _logBuff.
serialize(recordNumber);
2878 #if FW_AMPCS_COMPATIBLE
2881 static_cast<U8>(
sizeof(U32))
2894 this->m_logOut_OutputPort[0].
invoke(
2903 #if FW_ENABLE_TEXT_LOGGING
2904 if (this->m_LogText_OutputPort[0].isConnected()) {
2905 #if FW_OBJECT_NAMES == 1
2906 const char* _formatString =
2907 "(%s) %s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") complete";
2909 const char* _formatString =
2910 "%s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") complete";
2917 this->m_objName.toChar(),
2919 "CS_CommandComplete ",
2925 this->m_LogText_OutputPort[0].invoke(
2940 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2941 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2949 if (this->m_logOut_OutputPort[0].isConnected()) {
2953 #if FW_AMPCS_COMPATIBLE
2968 this->m_logOut_OutputPort[0].
invoke(
2977 #if FW_ENABLE_TEXT_LOGGING
2978 if (this->m_LogText_OutputPort[0].isConnected()) {
2979 #if FW_OBJECT_NAMES == 1
2980 const char* _formatString =
2981 "(%s) %s: Sequence file %s complete";
2983 const char* _formatString =
2984 "%s: Sequence file %s complete";
2991 this->m_objName.toChar(),
2993 "CS_SequenceComplete ",
2997 this->m_LogText_OutputPort[0].invoke(
3017 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3018 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3026 if (this->m_logOut_OutputPort[0].isConnected()) {
3030 #if FW_AMPCS_COMPATIBLE
3045 #if FW_AMPCS_COMPATIBLE
3048 static_cast<U8>(
sizeof(U32))
3055 _status = _logBuff.
serialize(recordNumber);
3061 #if FW_AMPCS_COMPATIBLE
3064 static_cast<U8>(
sizeof(U32))
3077 #if FW_AMPCS_COMPATIBLE
3080 static_cast<U8>(
sizeof(U32))
3087 _status = _logBuff.
serialize(errorStatus);
3093 this->m_logOut_OutputPort[0].
invoke(
3102 #if FW_ENABLE_TEXT_LOGGING
3103 if (this->m_LogText_OutputPort[0].isConnected()) {
3104 #if FW_OBJECT_NAMES == 1
3105 const char* _formatString =
3106 "(%s) %s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") completed with error %" PRIu32
"";
3108 const char* _formatString =
3109 "%s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") completed with error %" PRIu32
"";
3116 this->m_objName.toChar(),
3125 this->m_LogText_OutputPort[0].invoke(
3140 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3141 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3149 if (this->m_logOut_OutputPort[0].isConnected()) {
3152 #if FW_AMPCS_COMPATIBLE
3162 this->m_logOut_OutputPort[0].
invoke(
3171 #if FW_ENABLE_TEXT_LOGGING
3172 if (this->m_LogText_OutputPort[0].isConnected()) {
3173 #if FW_OBJECT_NAMES == 1
3174 const char* _formatString =
3175 "(%s) %s: Invalid mode";
3177 const char* _formatString =
3185 this->m_objName.toChar(),
3190 this->m_LogText_OutputPort[0].invoke(
3209 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3210 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3218 if (this->m_logOut_OutputPort[0].isConnected()) {
3222 #if FW_AMPCS_COMPATIBLE
3237 #if FW_AMPCS_COMPATIBLE
3240 static_cast<U8>(
sizeof(U32))
3247 _status = _logBuff.
serialize(header_records);
3253 #if FW_AMPCS_COMPATIBLE
3256 static_cast<U8>(
sizeof(U32))
3263 _status = _logBuff.
serialize(extra_bytes);
3269 this->m_logOut_OutputPort[0].
invoke(
3278 #if FW_ENABLE_TEXT_LOGGING
3279 if (this->m_LogText_OutputPort[0].isConnected()) {
3280 #if FW_OBJECT_NAMES == 1
3281 const char* _formatString =
3282 "(%s) %s: Sequence file %s header records mismatch: %" PRIu32
" in header, found %" PRIu32
" extra bytes.";
3284 const char* _formatString =
3285 "%s: Sequence file %s header records mismatch: %" PRIu32
" in header, found %" PRIu32
" extra bytes.";
3292 this->m_objName.toChar(),
3294 "CS_RecordMismatch ",
3300 this->m_LogText_OutputPort[0].invoke(
3319 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3320 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3328 if (this->m_logOut_OutputPort[0].isConnected()) {
3332 #if FW_AMPCS_COMPATIBLE
3347 #if FW_AMPCS_COMPATIBLE
3350 static_cast<U8>(
sizeof(U16))
3357 _status = _logBuff.
serialize(time_base);
3363 #if FW_AMPCS_COMPATIBLE
3366 static_cast<U8>(
sizeof(U16))
3373 _status = _logBuff.
serialize(seq_time_base);
3379 this->m_logOut_OutputPort[0].
invoke(
3388 #if FW_ENABLE_TEXT_LOGGING
3389 if (this->m_LogText_OutputPort[0].isConnected()) {
3390 #if FW_OBJECT_NAMES == 1
3391 const char* _formatString =
3392 "(%s) %s: Sequence file %s: Current time base doesn't match sequence time: base: %" PRIu16
" seq: %" PRIu16
"";
3394 const char* _formatString =
3395 "%s: Sequence file %s: Current time base doesn't match sequence time: base: %" PRIu16
" seq: %" PRIu16
"";
3402 this->m_objName.toChar(),
3404 "CS_TimeBaseMismatch ",
3410 this->m_LogText_OutputPort[0].invoke(
3429 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3430 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3438 if (this->m_logOut_OutputPort[0].isConnected()) {
3442 #if FW_AMPCS_COMPATIBLE
3457 #if FW_AMPCS_COMPATIBLE
3460 static_cast<U8>(
sizeof(
U8))
3467 _status = _logBuff.
serialize(currTimeBase);
3473 #if FW_AMPCS_COMPATIBLE
3476 static_cast<U8>(
sizeof(
U8))
3483 _status = _logBuff.
serialize(seqTimeBase);
3489 this->m_logOut_OutputPort[0].
invoke(
3498 #if FW_ENABLE_TEXT_LOGGING
3499 if (this->m_LogText_OutputPort[0].isConnected()) {
3500 #if FW_OBJECT_NAMES == 1
3501 const char* _formatString =
3502 "(%s) %s: Sequence file %s: Current time context doesn't match sequence context: base: %" PRIu8
" seq: %" PRIu8
"";
3504 const char* _formatString =
3505 "%s: Sequence file %s: Current time context doesn't match sequence context: base: %" PRIu8
" seq: %" PRIu8
"";
3512 this->m_objName.toChar(),
3514 "CS_TimeContextMismatch ",
3520 this->m_LogText_OutputPort[0].invoke(
3535 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3536 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3544 if (this->m_logOut_OutputPort[0].isConnected()) {
3548 #if FW_AMPCS_COMPATIBLE
3563 this->m_logOut_OutputPort[0].
invoke(
3572 #if FW_ENABLE_TEXT_LOGGING
3573 if (this->m_LogText_OutputPort[0].isConnected()) {
3574 #if FW_OBJECT_NAMES == 1
3575 const char* _formatString =
3576 "(%s) %s: Local request for sequence %s started.";
3578 const char* _formatString =
3579 "%s: Local request for sequence %s started.";
3586 this->m_objName.toChar(),
3588 "CS_PortSequenceStarted ",
3592 this->m_LogText_OutputPort[0].invoke(
3607 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3608 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3616 if (this->m_logOut_OutputPort[0].isConnected()) {
3620 #if FW_AMPCS_COMPATIBLE
3629 #if FW_AMPCS_COMPATIBLE
3632 static_cast<U8>(
sizeof(U32))
3645 this->m_logOut_OutputPort[0].
invoke(
3654 #if FW_ENABLE_TEXT_LOGGING
3655 if (this->m_LogText_OutputPort[0].isConnected()) {
3656 #if FW_OBJECT_NAMES == 1
3657 const char* _formatString =
3658 "(%s) %s: Command complete status received while no sequences active. Opcode: %" PRIu32
"";
3660 const char* _formatString =
3661 "%s: Command complete status received while no sequences active. Opcode: %" PRIu32
"";
3668 this->m_objName.toChar(),
3670 "CS_UnexpectedCompletion ",
3674 this->m_LogText_OutputPort[0].invoke(
3689 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3690 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3698 if (this->m_logOut_OutputPort[0].isConnected()) {
3702 #if FW_AMPCS_COMPATIBLE
3711 #if FW_AMPCS_COMPATIBLE
3727 this->m_logOut_OutputPort[0].
invoke(
3736 #if FW_ENABLE_TEXT_LOGGING
3737 if (this->m_LogText_OutputPort[0].isConnected()) {
3738 #if FW_OBJECT_NAMES == 1
3739 const char* _formatString =
3740 "(%s) %s: Sequencer switched to %s step mode";
3742 const char* _formatString =
3743 "%s: Sequencer switched to %s step mode";
3747 mode.toString(modeStr);
3753 this->m_objName.toChar(),
3759 this->m_LogText_OutputPort[0].invoke(
3774 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3775 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3783 if (this->m_logOut_OutputPort[0].isConnected()) {
3786 #if FW_AMPCS_COMPATIBLE
3796 this->m_logOut_OutputPort[0].
invoke(
3805 #if FW_ENABLE_TEXT_LOGGING
3806 if (this->m_LogText_OutputPort[0].isConnected()) {
3807 #if FW_OBJECT_NAMES == 1
3808 const char* _formatString =
3809 "(%s) %s: No sequence active.";
3811 const char* _formatString =
3812 "%s: No sequence active.";
3819 this->m_objName.toChar(),
3821 "CS_NoSequenceActive "
3824 this->m_LogText_OutputPort[0].invoke(
3839 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3840 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3848 if (this->m_logOut_OutputPort[0].isConnected()) {
3852 #if FW_AMPCS_COMPATIBLE
3867 this->m_logOut_OutputPort[0].
invoke(
3876 #if FW_ENABLE_TEXT_LOGGING
3877 if (this->m_LogText_OutputPort[0].isConnected()) {
3878 #if FW_OBJECT_NAMES == 1
3879 const char* _formatString =
3880 "(%s) %s: Sequence %s is valid.";
3882 const char* _formatString =
3883 "%s: Sequence %s is valid.";
3890 this->m_objName.toChar(),
3892 "CS_SequenceValid ",
3896 this->m_LogText_OutputPort[0].invoke(
3914 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3915 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3923 if (this->m_logOut_OutputPort[0].isConnected()) {
3927 #if FW_AMPCS_COMPATIBLE
3942 #if FW_AMPCS_COMPATIBLE
3945 static_cast<U8>(
sizeof(U32))
3958 this->m_logOut_OutputPort[0].
invoke(
3967 #if FW_ENABLE_TEXT_LOGGING
3968 if (this->m_LogText_OutputPort[0].isConnected()) {
3969 #if FW_OBJECT_NAMES == 1
3970 const char* _formatString =
3971 "(%s) %s: Sequence %s timed out on command %" PRIu32
"";
3973 const char* _formatString =
3974 "%s: Sequence %s timed out on command %" PRIu32
"";
3981 this->m_objName.toChar(),
3983 "CS_SequenceTimeout ",
3988 this->m_LogText_OutputPort[0].invoke(
4006 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4007 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4015 if (this->m_logOut_OutputPort[0].isConnected()) {
4019 #if FW_AMPCS_COMPATIBLE
4034 #if FW_AMPCS_COMPATIBLE
4037 static_cast<U8>(
sizeof(U32))
4050 this->m_logOut_OutputPort[0].
invoke(
4059 #if FW_ENABLE_TEXT_LOGGING
4060 if (this->m_LogText_OutputPort[0].isConnected()) {
4061 #if FW_OBJECT_NAMES == 1
4062 const char* _formatString =
4063 "(%s) %s: Sequence %s command %" PRIu32
" stepped";
4065 const char* _formatString =
4066 "%s: Sequence %s command %" PRIu32
" stepped";
4073 this->m_objName.toChar(),
4080 this->m_LogText_OutputPort[0].invoke(
4095 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4096 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4104 if (this->m_logOut_OutputPort[0].isConnected()) {
4108 #if FW_AMPCS_COMPATIBLE
4123 this->m_logOut_OutputPort[0].
invoke(
4132 #if FW_ENABLE_TEXT_LOGGING
4133 if (this->m_LogText_OutputPort[0].isConnected()) {
4134 #if FW_OBJECT_NAMES == 1
4135 const char* _formatString =
4136 "(%s) %s: Sequence %s started";
4138 const char* _formatString =
4139 "%s: Sequence %s started";
4146 this->m_objName.toChar(),
4152 this->m_LogText_OutputPort[0].invoke(
4171 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4172 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4180 if (this->m_logOut_OutputPort[0].isConnected()) {
4184 #if FW_AMPCS_COMPATIBLE
4199 #if FW_AMPCS_COMPATIBLE
4202 static_cast<U8>(
sizeof(U32))
4209 _status = _logBuff.
serialize(recordNumber);
4215 #if FW_AMPCS_COMPATIBLE
4218 static_cast<U8>(
sizeof(U32))
4231 this->m_logOut_OutputPort[0].
invoke(
4240 #if FW_ENABLE_TEXT_LOGGING
4241 if (this->m_LogText_OutputPort[0].isConnected()) {
4242 #if FW_OBJECT_NAMES == 1
4243 const char* _formatString =
4244 "(%s) %s: Start waiting for sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") to complete";
4246 const char* _formatString =
4247 "%s: Start waiting for sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") to complete";
4254 this->m_objName.toChar(),
4262 this->m_LogText_OutputPort[0].invoke(
4277 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4278 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4286 if (this->m_logOut_OutputPort[0].isConnected()) {
4289 #if FW_AMPCS_COMPATIBLE
4299 this->m_logOut_OutputPort[0].
invoke(
4308 #if FW_ENABLE_TEXT_LOGGING
4309 if (this->m_LogText_OutputPort[0].isConnected()) {
4310 #if FW_OBJECT_NAMES == 1
4311 const char* _formatString =
4312 "(%s) %s: Still waiting for sequence file to complete";
4314 const char* _formatString =
4315 "%s: Still waiting for sequence file to complete";
4322 this->m_objName.toChar(),
4324 "CS_JoinWaitingNotComplete "
4327 this->m_LogText_OutputPort[0].invoke(
4342 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4343 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4351 if (this->m_logOut_OutputPort[0].isConnected()) {
4355 #if FW_AMPCS_COMPATIBLE
4370 this->m_logOut_OutputPort[0].
invoke(
4379 #if FW_ENABLE_TEXT_LOGGING
4380 if (this->m_LogText_OutputPort[0].isConnected()) {
4381 #if FW_OBJECT_NAMES == 1
4382 const char* _formatString =
4383 "(%s) %s: Sequence file %s has no records. Ignoring.";
4385 const char* _formatString =
4386 "%s: Sequence file %s has no records. Ignoring.";
4393 this->m_objName.toChar(),
4399 this->m_LogText_OutputPort[0].invoke(
4419 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4421 this->m_timeCaller_OutputPort[0].isConnected() &&
4424 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4438 this->m_tlmOut_OutputPort[0].
invoke(
4452 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4454 this->m_timeCaller_OutputPort[0].isConnected() &&
4457 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4471 this->m_tlmOut_OutputPort[0].
invoke(
4485 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4487 this->m_timeCaller_OutputPort[0].isConnected() &&
4490 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4504 this->m_tlmOut_OutputPort[0].
invoke(
4518 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4520 this->m_timeCaller_OutputPort[0].isConnected() &&
4523 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4537 this->m_tlmOut_OutputPort[0].
invoke(
4551 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4553 this->m_timeCaller_OutputPort[0].isConnected() &&
4556 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4570 this->m_tlmOut_OutputPort[0].
invoke(
4585 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4587 this->m_timeCaller_OutputPort[0].
invoke(_time);
4602 ComponentIpcSerializableBuffer msg;
4625 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
4627 if (msgType == CMDSEQUENCER_COMPONENT_EXIT) {
4632 deserStatus = msg.deserialize(portNum);
4640 case CMDRESPONSEIN_CMDRESPONSE: {
4643 deserStatus = msg.deserialize(opCode);
4651 deserStatus = msg.deserialize(cmdSeq);
4679 deserStatus = msg.deserialize(key);
4694 case SCHEDIN_SCHED: {
4697 deserStatus = msg.deserialize(context);
4712 case SEQCANCELIN_CMDSEQCANCEL: {
4720 case SEQRUNIN_CMDSEQIN: {
4723 Fw::ExternalString filename(__fprime_ac_filename_buffer,
sizeof __fprime_ac_filename_buffer);
4724 deserStatus = msg.deserialize(filename);
4742 deserStatus = msg.deserialize(opCode);
4750 deserStatus = msg.deserialize(cmdSeq);
4771 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4786 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4799 #if FW_CMD_CHECK_RESIDUAL
4801 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4820 case CMD_CS_VALIDATE: {
4823 deserStatus = msg.deserialize(opCode);
4831 deserStatus = msg.deserialize(cmdSeq);
4852 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4865 #if FW_CMD_CHECK_RESIDUAL
4867 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4885 case CMD_CS_CANCEL: {
4888 deserStatus = msg.deserialize(opCode);
4896 deserStatus = msg.deserialize(cmdSeq);
4915 #if FW_CMD_CHECK_RESIDUAL
4917 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4932 case CMD_CS_START: {
4935 deserStatus = msg.deserialize(opCode);
4943 deserStatus = msg.deserialize(cmdSeq);
4962 #if FW_CMD_CHECK_RESIDUAL
4964 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4982 deserStatus = msg.deserialize(opCode);
4990 deserStatus = msg.deserialize(cmdSeq);
5009 #if FW_CMD_CHECK_RESIDUAL
5011 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5029 deserStatus = msg.deserialize(opCode);
5037 deserStatus = msg.deserialize(cmdSeq);
5056 #if FW_CMD_CHECK_RESIDUAL
5058 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5073 case CMD_CS_MANUAL: {
5076 deserStatus = msg.deserialize(opCode);
5084 deserStatus = msg.deserialize(cmdSeq);
5103 #if FW_CMD_CHECK_RESIDUAL
5105 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5120 case CMD_CS_JOIN_WAIT: {
5123 deserStatus = msg.deserialize(opCode);
5131 deserStatus = msg.deserialize(cmdSeq);
5150 #if FW_CMD_CHECK_RESIDUAL
5152 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5177 void CmdSequencerComponentBase ::
5189 const U32 idBase = callComp->
getIdBase();
5193 switch (opCode - idBase) {
5195 compPtr->CS_RUN_cmdHandlerBase(
5204 compPtr->CS_VALIDATE_cmdHandlerBase(
5213 compPtr->CS_CANCEL_cmdHandlerBase(
5222 compPtr->CS_START_cmdHandlerBase(
5231 compPtr->CS_STEP_cmdHandlerBase(
5240 compPtr->CS_AUTO_cmdHandlerBase(
5249 compPtr->CS_MANUAL_cmdHandlerBase(
5258 compPtr->CS_JOIN_WAIT_cmdHandlerBase(
5272 void CmdSequencerComponentBase ::
5273 m_p_cmdResponseIn_in(
5283 compPtr->cmdResponseIn_handlerBase(
5291 void CmdSequencerComponentBase ::
5300 compPtr->pingIn_handlerBase(
5306 void CmdSequencerComponentBase ::
5315 compPtr->schedIn_handlerBase(
5321 void CmdSequencerComponentBase ::
5329 compPtr->seqCancelIn_handlerBase(portNum);
5332 void CmdSequencerComponentBase ::
5341 compPtr->seqRunIn_handlerBase(
#define FW_MIN(a, b)
MIN macro.
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
#define PRI_PlatformIntType
@ TB_NONE
No time base has been established.
PlatformAssertArgType FwAssertArgType
PlatformSizeType FwSizeType
#define FW_LOG_STRING_MAX_SIZE
Max size of log string parameter type.
PlatformQueuePriorityType FwQueuePriorityType
PlatformIndexType FwIndexType
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects)
@ ACTIVE_COMPONENT_EXIT
message to exit active component task
Enum representing a command response.
@ FORMAT_ERROR
Command failed to deserialize.
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialize raw enum value from SerialType.
A string backed by an external buffer.
@ WARNING_HI
A serious but recoverable event.
@ ACTIVITY_HI
Important informational events.
@ WARNING_LO
A less serious but recoverable event.
@ ACTIVITY_LO
Less important informational events.
void init()
Object initializer.
const char * toChar() const
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode)
Invoke a port interface.
void init()
Initialization function.
void init()
Initialization function.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke a port interface.
void addCallPort(InputComPort *callPort)
Register an input port.
void init()
Initialization function.
void invoke(Fw::ComBuffer &data, U32 context)
Invoke a port interface.
void init()
Initialization function.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
void addCallPort(InputLogPort *callPort)
Register an input port.
void addCallPort(InputTimePort *callPort)
Register an input port.
void invoke(Fw::Time &time)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Initialization function.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Invoke a port interface.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
Os::Queue m_queue
queue object for active component
@ MSG_DISPATCH_OK
Dispatch was normal.
@ MSG_DISPATCH_EXIT
A message was sent requesting an exit of the loop.
@ MSG_DISPATCH_ERROR
Errors dispatching messages.
NATIVE_UINT_TYPE SizeType
void resetDeser()
reset deserialization to beginning
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
virtual const CHAR * toChar() const =0
void format(const CHAR *formatString,...)
write formatted string to buffer
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const
serialization function
static constexpr SizeType BUFFER_SIZE(SizeType maxLength)
Get the size of a null-terminated string buffer.
const char * toChar() const
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
@ BLOCKING
Message will block until space is available.
@ NONBLOCKING
Message will return with status when space is unavailable.
Status
status returned from the queue send function
@ OP_OK
message sent/received okay
Sequencer blocking state.
The stage of the file read operation.
@ SERIALIZED_SIZE
The size of the serial representation.
@ SERIALIZED_SIZE
The size of the serial representation.
virtual void CS_MANUAL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_WARNING_HI_CS_JoinWaitingNotComplete()
void CS_MANUAL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
@ EVENTID_CS_TIMEBASEMISMATCH
The running time base doesn't match the time base in the sequence files.
@ EVENTID_CS_UNEXPECTEDCOMPLETION
A command status came back when no sequence was running.
@ EVENTID_CS_CMDSTARTED
A manual sequence was started.
@ EVENTID_CS_RECORDINVALID
The format of a command record was invalid.
@ EVENTID_CS_FILECRCFAILURE
The sequence file validation failed.
@ EVENTID_CS_JOINWAITINGNOTCOMPLETE
Cannot run new sequence when current sequence file is still running.
@ EVENTID_CS_PORTSEQUENCESTARTED
A local port request to run a sequence was started.
@ EVENTID_CS_SEQUENCEVALID
A sequence passed validation.
@ EVENTID_CS_SEQUENCECANCELED
A command sequence was successfully canceled.
@ EVENTID_CS_FILENOTFOUND
The sequence file was not found.
@ EVENTID_CS_MODESWITCHED
Switched step mode.
@ EVENTID_CS_FILESIZEERROR
The sequence file was too large.
@ EVENTID_CS_TIMECONTEXTMISMATCH
The running time base doesn't match the time base in the sequence files.
@ EVENTID_CS_SEQUENCECOMPLETE
A command sequence successfully completed.
@ EVENTID_CS_SEQUENCETIMEOUT
A sequence passed validation.
@ EVENTID_CS_INVALIDMODE
The Command Sequencer received a command that was invalid for its current mode.
@ EVENTID_CS_NOSEQUENCEACTIVE
A sequence related command came with no active sequence.
@ EVENTID_CS_JOINWAITING
Wait for the current running sequence file complete.
@ EVENTID_CS_CMDSTEPPED
A command in a sequence was stepped through.
@ EVENTID_CS_COMMANDERROR
The Command Sequencer issued a command and received an error status in return.
@ EVENTID_CS_FILEREADERROR
The Sequence File Loader could not read the sequence file.
@ EVENTID_CS_SEQUENCELOADED
Sequence file was successfully loaded.
@ EVENTID_CS_COMMANDCOMPLETE
The Command Sequencer issued a command and received a success status in return.
@ EVENTID_CS_RECORDMISMATCH
Number of records in header doesn't match number in file.
@ EVENTID_CS_FILEINVALID
The sequence file format was invalid.
void seqCancelIn_handlerBase(FwIndexType portNum)
Handler base-class function for input port seqCancelIn.
void log_WARNING_HI_CS_FileNotFound(const Fw::StringBase &fileName)
void log_WARNING_LO_CS_NoRecords(const Fw::StringBase &fileName)
Log event CS_NoRecords.
bool isConnected_seqStartOut_OutputPort(FwIndexType portNum)
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
virtual void CS_STEP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_STEP.
void log_ACTIVITY_HI_CS_CmdStepped(const Fw::StringBase &filename, U32 command)
FwIndexType getNum_cmdResponseOut_OutputPorts() const
virtual void CS_START_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_START.
virtual void cmdResponseIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
@ CHANNELID_CS_LOADCOMMANDS
Channel ID for CS_LoadCommands.
@ CHANNELID_CS_ERRORS
Channel ID for CS_Errors.
@ CHANNELID_CS_CANCELCOMMANDS
Channel ID for CS_CancelCommands.
@ CHANNELID_CS_COMMANDSEXECUTED
Channel ID for CS_CommandsExecuted.
@ CHANNELID_CS_SEQUENCESCOMPLETED
Channel ID for CS_SequencesCompleted.
void tlmWrite_CS_CancelCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void seqRunIn_preMsgHook(FwIndexType portNum, const Fw::StringBase &filename)
Pre-message hook for async input port seqRunIn.
void seqDone_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqDone.
void CS_RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void CS_CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_CANCEL.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
FwIndexType getNum_pingOut_OutputPorts() const
void tlmWrite_CS_CommandsExecuted(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void seqCancelIn_preMsgHook(FwIndexType portNum)
Pre-message hook for async input port seqCancelIn.
void cmdResponseIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
void CS_CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void seqRunIn_handlerBase(FwIndexType portNum, const Fw::StringBase &filename)
Handler base-class function for input port seqRunIn.
void log_WARNING_HI_CS_FileReadError(const Fw::StringBase &fileName)
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void log_WARNING_HI_CS_InvalidMode()
virtual ~CmdSequencerComponentBase()
Destroy CmdSequencerComponentBase object.
virtual void CS_START_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void CS_START_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void seqStartOut_out(FwIndexType portNum, const Fw::StringBase &filename)
Invoke output port seqStartOut.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
void log_ACTIVITY_LO_CS_CommandComplete(const Fw::StringBase &fileName, U32 recordNumber, U32 opCode)
void log_WARNING_HI_CS_RecordMismatch(const Fw::StringBase &fileName, U32 header_records, U32 extra_bytes)
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
void log_WARNING_HI_CS_TimeBaseMismatch(const Fw::StringBase &fileName, U16 time_base, U16 seq_time_base)
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
virtual void CS_STEP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void CS_JOIN_WAIT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
bool isConnected_seqDone_OutputPort(FwIndexType portNum)
FwIndexType getNum_timeCaller_OutputPorts() const
void log_WARNING_HI_CS_TimeContextMismatch(const Fw::StringBase &fileName, U8 currTimeBase, U8 seqTimeBase)
virtual void CS_RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_RUN.
Svc::InputCmdSeqCancelPort * get_seqCancelIn_InputPort(FwIndexType portNum)
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
@ OPCODE_CS_CANCEL
Cancel a command sequence.
@ OPCODE_CS_STEP
Perform one step in a command sequence. Valid only if CmdSequencer is in MANUAL run mode.
@ OPCODE_CS_MANUAL
Set the run mode to MANUAL.
@ OPCODE_CS_VALIDATE
Validate a command sequence file.
@ OPCODE_CS_RUN
Run a command sequence file.
@ OPCODE_CS_START
Start running a command sequence.
@ OPCODE_CS_AUTO
Set the run mode to AUTO.
@ OPCODE_CS_JOIN_WAIT
Wait for sequences that are running to finish. Allow user to run multiple seq files in SEQ_NO_BLOCK m...
FwIndexType getNum_cmdRegOut_OutputPorts() const
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void log_ACTIVITY_HI_CS_SequenceComplete(const Fw::StringBase &fileName)
void log_WARNING_HI_CS_SequenceTimeout(const Fw::StringBase &filename, U32 command)
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
FwIndexType getNum_tlmOut_OutputPorts() const
void tlmWrite_CS_Errors(U32 arg, Fw::Time _tlmTime=Fw::Time())
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
FwIndexType getNum_schedIn_InputPorts() const
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(FwIndexType portNum)
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void CS_AUTO_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIndexType getNum_cmdIn_InputPorts() const
void log_ACTIVITY_HI_CS_ModeSwitched(Svc::CmdSequencer_SeqMode mode)
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(FwIndexType portNum)
void set_comCmdOut_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to comCmdOut[portNum].
void regCommands()
Register commands with the Command Dispatcher.
void set_seqDone_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to seqDone[portNum].
virtual void CS_VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_VALIDATE.
void log_ACTIVITY_HI_CS_SequenceCanceled(const Fw::StringBase &fileName)
void log_WARNING_HI_CS_FileInvalid(const Fw::StringBase &fileName, Svc::CmdSequencer_FileReadStage stage, I32 error)
void log_WARNING_HI_CS_FileCrcFailure(const Fw::StringBase &fileName, U32 storedCRC, U32 computedCRC)
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_MANUAL.
bool isConnected_logOut_OutputPort(FwIndexType portNum)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
FwIndexType getNum_seqRunIn_InputPorts() const
void log_ACTIVITY_HI_CS_PortSequenceStarted(const Fw::StringBase &filename)
bool isConnected_comCmdOut_OutputPort(FwIndexType portNum)
FwIndexType getNum_cmdResponseIn_InputPorts() const
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
virtual void seqRunIn_handler(FwIndexType portNum, const Fw::StringBase &filename)=0
Handler for input port seqRunIn.
virtual void cmdResponseIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port cmdResponseIn.
void log_ACTIVITY_HI_CS_SequenceValid(const Fw::StringBase &filename)
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
virtual void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
FwIndexType getNum_logOut_OutputPorts() const
FwIndexType getNum_seqDone_OutputPorts() const
void comCmdOut_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comCmdOut.
void CS_VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIndexType getNum_seqStartOut_OutputPorts() const
void log_WARNING_HI_CS_RecordInvalid(const Fw::StringBase &fileName, U32 recordNumber, I32 error)
void CS_STEP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIndexType getNum_seqCancelIn_InputPorts() const
void log_WARNING_LO_CS_NoSequenceActive()
void log_ACTIVITY_LO_CS_SequenceLoaded(const Fw::StringBase &fileName)
void log_WARNING_HI_CS_FileSizeError(const Fw::StringBase &fileName, U32 size)
void log_WARNING_HI_CS_UnexpectedCompletion(U32 opcode)
virtual void CS_JOIN_WAIT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_JOIN_WAIT.
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
CmdSequencerComponentBase(const char *compName="")
Construct CmdSequencerComponentBase object.
virtual void CS_AUTO_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_AUTO.
FwIndexType getNum_comCmdOut_OutputPorts() const
FwIndexType getNum_pingIn_InputPorts() const
virtual void CS_RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::CmdSequencer_BlockState block)=0
void log_ACTIVITY_HI_CS_JoinWaiting(const Fw::StringBase &filename, U32 recordNumber, U32 opCode)
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void CS_JOIN_WAIT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_seqStartOut_OutputPort(FwIndexType portNum, Svc::InputCmdSeqInPort *port)
Connect port to seqStartOut[portNum].
void log_WARNING_HI_CS_CommandError(const Fw::StringBase &fileName, U32 recordNumber, U32 opCode, U32 errorStatus)
void log_ACTIVITY_HI_CS_CmdStarted(const Fw::StringBase &filename)
virtual void seqCancelIn_handler(FwIndexType portNum)=0
Handler for input port seqCancelIn.
void tlmWrite_CS_LoadCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_CS_SequencesCompleted(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void CS_VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0
void invoke(const Fw::StringBase &filename)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputCmdSeqInPort *callPort)
Register an input port.
void invoke(U32 key)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputPingPort *callPort)
Register an input port.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
@ OP_OK
Operation succeeded.