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());
411 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
431 return &this->m_cmdIn_InputPort[portNum];
446 return &this->m_cmdResponseIn_InputPort[portNum];
457 return &this->m_pingIn_InputPort[portNum];
468 return &this->m_schedIn_InputPort[portNum];
479 return &this->m_seqCancelIn_InputPort[portNum];
490 return &this->m_seqRunIn_InputPort[portNum];
497 #if FW_ENABLE_TEXT_LOGGING == 1
499 void CmdSequencerComponentBase ::
500 set_LogText_OutputPort(
506 portNum < this->getNum_LogText_OutputPorts(),
510 this->m_LogText_OutputPort[portNum].addCallPort(port);
526 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
540 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
554 this->m_logOut_OutputPort[portNum].
addCallPort(port);
568 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
582 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
600 this->m_comCmdOut_OutputPort[portNum].
addCallPort(port);
614 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
628 this->m_seqDone_OutputPort[portNum].
addCallPort(port);
631 #if FW_PORT_SERIALIZATION
637 #if FW_ENABLE_TEXT_LOGGING == 1
639 void CmdSequencerComponentBase ::
640 set_LogText_OutputPort(
642 Fw::InputSerializePort* port
646 portNum < this->getNum_LogText_OutputPorts(),
650 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
658 Fw::InputSerializePort* port
666 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
672 Fw::InputSerializePort* port
680 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
686 Fw::InputSerializePort* port
694 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
700 Fw::InputSerializePort* port
708 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
714 Fw::InputSerializePort* port
722 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
727 #if FW_PORT_SERIALIZATION
736 Fw::InputSerializePort* port
744 this->m_comCmdOut_OutputPort[portNum].registerSerialPort(port);
750 Fw::InputSerializePort* port
758 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
764 Fw::InputSerializePort* port
772 this->m_seqDone_OutputPort[portNum].registerSerialPort(port);
784 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
786 this->m_cmdRegOut_OutputPort[0].
invoke(
790 this->m_cmdRegOut_OutputPort[0].
invoke(
794 this->m_cmdRegOut_OutputPort[0].
invoke(
798 this->m_cmdRegOut_OutputPort[0].
invoke(
802 this->m_cmdRegOut_OutputPort[0].
invoke(
806 this->m_cmdRegOut_OutputPort[0].
invoke(
810 this->m_cmdRegOut_OutputPort[0].
invoke(
814 this->m_cmdRegOut_OutputPort[0].
invoke(
825 Fw::ActiveComponentBase(compName)
884 #if FW_ENABLE_TEXT_LOGGING == 1
887 getNum_LogText_OutputPorts()
const
950 #if FW_ENABLE_TEXT_LOGGING == 1
952 bool CmdSequencerComponentBase ::
953 isConnected_LogText_OutputPort(
FwIndexType portNum)
956 portNum < this->getNum_LogText_OutputPorts(),
960 return this->m_LogText_OutputPort[portNum].isConnected();
973 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
984 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
995 return this->m_logOut_OutputPort[portNum].
isConnected();
1006 return this->m_timeCaller_OutputPort[portNum].
isConnected();
1017 return this->m_tlmOut_OutputPort[portNum].
isConnected();
1032 return this->m_comCmdOut_OutputPort[portNum].
isConnected();
1043 return this->m_pingOut_OutputPort[portNum].
isConnected();
1054 return this->m_seqDone_OutputPort[portNum].
isConnected();
1084 ComponentIpcSerializableBuffer msg;
1088 _status = msg.serialize(
1097 _status = msg.serialize(portNum);
1104 _status = msg.serialize(opCode);
1111 _status = msg.serialize(cmdSeq);
1118 _status = msg.serialize(response);
1151 ComponentIpcSerializableBuffer msg;
1155 _status = msg.serialize(
1164 _status = msg.serialize(portNum);
1171 _status = msg.serialize(key);
1204 ComponentIpcSerializableBuffer msg;
1208 _status = msg.serialize(
1217 _status = msg.serialize(portNum);
1224 _status = msg.serialize(context);
1251 ComponentIpcSerializableBuffer msg;
1255 _status = msg.serialize(
1264 _status = msg.serialize(portNum);
1297 ComponentIpcSerializableBuffer msg;
1301 _status = msg.serialize(
1310 _status = msg.serialize(portNum);
1317 _status = msg.serialize(filename);
1400 this->m_comCmdOut_OutputPort[portNum].
invoke(
1416 this->m_pingOut_OutputPort[portNum].
invoke(
1433 this->m_seqDone_OutputPort[portNum].
invoke(
1451 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1452 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1473 ComponentIpcSerializableBuffer msg;
1486 _status = msg.serialize(port);
1492 _status = msg.serialize(opCode);
1498 _status = msg.serialize(cmdSeq);
1504 _status = msg.serialize(args);
1532 ComponentIpcSerializableBuffer msg;
1536 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_CS_VALIDATE));
1545 _status = msg.serialize(port);
1551 _status = msg.serialize(opCode);
1557 _status = msg.serialize(cmdSeq);
1563 _status = msg.serialize(args);
1591 ComponentIpcSerializableBuffer msg;
1604 _status = msg.serialize(port);
1610 _status = msg.serialize(opCode);
1616 _status = msg.serialize(cmdSeq);
1622 _status = msg.serialize(args);
1650 ComponentIpcSerializableBuffer msg;
1663 _status = msg.serialize(port);
1669 _status = msg.serialize(opCode);
1675 _status = msg.serialize(cmdSeq);
1681 _status = msg.serialize(args);
1709 ComponentIpcSerializableBuffer msg;
1722 _status = msg.serialize(port);
1728 _status = msg.serialize(opCode);
1734 _status = msg.serialize(cmdSeq);
1740 _status = msg.serialize(args);
1768 ComponentIpcSerializableBuffer msg;
1781 _status = msg.serialize(port);
1787 _status = msg.serialize(opCode);
1793 _status = msg.serialize(cmdSeq);
1799 _status = msg.serialize(args);
1827 ComponentIpcSerializableBuffer msg;
1840 _status = msg.serialize(port);
1846 _status = msg.serialize(opCode);
1852 _status = msg.serialize(cmdSeq);
1858 _status = msg.serialize(args);
1886 ComponentIpcSerializableBuffer msg;
1890 _status = msg.serialize(
static_cast<FwEnumStoreType>(CMD_CS_JOIN_WAIT));
1899 _status = msg.serialize(port);
1905 _status = msg.serialize(opCode);
1911 _status = msg.serialize(cmdSeq);
1917 _status = msg.serialize(args);
2038 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2039 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2047 if (this->m_logOut_OutputPort[0].isConnected()) {
2051 #if FW_AMPCS_COMPATIBLE
2066 this->m_logOut_OutputPort[0].
invoke(
2075 #if FW_ENABLE_TEXT_LOGGING
2076 if (this->m_LogText_OutputPort[0].isConnected()) {
2077 #if FW_OBJECT_NAMES == 1
2078 const char* _formatString =
2079 "(%s) %s: Loaded sequence %s";
2081 const char* _formatString =
2082 "%s: Loaded sequence %s";
2089 this->m_objName.toChar(),
2091 "CS_SequenceLoaded ",
2095 this->m_LogText_OutputPort[0].invoke(
2110 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2111 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2119 if (this->m_logOut_OutputPort[0].isConnected()) {
2123 #if FW_AMPCS_COMPATIBLE
2138 this->m_logOut_OutputPort[0].
invoke(
2147 #if FW_ENABLE_TEXT_LOGGING
2148 if (this->m_LogText_OutputPort[0].isConnected()) {
2149 #if FW_OBJECT_NAMES == 1
2150 const char* _formatString =
2151 "(%s) %s: Sequence file %s canceled";
2153 const char* _formatString =
2154 "%s: Sequence file %s canceled";
2161 this->m_objName.toChar(),
2163 "CS_SequenceCanceled ",
2167 this->m_LogText_OutputPort[0].invoke(
2182 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2183 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2191 if (this->m_logOut_OutputPort[0].isConnected()) {
2195 #if FW_AMPCS_COMPATIBLE
2210 this->m_logOut_OutputPort[0].
invoke(
2219 #if FW_ENABLE_TEXT_LOGGING
2220 if (this->m_LogText_OutputPort[0].isConnected()) {
2221 #if FW_OBJECT_NAMES == 1
2222 const char* _formatString =
2223 "(%s) %s: Error reading sequence file %s";
2225 const char* _formatString =
2226 "%s: Error reading sequence file %s";
2233 this->m_objName.toChar(),
2235 "CS_FileReadError ",
2239 this->m_LogText_OutputPort[0].invoke(
2258 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2259 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2267 if (this->m_logOut_OutputPort[0].isConnected()) {
2271 #if FW_AMPCS_COMPATIBLE
2286 #if FW_AMPCS_COMPATIBLE
2302 #if FW_AMPCS_COMPATIBLE
2305 static_cast<U8>(
sizeof(I32))
2318 this->m_logOut_OutputPort[0].
invoke(
2327 #if FW_ENABLE_TEXT_LOGGING
2328 if (this->m_LogText_OutputPort[0].isConnected()) {
2329 #if FW_OBJECT_NAMES == 1
2330 const char* _formatString =
2331 "(%s) %s: Sequence file %s invalid. Stage: %s Error: %" PRIi32
"";
2333 const char* _formatString =
2334 "%s: Sequence file %s invalid. Stage: %s Error: %" PRIi32
"";
2338 stage.toString(stageStr);
2344 this->m_objName.toChar(),
2352 this->m_LogText_OutputPort[0].invoke(
2371 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2372 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2380 if (this->m_logOut_OutputPort[0].isConnected()) {
2384 #if FW_AMPCS_COMPATIBLE
2399 #if FW_AMPCS_COMPATIBLE
2402 static_cast<U8>(
sizeof(U32))
2409 _status = _logBuff.
serialize(recordNumber);
2415 #if FW_AMPCS_COMPATIBLE
2418 static_cast<U8>(
sizeof(I32))
2431 this->m_logOut_OutputPort[0].
invoke(
2440 #if FW_ENABLE_TEXT_LOGGING
2441 if (this->m_LogText_OutputPort[0].isConnected()) {
2442 #if FW_OBJECT_NAMES == 1
2443 const char* _formatString =
2444 "(%s) %s: Sequence file %s: Record %" PRIu32
" invalid. Err: %" PRIi32
"";
2446 const char* _formatString =
2447 "%s: Sequence file %s: Record %" PRIu32
" invalid. Err: %" PRIi32
"";
2454 this->m_objName.toChar(),
2456 "CS_RecordInvalid ",
2462 this->m_LogText_OutputPort[0].invoke(
2480 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2481 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2489 if (this->m_logOut_OutputPort[0].isConnected()) {
2493 #if FW_AMPCS_COMPATIBLE
2508 #if FW_AMPCS_COMPATIBLE
2511 static_cast<U8>(
sizeof(U32))
2524 this->m_logOut_OutputPort[0].
invoke(
2533 #if FW_ENABLE_TEXT_LOGGING
2534 if (this->m_LogText_OutputPort[0].isConnected()) {
2535 #if FW_OBJECT_NAMES == 1
2536 const char* _formatString =
2537 "(%s) %s: Sequence file %s too large. Size: %" PRIu32
"";
2539 const char* _formatString =
2540 "%s: Sequence file %s too large. Size: %" PRIu32
"";
2547 this->m_objName.toChar(),
2549 "CS_FileSizeError ",
2554 this->m_LogText_OutputPort[0].invoke(
2569 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2570 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2578 if (this->m_logOut_OutputPort[0].isConnected()) {
2582 #if FW_AMPCS_COMPATIBLE
2597 this->m_logOut_OutputPort[0].
invoke(
2606 #if FW_ENABLE_TEXT_LOGGING
2607 if (this->m_LogText_OutputPort[0].isConnected()) {
2608 #if FW_OBJECT_NAMES == 1
2609 const char* _formatString =
2610 "(%s) %s: Sequence file %s not found.";
2612 const char* _formatString =
2613 "%s: Sequence file %s not found.";
2620 this->m_objName.toChar(),
2626 this->m_LogText_OutputPort[0].invoke(
2645 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2646 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2654 if (this->m_logOut_OutputPort[0].isConnected()) {
2658 #if FW_AMPCS_COMPATIBLE
2673 #if FW_AMPCS_COMPATIBLE
2676 static_cast<U8>(
sizeof(U32))
2683 _status = _logBuff.
serialize(storedCRC);
2689 #if FW_AMPCS_COMPATIBLE
2692 static_cast<U8>(
sizeof(U32))
2699 _status = _logBuff.
serialize(computedCRC);
2705 this->m_logOut_OutputPort[0].
invoke(
2714 #if FW_ENABLE_TEXT_LOGGING
2715 if (this->m_LogText_OutputPort[0].isConnected()) {
2716 #if FW_OBJECT_NAMES == 1
2717 const char* _formatString =
2718 "(%s) %s: Sequence file %s had invalid CRC. Stored 0x%" PRIx32
", Computed 0x%" PRIx32
".";
2720 const char* _formatString =
2721 "%s: Sequence file %s had invalid CRC. Stored 0x%" PRIx32
", Computed 0x%" PRIx32
".";
2728 this->m_objName.toChar(),
2730 "CS_FileCrcFailure ",
2736 this->m_LogText_OutputPort[0].invoke(
2755 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2756 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2764 if (this->m_logOut_OutputPort[0].isConnected()) {
2768 #if FW_AMPCS_COMPATIBLE
2783 #if FW_AMPCS_COMPATIBLE
2786 static_cast<U8>(
sizeof(U32))
2793 _status = _logBuff.
serialize(recordNumber);
2799 #if FW_AMPCS_COMPATIBLE
2802 static_cast<U8>(
sizeof(U32))
2815 this->m_logOut_OutputPort[0].
invoke(
2824 #if FW_ENABLE_TEXT_LOGGING
2825 if (this->m_LogText_OutputPort[0].isConnected()) {
2826 #if FW_OBJECT_NAMES == 1
2827 const char* _formatString =
2828 "(%s) %s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") complete";
2830 const char* _formatString =
2831 "%s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") complete";
2838 this->m_objName.toChar(),
2840 "CS_CommandComplete ",
2846 this->m_LogText_OutputPort[0].invoke(
2861 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2862 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2870 if (this->m_logOut_OutputPort[0].isConnected()) {
2874 #if FW_AMPCS_COMPATIBLE
2889 this->m_logOut_OutputPort[0].
invoke(
2898 #if FW_ENABLE_TEXT_LOGGING
2899 if (this->m_LogText_OutputPort[0].isConnected()) {
2900 #if FW_OBJECT_NAMES == 1
2901 const char* _formatString =
2902 "(%s) %s: Sequence file %s complete";
2904 const char* _formatString =
2905 "%s: Sequence file %s complete";
2912 this->m_objName.toChar(),
2914 "CS_SequenceComplete ",
2918 this->m_LogText_OutputPort[0].invoke(
2938 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2939 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2947 if (this->m_logOut_OutputPort[0].isConnected()) {
2951 #if FW_AMPCS_COMPATIBLE
2966 #if FW_AMPCS_COMPATIBLE
2969 static_cast<U8>(
sizeof(U32))
2976 _status = _logBuff.
serialize(recordNumber);
2982 #if FW_AMPCS_COMPATIBLE
2985 static_cast<U8>(
sizeof(U32))
2998 #if FW_AMPCS_COMPATIBLE
3001 static_cast<U8>(
sizeof(U32))
3008 _status = _logBuff.
serialize(errorStatus);
3014 this->m_logOut_OutputPort[0].
invoke(
3023 #if FW_ENABLE_TEXT_LOGGING
3024 if (this->m_LogText_OutputPort[0].isConnected()) {
3025 #if FW_OBJECT_NAMES == 1
3026 const char* _formatString =
3027 "(%s) %s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") completed with error %" PRIu32
"";
3029 const char* _formatString =
3030 "%s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") completed with error %" PRIu32
"";
3037 this->m_objName.toChar(),
3046 this->m_LogText_OutputPort[0].invoke(
3061 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3062 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3070 if (this->m_logOut_OutputPort[0].isConnected()) {
3073 #if FW_AMPCS_COMPATIBLE
3083 this->m_logOut_OutputPort[0].
invoke(
3092 #if FW_ENABLE_TEXT_LOGGING
3093 if (this->m_LogText_OutputPort[0].isConnected()) {
3094 #if FW_OBJECT_NAMES == 1
3095 const char* _formatString =
3096 "(%s) %s: Invalid mode";
3098 const char* _formatString =
3106 this->m_objName.toChar(),
3111 this->m_LogText_OutputPort[0].invoke(
3130 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3131 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3139 if (this->m_logOut_OutputPort[0].isConnected()) {
3143 #if FW_AMPCS_COMPATIBLE
3158 #if FW_AMPCS_COMPATIBLE
3161 static_cast<U8>(
sizeof(U32))
3168 _status = _logBuff.
serialize(header_records);
3174 #if FW_AMPCS_COMPATIBLE
3177 static_cast<U8>(
sizeof(U32))
3184 _status = _logBuff.
serialize(extra_bytes);
3190 this->m_logOut_OutputPort[0].
invoke(
3199 #if FW_ENABLE_TEXT_LOGGING
3200 if (this->m_LogText_OutputPort[0].isConnected()) {
3201 #if FW_OBJECT_NAMES == 1
3202 const char* _formatString =
3203 "(%s) %s: Sequence file %s header records mismatch: %" PRIu32
" in header, found %" PRIu32
" extra bytes.";
3205 const char* _formatString =
3206 "%s: Sequence file %s header records mismatch: %" PRIu32
" in header, found %" PRIu32
" extra bytes.";
3213 this->m_objName.toChar(),
3215 "CS_RecordMismatch ",
3221 this->m_LogText_OutputPort[0].invoke(
3240 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3241 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3249 if (this->m_logOut_OutputPort[0].isConnected()) {
3253 #if FW_AMPCS_COMPATIBLE
3268 #if FW_AMPCS_COMPATIBLE
3271 static_cast<U8>(
sizeof(U16))
3278 _status = _logBuff.
serialize(time_base);
3284 #if FW_AMPCS_COMPATIBLE
3287 static_cast<U8>(
sizeof(U16))
3294 _status = _logBuff.
serialize(seq_time_base);
3300 this->m_logOut_OutputPort[0].
invoke(
3309 #if FW_ENABLE_TEXT_LOGGING
3310 if (this->m_LogText_OutputPort[0].isConnected()) {
3311 #if FW_OBJECT_NAMES == 1
3312 const char* _formatString =
3313 "(%s) %s: Sequence file %s: Current time base doesn't match sequence time: base: %" PRIu16
" seq: %" PRIu16
"";
3315 const char* _formatString =
3316 "%s: Sequence file %s: Current time base doesn't match sequence time: base: %" PRIu16
" seq: %" PRIu16
"";
3323 this->m_objName.toChar(),
3325 "CS_TimeBaseMismatch ",
3331 this->m_LogText_OutputPort[0].invoke(
3350 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3351 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3359 if (this->m_logOut_OutputPort[0].isConnected()) {
3363 #if FW_AMPCS_COMPATIBLE
3378 #if FW_AMPCS_COMPATIBLE
3381 static_cast<U8>(
sizeof(
U8))
3388 _status = _logBuff.
serialize(currTimeBase);
3394 #if FW_AMPCS_COMPATIBLE
3397 static_cast<U8>(
sizeof(
U8))
3404 _status = _logBuff.
serialize(seqTimeBase);
3410 this->m_logOut_OutputPort[0].
invoke(
3419 #if FW_ENABLE_TEXT_LOGGING
3420 if (this->m_LogText_OutputPort[0].isConnected()) {
3421 #if FW_OBJECT_NAMES == 1
3422 const char* _formatString =
3423 "(%s) %s: Sequence file %s: Current time context doesn't match sequence context: base: %" PRIu8
" seq: %" PRIu8
"";
3425 const char* _formatString =
3426 "%s: Sequence file %s: Current time context doesn't match sequence context: base: %" PRIu8
" seq: %" PRIu8
"";
3433 this->m_objName.toChar(),
3435 "CS_TimeContextMismatch ",
3441 this->m_LogText_OutputPort[0].invoke(
3456 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3457 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3465 if (this->m_logOut_OutputPort[0].isConnected()) {
3469 #if FW_AMPCS_COMPATIBLE
3484 this->m_logOut_OutputPort[0].
invoke(
3493 #if FW_ENABLE_TEXT_LOGGING
3494 if (this->m_LogText_OutputPort[0].isConnected()) {
3495 #if FW_OBJECT_NAMES == 1
3496 const char* _formatString =
3497 "(%s) %s: Local request for sequence %s started.";
3499 const char* _formatString =
3500 "%s: Local request for sequence %s started.";
3507 this->m_objName.toChar(),
3509 "CS_PortSequenceStarted ",
3513 this->m_LogText_OutputPort[0].invoke(
3528 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3529 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3537 if (this->m_logOut_OutputPort[0].isConnected()) {
3541 #if FW_AMPCS_COMPATIBLE
3550 #if FW_AMPCS_COMPATIBLE
3553 static_cast<U8>(
sizeof(U32))
3566 this->m_logOut_OutputPort[0].
invoke(
3575 #if FW_ENABLE_TEXT_LOGGING
3576 if (this->m_LogText_OutputPort[0].isConnected()) {
3577 #if FW_OBJECT_NAMES == 1
3578 const char* _formatString =
3579 "(%s) %s: Command complete status received while no sequences active. Opcode: %" PRIu32
"";
3581 const char* _formatString =
3582 "%s: Command complete status received while no sequences active. Opcode: %" PRIu32
"";
3589 this->m_objName.toChar(),
3591 "CS_UnexpectedCompletion ",
3595 this->m_LogText_OutputPort[0].invoke(
3610 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3611 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3619 if (this->m_logOut_OutputPort[0].isConnected()) {
3623 #if FW_AMPCS_COMPATIBLE
3632 #if FW_AMPCS_COMPATIBLE
3648 this->m_logOut_OutputPort[0].
invoke(
3657 #if FW_ENABLE_TEXT_LOGGING
3658 if (this->m_LogText_OutputPort[0].isConnected()) {
3659 #if FW_OBJECT_NAMES == 1
3660 const char* _formatString =
3661 "(%s) %s: Sequencer switched to %s step mode";
3663 const char* _formatString =
3664 "%s: Sequencer switched to %s step mode";
3668 mode.toString(modeStr);
3674 this->m_objName.toChar(),
3680 this->m_LogText_OutputPort[0].invoke(
3695 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3696 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3704 if (this->m_logOut_OutputPort[0].isConnected()) {
3707 #if FW_AMPCS_COMPATIBLE
3717 this->m_logOut_OutputPort[0].
invoke(
3726 #if FW_ENABLE_TEXT_LOGGING
3727 if (this->m_LogText_OutputPort[0].isConnected()) {
3728 #if FW_OBJECT_NAMES == 1
3729 const char* _formatString =
3730 "(%s) %s: No sequence active.";
3732 const char* _formatString =
3733 "%s: No sequence active.";
3740 this->m_objName.toChar(),
3742 "CS_NoSequenceActive "
3745 this->m_LogText_OutputPort[0].invoke(
3760 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3761 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3769 if (this->m_logOut_OutputPort[0].isConnected()) {
3773 #if FW_AMPCS_COMPATIBLE
3788 this->m_logOut_OutputPort[0].
invoke(
3797 #if FW_ENABLE_TEXT_LOGGING
3798 if (this->m_LogText_OutputPort[0].isConnected()) {
3799 #if FW_OBJECT_NAMES == 1
3800 const char* _formatString =
3801 "(%s) %s: Sequence %s is valid.";
3803 const char* _formatString =
3804 "%s: Sequence %s is valid.";
3811 this->m_objName.toChar(),
3813 "CS_SequenceValid ",
3817 this->m_LogText_OutputPort[0].invoke(
3835 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3836 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3844 if (this->m_logOut_OutputPort[0].isConnected()) {
3848 #if FW_AMPCS_COMPATIBLE
3863 #if FW_AMPCS_COMPATIBLE
3866 static_cast<U8>(
sizeof(U32))
3879 this->m_logOut_OutputPort[0].
invoke(
3888 #if FW_ENABLE_TEXT_LOGGING
3889 if (this->m_LogText_OutputPort[0].isConnected()) {
3890 #if FW_OBJECT_NAMES == 1
3891 const char* _formatString =
3892 "(%s) %s: Sequence %s timed out on command %" PRIu32
"";
3894 const char* _formatString =
3895 "%s: Sequence %s timed out on command %" PRIu32
"";
3902 this->m_objName.toChar(),
3904 "CS_SequenceTimeout ",
3909 this->m_LogText_OutputPort[0].invoke(
3927 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3928 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3936 if (this->m_logOut_OutputPort[0].isConnected()) {
3940 #if FW_AMPCS_COMPATIBLE
3955 #if FW_AMPCS_COMPATIBLE
3958 static_cast<U8>(
sizeof(U32))
3971 this->m_logOut_OutputPort[0].
invoke(
3980 #if FW_ENABLE_TEXT_LOGGING
3981 if (this->m_LogText_OutputPort[0].isConnected()) {
3982 #if FW_OBJECT_NAMES == 1
3983 const char* _formatString =
3984 "(%s) %s: Sequence %s command %" PRIu32
" stepped";
3986 const char* _formatString =
3987 "%s: Sequence %s command %" PRIu32
" stepped";
3994 this->m_objName.toChar(),
4001 this->m_LogText_OutputPort[0].invoke(
4016 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4017 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4025 if (this->m_logOut_OutputPort[0].isConnected()) {
4029 #if FW_AMPCS_COMPATIBLE
4044 this->m_logOut_OutputPort[0].
invoke(
4053 #if FW_ENABLE_TEXT_LOGGING
4054 if (this->m_LogText_OutputPort[0].isConnected()) {
4055 #if FW_OBJECT_NAMES == 1
4056 const char* _formatString =
4057 "(%s) %s: Sequence %s started";
4059 const char* _formatString =
4060 "%s: Sequence %s started";
4067 this->m_objName.toChar(),
4073 this->m_LogText_OutputPort[0].invoke(
4092 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4093 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4101 if (this->m_logOut_OutputPort[0].isConnected()) {
4105 #if FW_AMPCS_COMPATIBLE
4120 #if FW_AMPCS_COMPATIBLE
4123 static_cast<U8>(
sizeof(U32))
4130 _status = _logBuff.
serialize(recordNumber);
4136 #if FW_AMPCS_COMPATIBLE
4139 static_cast<U8>(
sizeof(U32))
4152 this->m_logOut_OutputPort[0].
invoke(
4161 #if FW_ENABLE_TEXT_LOGGING
4162 if (this->m_LogText_OutputPort[0].isConnected()) {
4163 #if FW_OBJECT_NAMES == 1
4164 const char* _formatString =
4165 "(%s) %s: Start waiting for sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") to complete";
4167 const char* _formatString =
4168 "%s: Start waiting for sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") to complete";
4175 this->m_objName.toChar(),
4183 this->m_LogText_OutputPort[0].invoke(
4198 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4199 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4207 if (this->m_logOut_OutputPort[0].isConnected()) {
4210 #if FW_AMPCS_COMPATIBLE
4220 this->m_logOut_OutputPort[0].
invoke(
4229 #if FW_ENABLE_TEXT_LOGGING
4230 if (this->m_LogText_OutputPort[0].isConnected()) {
4231 #if FW_OBJECT_NAMES == 1
4232 const char* _formatString =
4233 "(%s) %s: Still waiting for sequence file to complete";
4235 const char* _formatString =
4236 "%s: Still waiting for sequence file to complete";
4243 this->m_objName.toChar(),
4245 "CS_JoinWaitingNotComplete "
4248 this->m_LogText_OutputPort[0].invoke(
4268 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4270 this->m_timeCaller_OutputPort[0].isConnected() &&
4273 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4287 this->m_tlmOut_OutputPort[0].
invoke(
4301 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4303 this->m_timeCaller_OutputPort[0].isConnected() &&
4306 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4320 this->m_tlmOut_OutputPort[0].
invoke(
4334 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4336 this->m_timeCaller_OutputPort[0].isConnected() &&
4339 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4353 this->m_tlmOut_OutputPort[0].
invoke(
4367 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4369 this->m_timeCaller_OutputPort[0].isConnected() &&
4372 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4386 this->m_tlmOut_OutputPort[0].
invoke(
4400 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4402 this->m_timeCaller_OutputPort[0].isConnected() &&
4405 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4419 this->m_tlmOut_OutputPort[0].
invoke(
4434 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4436 this->m_timeCaller_OutputPort[0].
invoke(_time);
4451 ComponentIpcSerializableBuffer msg;
4474 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
4476 if (msgType == CMDSEQUENCER_COMPONENT_EXIT) {
4481 deserStatus = msg.deserialize(portNum);
4489 case CMDRESPONSEIN_CMDRESPONSE: {
4492 deserStatus = msg.deserialize(opCode);
4500 deserStatus = msg.deserialize(cmdSeq);
4528 deserStatus = msg.deserialize(key);
4543 case SCHEDIN_SCHED: {
4546 deserStatus = msg.deserialize(context);
4561 case SEQCANCELIN_CMDSEQCANCEL: {
4569 case SEQRUNIN_CMDSEQIN: {
4590 deserStatus = msg.deserialize(opCode);
4598 deserStatus = msg.deserialize(cmdSeq);
4619 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4634 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4647 #if FW_CMD_CHECK_RESIDUAL
4649 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4668 case CMD_CS_VALIDATE: {
4671 deserStatus = msg.deserialize(opCode);
4679 deserStatus = msg.deserialize(cmdSeq);
4700 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4713 #if FW_CMD_CHECK_RESIDUAL
4715 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4733 case CMD_CS_CANCEL: {
4736 deserStatus = msg.deserialize(opCode);
4744 deserStatus = msg.deserialize(cmdSeq);
4763 #if FW_CMD_CHECK_RESIDUAL
4765 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4780 case CMD_CS_START: {
4783 deserStatus = msg.deserialize(opCode);
4791 deserStatus = msg.deserialize(cmdSeq);
4810 #if FW_CMD_CHECK_RESIDUAL
4812 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4830 deserStatus = msg.deserialize(opCode);
4838 deserStatus = msg.deserialize(cmdSeq);
4857 #if FW_CMD_CHECK_RESIDUAL
4859 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4877 deserStatus = msg.deserialize(opCode);
4885 deserStatus = msg.deserialize(cmdSeq);
4904 #if FW_CMD_CHECK_RESIDUAL
4906 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4921 case CMD_CS_MANUAL: {
4924 deserStatus = msg.deserialize(opCode);
4932 deserStatus = msg.deserialize(cmdSeq);
4951 #if FW_CMD_CHECK_RESIDUAL
4953 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4968 case CMD_CS_JOIN_WAIT: {
4971 deserStatus = msg.deserialize(opCode);
4979 deserStatus = msg.deserialize(cmdSeq);
4998 #if FW_CMD_CHECK_RESIDUAL
5000 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5025 void CmdSequencerComponentBase ::
5037 const U32 idBase = callComp->
getIdBase();
5041 switch (opCode - idBase) {
5043 compPtr->CS_RUN_cmdHandlerBase(
5052 compPtr->CS_VALIDATE_cmdHandlerBase(
5061 compPtr->CS_CANCEL_cmdHandlerBase(
5070 compPtr->CS_START_cmdHandlerBase(
5079 compPtr->CS_STEP_cmdHandlerBase(
5088 compPtr->CS_AUTO_cmdHandlerBase(
5097 compPtr->CS_MANUAL_cmdHandlerBase(
5106 compPtr->CS_JOIN_WAIT_cmdHandlerBase(
5120 void CmdSequencerComponentBase ::
5121 m_p_cmdResponseIn_in(
5131 compPtr->cmdResponseIn_handlerBase(
5139 void CmdSequencerComponentBase ::
5148 compPtr->pingIn_handlerBase(
5154 void CmdSequencerComponentBase ::
5163 compPtr->schedIn_handlerBase(
5169 void CmdSequencerComponentBase ::
5177 compPtr->seqCancelIn_handlerBase(portNum);
5180 void CmdSequencerComponentBase ::
5189 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
FwIndexType FwQueueSizeType
#define FW_LOG_STRING_MAX_SIZE
Max size of log string parameter type.
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.
@ 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::QueueStatus createQueue(NATIVE_INT_TYPE depth, NATIVE_INT_TYPE 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
virtual SerializeStatus deserialize(SerializeBufferBase &buffer)
deserialization function
void format(const CHAR *formatString,...)
write formatted string to buffer
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const
serialization function
const char * toChar() const
@ QUEUE_OK
message sent/received okay
QueueStatus send(const Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE priority, QueueBlocking block)
send a message
QueueStatus receive(Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE &priority, QueueBlocking block)
receive a message
@ QUEUE_BLOCKING
Queue receive blocks until a message arrives.
@ QUEUE_NONBLOCKING
Queue receive always returns even if there is no message.
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)
void seqCancelIn_handlerBase(FwIndexType portNum)
Handler base-class function for input port seqCancelIn.
void log_WARNING_HI_CS_FileNotFound(const Fw::StringBase &fileName)
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.
void tlmWrite_CS_CancelCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
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 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 seqRunIn_preMsgHook(FwIndexType portNum, Fw::String &filename)
Pre-message hook for async input port seqRunIn.
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)
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)
@ 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 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
@ 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 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
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
@ 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...
virtual void seqRunIn_handler(FwIndexType portNum, Fw::String &filename)=0
Handler for input port seqRunIn.
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.
void seqRunIn_handlerBase(FwIndexType portNum, Fw::String &filename)
Handler base-class function for input port seqRunIn.
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 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)
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 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(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.