11 #if FW_ENABLE_TEXT_LOGGING
20 CMDRESPONSEIN_CMDRESPONSE,
23 SEQCANCELIN_CMDSEQCANCEL,
47 class ComponentIpcSerializableBuffer :
62 return sizeof(m_buff);
69 const U8* getBuffAddr()
const {
75 U8 m_buff[SERIALIZATION_SIZE];
99 this->m_cmdIn_InputPort[port].
init();
104 this->m_cmdIn_InputPort[port].
setPortNum(port);
106 #if FW_OBJECT_NAMES == 1
121 this->m_cmdIn_InputPort[port].setObjName(portName);
131 this->m_cmdResponseIn_InputPort[port].
init();
136 this->m_cmdResponseIn_InputPort[port].
setPortNum(port);
138 #if FW_OBJECT_NAMES == 1
153 this->m_cmdResponseIn_InputPort[port].setObjName(portName);
163 this->m_pingIn_InputPort[port].
init();
168 this->m_pingIn_InputPort[port].
setPortNum(port);
170 #if FW_OBJECT_NAMES == 1
185 this->m_pingIn_InputPort[port].setObjName(portName);
195 this->m_schedIn_InputPort[port].
init();
200 this->m_schedIn_InputPort[port].
setPortNum(port);
202 #if FW_OBJECT_NAMES == 1
217 this->m_schedIn_InputPort[port].setObjName(portName);
227 this->m_seqCancelIn_InputPort[port].
init();
232 this->m_seqCancelIn_InputPort[port].
setPortNum(port);
234 #if FW_OBJECT_NAMES == 1
249 this->m_seqCancelIn_InputPort[port].setObjName(portName);
259 this->m_seqRunIn_InputPort[port].
init();
264 this->m_seqRunIn_InputPort[port].
setPortNum(port);
266 #if FW_OBJECT_NAMES == 1
281 this->m_seqRunIn_InputPort[port].setObjName(portName);
285 #if FW_ENABLE_TEXT_LOGGING == 1
289 port < static_cast<PlatformIntType>(this->getNum_LogText_OutputPorts());
292 this->m_LogText_OutputPort[port].
init();
294 #if FW_OBJECT_NAMES == 1
309 this->m_LogText_OutputPort[port].setObjName(portName);
320 this->m_cmdRegOut_OutputPort[port].
init();
322 #if FW_OBJECT_NAMES == 1
337 this->m_cmdRegOut_OutputPort[port].setObjName(portName);
347 this->m_cmdResponseOut_OutputPort[port].
init();
349 #if FW_OBJECT_NAMES == 1
364 this->m_cmdResponseOut_OutputPort[port].setObjName(portName);
374 this->m_logOut_OutputPort[port].
init();
376 #if FW_OBJECT_NAMES == 1
391 this->m_logOut_OutputPort[port].setObjName(portName);
401 this->m_timeCaller_OutputPort[port].
init();
403 #if FW_OBJECT_NAMES == 1
418 this->m_timeCaller_OutputPort[port].setObjName(portName);
428 this->m_tlmOut_OutputPort[port].
init();
430 #if FW_OBJECT_NAMES == 1
445 this->m_tlmOut_OutputPort[port].setObjName(portName);
455 this->m_comCmdOut_OutputPort[port].
init();
457 #if FW_OBJECT_NAMES == 1
472 this->m_comCmdOut_OutputPort[port].setObjName(portName);
482 this->m_pingOut_OutputPort[port].
init();
484 #if FW_OBJECT_NAMES == 1
499 this->m_pingOut_OutputPort[port].setObjName(portName);
509 this->m_seqDone_OutputPort[port].
init();
511 #if FW_OBJECT_NAMES == 1
526 this->m_seqDone_OutputPort[port].setObjName(portName);
532 ComponentIpcSerializableBuffer::SERIALIZATION_SIZE
552 return &this->m_cmdIn_InputPort[portNum];
567 return &this->m_cmdResponseIn_InputPort[portNum];
578 return &this->m_pingIn_InputPort[portNum];
589 return &this->m_schedIn_InputPort[portNum];
600 return &this->m_seqCancelIn_InputPort[portNum];
611 return &this->m_seqRunIn_InputPort[portNum];
618 #if FW_ENABLE_TEXT_LOGGING == 1
620 void CmdSequencerComponentBase ::
621 set_LogText_OutputPort(
627 portNum < this->getNum_LogText_OutputPorts(),
631 this->m_LogText_OutputPort[portNum].addCallPort(port);
647 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
661 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
675 this->m_logOut_OutputPort[portNum].
addCallPort(port);
689 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
703 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
721 this->m_comCmdOut_OutputPort[portNum].
addCallPort(port);
735 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
749 this->m_seqDone_OutputPort[portNum].
addCallPort(port);
752 #if FW_PORT_SERIALIZATION
758 #if FW_ENABLE_TEXT_LOGGING == 1
760 void CmdSequencerComponentBase ::
761 set_LogText_OutputPort(
763 Fw::InputSerializePort* port
767 portNum < this->getNum_LogText_OutputPorts(),
771 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
779 Fw::InputSerializePort* port
787 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
793 Fw::InputSerializePort* port
801 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
807 Fw::InputSerializePort* port
815 this->m_logOut_OutputPort[portNum].registerSerialPort(port);
821 Fw::InputSerializePort* port
829 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
835 Fw::InputSerializePort* port
843 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
848 #if FW_PORT_SERIALIZATION
857 Fw::InputSerializePort* port
865 this->m_comCmdOut_OutputPort[portNum].registerSerialPort(port);
871 Fw::InputSerializePort* port
879 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
885 Fw::InputSerializePort* port
893 this->m_seqDone_OutputPort[portNum].registerSerialPort(port);
905 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
907 this->m_cmdRegOut_OutputPort[0].
invoke(
911 this->m_cmdRegOut_OutputPort[0].
invoke(
915 this->m_cmdRegOut_OutputPort[0].
invoke(
919 this->m_cmdRegOut_OutputPort[0].
invoke(
923 this->m_cmdRegOut_OutputPort[0].
invoke(
927 this->m_cmdRegOut_OutputPort[0].
invoke(
931 this->m_cmdRegOut_OutputPort[0].
invoke(
935 this->m_cmdRegOut_OutputPort[0].
invoke(
946 Fw::ActiveComponentBase(compName)
1005 #if FW_ENABLE_TEXT_LOGGING == 1
1008 getNum_LogText_OutputPorts()
const
1071 #if FW_ENABLE_TEXT_LOGGING == 1
1073 bool CmdSequencerComponentBase ::
1077 portNum < this->getNum_LogText_OutputPorts(),
1081 return this->m_LogText_OutputPort[portNum].isConnected();
1094 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
1105 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
1116 return this->m_logOut_OutputPort[portNum].
isConnected();
1127 return this->m_timeCaller_OutputPort[portNum].
isConnected();
1138 return this->m_tlmOut_OutputPort[portNum].
isConnected();
1153 return this->m_comCmdOut_OutputPort[portNum].
isConnected();
1164 return this->m_pingOut_OutputPort[portNum].
isConnected();
1175 return this->m_seqDone_OutputPort[portNum].
isConnected();
1205 ComponentIpcSerializableBuffer msg;
1209 _status = msg.serialize(
1218 _status = msg.serialize(portNum);
1225 _status = msg.serialize(opCode);
1232 _status = msg.serialize(cmdSeq);
1239 _status = msg.serialize(response);
1272 ComponentIpcSerializableBuffer msg;
1276 _status = msg.serialize(
1285 _status = msg.serialize(portNum);
1292 _status = msg.serialize(key);
1325 ComponentIpcSerializableBuffer msg;
1329 _status = msg.serialize(
1338 _status = msg.serialize(portNum);
1345 _status = msg.serialize(context);
1372 ComponentIpcSerializableBuffer msg;
1376 _status = msg.serialize(
1385 _status = msg.serialize(portNum);
1418 ComponentIpcSerializableBuffer msg;
1422 _status = msg.serialize(
1431 _status = msg.serialize(portNum);
1438 _status = msg.serialize(filename);
1521 this->m_comCmdOut_OutputPort[portNum].
invoke(
1537 this->m_pingOut_OutputPort[portNum].
invoke(
1554 this->m_seqDone_OutputPort[portNum].
invoke(
1572 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1573 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1594 ComponentIpcSerializableBuffer msg;
1607 _status = msg.serialize(port);
1613 _status = msg.serialize(opCode);
1619 _status = msg.serialize(cmdSeq);
1625 _status = msg.serialize(args);
1653 ComponentIpcSerializableBuffer msg;
1657 _status = msg.serialize(
static_cast<NATIVE_INT_TYPE>(CMD_CS_VALIDATE));
1666 _status = msg.serialize(port);
1672 _status = msg.serialize(opCode);
1678 _status = msg.serialize(cmdSeq);
1684 _status = msg.serialize(args);
1712 ComponentIpcSerializableBuffer msg;
1725 _status = msg.serialize(port);
1731 _status = msg.serialize(opCode);
1737 _status = msg.serialize(cmdSeq);
1743 _status = msg.serialize(args);
1771 ComponentIpcSerializableBuffer msg;
1784 _status = msg.serialize(port);
1790 _status = msg.serialize(opCode);
1796 _status = msg.serialize(cmdSeq);
1802 _status = msg.serialize(args);
1830 ComponentIpcSerializableBuffer msg;
1843 _status = msg.serialize(port);
1849 _status = msg.serialize(opCode);
1855 _status = msg.serialize(cmdSeq);
1861 _status = msg.serialize(args);
1889 ComponentIpcSerializableBuffer msg;
1902 _status = msg.serialize(port);
1908 _status = msg.serialize(opCode);
1914 _status = msg.serialize(cmdSeq);
1920 _status = msg.serialize(args);
1948 ComponentIpcSerializableBuffer msg;
1961 _status = msg.serialize(port);
1967 _status = msg.serialize(opCode);
1973 _status = msg.serialize(cmdSeq);
1979 _status = msg.serialize(args);
2007 ComponentIpcSerializableBuffer msg;
2011 _status = msg.serialize(
static_cast<NATIVE_INT_TYPE>(CMD_CS_JOIN_WAIT));
2020 _status = msg.serialize(port);
2026 _status = msg.serialize(opCode);
2032 _status = msg.serialize(cmdSeq);
2038 _status = msg.serialize(args);
2159 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2160 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2168 if (this->m_logOut_OutputPort[0].isConnected()) {
2172 #if FW_AMPCS_COMPATIBLE
2181 _status = fileName.
serialize(_logBuff, 60);
2187 this->m_logOut_OutputPort[0].
invoke(
2196 #if FW_ENABLE_TEXT_LOGGING
2197 if (this->m_LogText_OutputPort[0].isConnected()) {
2198 #if FW_OBJECT_NAMES == 1
2199 const char* _formatString =
2200 "(%s) %s: Loaded sequence %s";
2202 const char* _formatString =
2203 "%s: Loaded sequence %s";
2215 "CS_SequenceLoaded ",
2222 this->m_LogText_OutputPort[0].invoke(
2237 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2238 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2246 if (this->m_logOut_OutputPort[0].isConnected()) {
2250 #if FW_AMPCS_COMPATIBLE
2259 _status = fileName.
serialize(_logBuff, 60);
2265 this->m_logOut_OutputPort[0].
invoke(
2274 #if FW_ENABLE_TEXT_LOGGING
2275 if (this->m_LogText_OutputPort[0].isConnected()) {
2276 #if FW_OBJECT_NAMES == 1
2277 const char* _formatString =
2278 "(%s) %s: Sequence file %s canceled";
2280 const char* _formatString =
2281 "%s: Sequence file %s canceled";
2293 "CS_SequenceCanceled ",
2300 this->m_LogText_OutputPort[0].invoke(
2315 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2316 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2324 if (this->m_logOut_OutputPort[0].isConnected()) {
2328 #if FW_AMPCS_COMPATIBLE
2337 _status = fileName.
serialize(_logBuff, 60);
2343 this->m_logOut_OutputPort[0].
invoke(
2352 #if FW_ENABLE_TEXT_LOGGING
2353 if (this->m_LogText_OutputPort[0].isConnected()) {
2354 #if FW_OBJECT_NAMES == 1
2355 const char* _formatString =
2356 "(%s) %s: Error reading sequence file %s";
2358 const char* _formatString =
2359 "%s: Error reading sequence file %s";
2371 "CS_FileReadError ",
2378 this->m_LogText_OutputPort[0].invoke(
2397 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2398 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2406 if (this->m_logOut_OutputPort[0].isConnected()) {
2410 #if FW_AMPCS_COMPATIBLE
2419 _status = fileName.
serialize(_logBuff, 60);
2425 #if FW_AMPCS_COMPATIBLE
2441 #if FW_AMPCS_COMPATIBLE
2444 static_cast<U8>(
sizeof(I32))
2457 this->m_logOut_OutputPort[0].
invoke(
2466 #if FW_ENABLE_TEXT_LOGGING
2467 if (this->m_LogText_OutputPort[0].isConnected()) {
2468 #if FW_OBJECT_NAMES == 1
2469 const char* _formatString =
2470 "(%s) %s: Sequence file %s invalid. Stage: %s Error: %" PRIi32
"";
2472 const char* _formatString =
2473 "%s: Sequence file %s invalid. Stage: %s Error: %" PRIi32
"";
2479 stage.toString(stageStr);
2497 this->m_LogText_OutputPort[0].invoke(
2516 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2517 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2525 if (this->m_logOut_OutputPort[0].isConnected()) {
2529 #if FW_AMPCS_COMPATIBLE
2538 _status = fileName.
serialize(_logBuff, 60);
2544 #if FW_AMPCS_COMPATIBLE
2547 static_cast<U8>(
sizeof(U32))
2554 _status = _logBuff.
serialize(recordNumber);
2560 #if FW_AMPCS_COMPATIBLE
2563 static_cast<U8>(
sizeof(I32))
2576 this->m_logOut_OutputPort[0].
invoke(
2585 #if FW_ENABLE_TEXT_LOGGING
2586 if (this->m_LogText_OutputPort[0].isConnected()) {
2587 #if FW_OBJECT_NAMES == 1
2588 const char* _formatString =
2589 "(%s) %s: Sequence file %s: Record %" PRIu32
" invalid. Err: %" PRIi32
"";
2591 const char* _formatString =
2592 "%s: Sequence file %s: Record %" PRIu32
" invalid. Err: %" PRIi32
"";
2604 "CS_RecordInvalid ",
2613 this->m_LogText_OutputPort[0].invoke(
2631 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2632 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2640 if (this->m_logOut_OutputPort[0].isConnected()) {
2644 #if FW_AMPCS_COMPATIBLE
2653 _status = fileName.
serialize(_logBuff, 60);
2659 #if FW_AMPCS_COMPATIBLE
2662 static_cast<U8>(
sizeof(U32))
2675 this->m_logOut_OutputPort[0].
invoke(
2684 #if FW_ENABLE_TEXT_LOGGING
2685 if (this->m_LogText_OutputPort[0].isConnected()) {
2686 #if FW_OBJECT_NAMES == 1
2687 const char* _formatString =
2688 "(%s) %s: Sequence file %s too large. Size: %" PRIu32
"";
2690 const char* _formatString =
2691 "%s: Sequence file %s too large. Size: %" PRIu32
"";
2703 "CS_FileSizeError ",
2711 this->m_LogText_OutputPort[0].invoke(
2726 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2727 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2735 if (this->m_logOut_OutputPort[0].isConnected()) {
2739 #if FW_AMPCS_COMPATIBLE
2748 _status = fileName.
serialize(_logBuff, 60);
2754 this->m_logOut_OutputPort[0].
invoke(
2763 #if FW_ENABLE_TEXT_LOGGING
2764 if (this->m_LogText_OutputPort[0].isConnected()) {
2765 #if FW_OBJECT_NAMES == 1
2766 const char* _formatString =
2767 "(%s) %s: Sequence file %s not found.";
2769 const char* _formatString =
2770 "%s: Sequence file %s not found.";
2789 this->m_LogText_OutputPort[0].invoke(
2808 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2809 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2817 if (this->m_logOut_OutputPort[0].isConnected()) {
2821 #if FW_AMPCS_COMPATIBLE
2830 _status = fileName.
serialize(_logBuff, 60);
2836 #if FW_AMPCS_COMPATIBLE
2839 static_cast<U8>(
sizeof(U32))
2846 _status = _logBuff.
serialize(storedCRC);
2852 #if FW_AMPCS_COMPATIBLE
2855 static_cast<U8>(
sizeof(U32))
2862 _status = _logBuff.
serialize(computedCRC);
2868 this->m_logOut_OutputPort[0].
invoke(
2877 #if FW_ENABLE_TEXT_LOGGING
2878 if (this->m_LogText_OutputPort[0].isConnected()) {
2879 #if FW_OBJECT_NAMES == 1
2880 const char* _formatString =
2881 "(%s) %s: Sequence file %s had invalid CRC. Stored 0x%" PRIx32
", Computed 0x%" PRIx32
".";
2883 const char* _formatString =
2884 "%s: Sequence file %s had invalid CRC. Stored 0x%" PRIx32
", Computed 0x%" PRIx32
".";
2896 "CS_FileCrcFailure ",
2905 this->m_LogText_OutputPort[0].invoke(
2924 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2925 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2933 if (this->m_logOut_OutputPort[0].isConnected()) {
2937 #if FW_AMPCS_COMPATIBLE
2946 _status = fileName.
serialize(_logBuff, 60);
2952 #if FW_AMPCS_COMPATIBLE
2955 static_cast<U8>(
sizeof(U32))
2962 _status = _logBuff.
serialize(recordNumber);
2968 #if FW_AMPCS_COMPATIBLE
2971 static_cast<U8>(
sizeof(U32))
2984 this->m_logOut_OutputPort[0].
invoke(
2993 #if FW_ENABLE_TEXT_LOGGING
2994 if (this->m_LogText_OutputPort[0].isConnected()) {
2995 #if FW_OBJECT_NAMES == 1
2996 const char* _formatString =
2997 "(%s) %s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") complete";
2999 const char* _formatString =
3000 "%s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") complete";
3012 "CS_CommandComplete ",
3021 this->m_LogText_OutputPort[0].invoke(
3036 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3037 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3045 if (this->m_logOut_OutputPort[0].isConnected()) {
3049 #if FW_AMPCS_COMPATIBLE
3058 _status = fileName.
serialize(_logBuff, 60);
3064 this->m_logOut_OutputPort[0].
invoke(
3073 #if FW_ENABLE_TEXT_LOGGING
3074 if (this->m_LogText_OutputPort[0].isConnected()) {
3075 #if FW_OBJECT_NAMES == 1
3076 const char* _formatString =
3077 "(%s) %s: Sequence file %s complete";
3079 const char* _formatString =
3080 "%s: Sequence file %s complete";
3092 "CS_SequenceComplete ",
3099 this->m_LogText_OutputPort[0].invoke(
3119 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3120 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3128 if (this->m_logOut_OutputPort[0].isConnected()) {
3132 #if FW_AMPCS_COMPATIBLE
3141 _status = fileName.
serialize(_logBuff, 60);
3147 #if FW_AMPCS_COMPATIBLE
3150 static_cast<U8>(
sizeof(U32))
3157 _status = _logBuff.
serialize(recordNumber);
3163 #if FW_AMPCS_COMPATIBLE
3166 static_cast<U8>(
sizeof(U32))
3179 #if FW_AMPCS_COMPATIBLE
3182 static_cast<U8>(
sizeof(U32))
3189 _status = _logBuff.
serialize(errorStatus);
3195 this->m_logOut_OutputPort[0].
invoke(
3204 #if FW_ENABLE_TEXT_LOGGING
3205 if (this->m_LogText_OutputPort[0].isConnected()) {
3206 #if FW_OBJECT_NAMES == 1
3207 const char* _formatString =
3208 "(%s) %s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") completed with error %" PRIu32
"";
3210 const char* _formatString =
3211 "%s: Sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") completed with error %" PRIu32
"";
3233 this->m_LogText_OutputPort[0].invoke(
3248 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3249 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3257 if (this->m_logOut_OutputPort[0].isConnected()) {
3260 #if FW_AMPCS_COMPATIBLE
3270 this->m_logOut_OutputPort[0].
invoke(
3279 #if FW_ENABLE_TEXT_LOGGING
3280 if (this->m_LogText_OutputPort[0].isConnected()) {
3281 #if FW_OBJECT_NAMES == 1
3282 const char* _formatString =
3283 "(%s) %s: Invalid mode";
3285 const char* _formatString =
3304 this->m_LogText_OutputPort[0].invoke(
3323 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3324 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3332 if (this->m_logOut_OutputPort[0].isConnected()) {
3336 #if FW_AMPCS_COMPATIBLE
3345 _status = fileName.
serialize(_logBuff, 60);
3351 #if FW_AMPCS_COMPATIBLE
3354 static_cast<U8>(
sizeof(U32))
3361 _status = _logBuff.
serialize(header_records);
3367 #if FW_AMPCS_COMPATIBLE
3370 static_cast<U8>(
sizeof(U32))
3377 _status = _logBuff.
serialize(extra_bytes);
3383 this->m_logOut_OutputPort[0].
invoke(
3392 #if FW_ENABLE_TEXT_LOGGING
3393 if (this->m_LogText_OutputPort[0].isConnected()) {
3394 #if FW_OBJECT_NAMES == 1
3395 const char* _formatString =
3396 "(%s) %s: Sequence file %s header records mismatch: %" PRIu32
" in header, found %" PRIu32
" extra bytes.";
3398 const char* _formatString =
3399 "%s: Sequence file %s header records mismatch: %" PRIu32
" in header, found %" PRIu32
" extra bytes.";
3411 "CS_RecordMismatch ",
3420 this->m_LogText_OutputPort[0].invoke(
3439 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3440 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3448 if (this->m_logOut_OutputPort[0].isConnected()) {
3452 #if FW_AMPCS_COMPATIBLE
3461 _status = fileName.
serialize(_logBuff, 60);
3467 #if FW_AMPCS_COMPATIBLE
3470 static_cast<U8>(
sizeof(U16))
3477 _status = _logBuff.
serialize(time_base);
3483 #if FW_AMPCS_COMPATIBLE
3486 static_cast<U8>(
sizeof(U16))
3493 _status = _logBuff.
serialize(seq_time_base);
3499 this->m_logOut_OutputPort[0].
invoke(
3508 #if FW_ENABLE_TEXT_LOGGING
3509 if (this->m_LogText_OutputPort[0].isConnected()) {
3510 #if FW_OBJECT_NAMES == 1
3511 const char* _formatString =
3512 "(%s) %s: Sequence file %s: Current time base doesn't match sequence time: base: %" PRIu16
" seq: %" PRIu16
"";
3514 const char* _formatString =
3515 "%s: Sequence file %s: Current time base doesn't match sequence time: base: %" PRIu16
" seq: %" PRIu16
"";
3527 "CS_TimeBaseMismatch ",
3536 this->m_LogText_OutputPort[0].invoke(
3555 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3556 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3564 if (this->m_logOut_OutputPort[0].isConnected()) {
3568 #if FW_AMPCS_COMPATIBLE
3577 _status = fileName.
serialize(_logBuff, 60);
3583 #if FW_AMPCS_COMPATIBLE
3586 static_cast<U8>(
sizeof(
U8))
3593 _status = _logBuff.
serialize(currTimeBase);
3599 #if FW_AMPCS_COMPATIBLE
3602 static_cast<U8>(
sizeof(
U8))
3609 _status = _logBuff.
serialize(seqTimeBase);
3615 this->m_logOut_OutputPort[0].
invoke(
3624 #if FW_ENABLE_TEXT_LOGGING
3625 if (this->m_LogText_OutputPort[0].isConnected()) {
3626 #if FW_OBJECT_NAMES == 1
3627 const char* _formatString =
3628 "(%s) %s: Sequence file %s: Current time context doesn't match sequence context: base: %" PRIu8
" seq: %" PRIu8
"";
3630 const char* _formatString =
3631 "%s: Sequence file %s: Current time context doesn't match sequence context: base: %" PRIu8
" seq: %" PRIu8
"";
3643 "CS_TimeContextMismatch ",
3652 this->m_LogText_OutputPort[0].invoke(
3667 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3668 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3676 if (this->m_logOut_OutputPort[0].isConnected()) {
3680 #if FW_AMPCS_COMPATIBLE
3689 _status = filename.
serialize(_logBuff, 60);
3695 this->m_logOut_OutputPort[0].
invoke(
3704 #if FW_ENABLE_TEXT_LOGGING
3705 if (this->m_LogText_OutputPort[0].isConnected()) {
3706 #if FW_OBJECT_NAMES == 1
3707 const char* _formatString =
3708 "(%s) %s: Local request for sequence %s started.";
3710 const char* _formatString =
3711 "%s: Local request for sequence %s started.";
3723 "CS_PortSequenceStarted ",
3730 this->m_LogText_OutputPort[0].invoke(
3745 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3746 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3754 if (this->m_logOut_OutputPort[0].isConnected()) {
3758 #if FW_AMPCS_COMPATIBLE
3767 #if FW_AMPCS_COMPATIBLE
3770 static_cast<U8>(
sizeof(U32))
3783 this->m_logOut_OutputPort[0].
invoke(
3792 #if FW_ENABLE_TEXT_LOGGING
3793 if (this->m_LogText_OutputPort[0].isConnected()) {
3794 #if FW_OBJECT_NAMES == 1
3795 const char* _formatString =
3796 "(%s) %s: Command complete status received while no sequences active. Opcode: %" PRIu32
"";
3798 const char* _formatString =
3799 "%s: Command complete status received while no sequences active. Opcode: %" PRIu32
"";
3811 "CS_UnexpectedCompletion ",
3818 this->m_LogText_OutputPort[0].invoke(
3833 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3834 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3842 if (this->m_logOut_OutputPort[0].isConnected()) {
3846 #if FW_AMPCS_COMPATIBLE
3855 #if FW_AMPCS_COMPATIBLE
3871 this->m_logOut_OutputPort[0].
invoke(
3880 #if FW_ENABLE_TEXT_LOGGING
3881 if (this->m_LogText_OutputPort[0].isConnected()) {
3882 #if FW_OBJECT_NAMES == 1
3883 const char* _formatString =
3884 "(%s) %s: Sequencer switched to %s step mode";
3886 const char* _formatString =
3887 "%s: Sequencer switched to %s step mode";
3893 mode.toString(modeStr);
3909 this->m_LogText_OutputPort[0].invoke(
3924 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3925 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
3933 if (this->m_logOut_OutputPort[0].isConnected()) {
3936 #if FW_AMPCS_COMPATIBLE
3946 this->m_logOut_OutputPort[0].
invoke(
3955 #if FW_ENABLE_TEXT_LOGGING
3956 if (this->m_LogText_OutputPort[0].isConnected()) {
3957 #if FW_OBJECT_NAMES == 1
3958 const char* _formatString =
3959 "(%s) %s: No sequence active.";
3961 const char* _formatString =
3962 "%s: No sequence active.";
3974 "CS_NoSequenceActive "
3980 this->m_LogText_OutputPort[0].invoke(
3995 if (this->m_timeCaller_OutputPort[0].isConnected()) {
3996 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4004 if (this->m_logOut_OutputPort[0].isConnected()) {
4008 #if FW_AMPCS_COMPATIBLE
4017 _status = filename.
serialize(_logBuff, 60);
4023 this->m_logOut_OutputPort[0].
invoke(
4032 #if FW_ENABLE_TEXT_LOGGING
4033 if (this->m_LogText_OutputPort[0].isConnected()) {
4034 #if FW_OBJECT_NAMES == 1
4035 const char* _formatString =
4036 "(%s) %s: Sequence %s is valid.";
4038 const char* _formatString =
4039 "%s: Sequence %s is valid.";
4051 "CS_SequenceValid ",
4058 this->m_LogText_OutputPort[0].invoke(
4076 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4077 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4085 if (this->m_logOut_OutputPort[0].isConnected()) {
4089 #if FW_AMPCS_COMPATIBLE
4098 _status = filename.
serialize(_logBuff, 60);
4104 #if FW_AMPCS_COMPATIBLE
4107 static_cast<U8>(
sizeof(U32))
4120 this->m_logOut_OutputPort[0].
invoke(
4129 #if FW_ENABLE_TEXT_LOGGING
4130 if (this->m_LogText_OutputPort[0].isConnected()) {
4131 #if FW_OBJECT_NAMES == 1
4132 const char* _formatString =
4133 "(%s) %s: Sequence %s timed out on command %" PRIu32
"";
4135 const char* _formatString =
4136 "%s: Sequence %s timed out on command %" PRIu32
"";
4148 "CS_SequenceTimeout ",
4156 this->m_LogText_OutputPort[0].invoke(
4174 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4175 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4183 if (this->m_logOut_OutputPort[0].isConnected()) {
4187 #if FW_AMPCS_COMPATIBLE
4196 _status = filename.
serialize(_logBuff, 60);
4202 #if FW_AMPCS_COMPATIBLE
4205 static_cast<U8>(
sizeof(U32))
4218 this->m_logOut_OutputPort[0].
invoke(
4227 #if FW_ENABLE_TEXT_LOGGING
4228 if (this->m_LogText_OutputPort[0].isConnected()) {
4229 #if FW_OBJECT_NAMES == 1
4230 const char* _formatString =
4231 "(%s) %s: Sequence %s command %" PRIu32
" stepped";
4233 const char* _formatString =
4234 "%s: Sequence %s command %" PRIu32
" stepped";
4254 this->m_LogText_OutputPort[0].invoke(
4269 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4270 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4278 if (this->m_logOut_OutputPort[0].isConnected()) {
4282 #if FW_AMPCS_COMPATIBLE
4291 _status = filename.
serialize(_logBuff, 60);
4297 this->m_logOut_OutputPort[0].
invoke(
4306 #if FW_ENABLE_TEXT_LOGGING
4307 if (this->m_LogText_OutputPort[0].isConnected()) {
4308 #if FW_OBJECT_NAMES == 1
4309 const char* _formatString =
4310 "(%s) %s: Sequence %s started";
4312 const char* _formatString =
4313 "%s: Sequence %s started";
4332 this->m_LogText_OutputPort[0].invoke(
4351 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4352 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4360 if (this->m_logOut_OutputPort[0].isConnected()) {
4364 #if FW_AMPCS_COMPATIBLE
4373 _status = filename.
serialize(_logBuff, 60);
4379 #if FW_AMPCS_COMPATIBLE
4382 static_cast<U8>(
sizeof(U32))
4389 _status = _logBuff.
serialize(recordNumber);
4395 #if FW_AMPCS_COMPATIBLE
4398 static_cast<U8>(
sizeof(U32))
4411 this->m_logOut_OutputPort[0].
invoke(
4420 #if FW_ENABLE_TEXT_LOGGING
4421 if (this->m_LogText_OutputPort[0].isConnected()) {
4422 #if FW_OBJECT_NAMES == 1
4423 const char* _formatString =
4424 "(%s) %s: Start waiting for sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") to complete";
4426 const char* _formatString =
4427 "%s: Start waiting for sequence file %s: Command %" PRIu32
" (opcode %" PRIu32
") to complete";
4448 this->m_LogText_OutputPort[0].invoke(
4463 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4464 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
4472 if (this->m_logOut_OutputPort[0].isConnected()) {
4475 #if FW_AMPCS_COMPATIBLE
4485 this->m_logOut_OutputPort[0].
invoke(
4494 #if FW_ENABLE_TEXT_LOGGING
4495 if (this->m_LogText_OutputPort[0].isConnected()) {
4496 #if FW_OBJECT_NAMES == 1
4497 const char* _formatString =
4498 "(%s) %s: Still waiting for sequence file to complete";
4500 const char* _formatString =
4501 "%s: Still waiting for sequence file to complete";
4513 "CS_JoinWaitingNotComplete "
4519 this->m_LogText_OutputPort[0].invoke(
4539 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4541 this->m_timeCaller_OutputPort[0].isConnected() &&
4544 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4558 this->m_tlmOut_OutputPort[0].
invoke(
4572 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4574 this->m_timeCaller_OutputPort[0].isConnected() &&
4577 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4591 this->m_tlmOut_OutputPort[0].
invoke(
4605 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4607 this->m_timeCaller_OutputPort[0].isConnected() &&
4610 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4624 this->m_tlmOut_OutputPort[0].
invoke(
4638 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4640 this->m_timeCaller_OutputPort[0].isConnected() &&
4643 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4657 this->m_tlmOut_OutputPort[0].
invoke(
4671 if (this->m_tlmOut_OutputPort[0].isConnected()) {
4673 this->m_timeCaller_OutputPort[0].isConnected() &&
4676 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
4690 this->m_tlmOut_OutputPort[0].
invoke(
4705 if (this->m_timeCaller_OutputPort[0].isConnected()) {
4707 this->m_timeCaller_OutputPort[0].
invoke(_time);
4722 ComponentIpcSerializableBuffer msg;
4745 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
4747 if (msgType == CMDSEQUENCER_COMPONENT_EXIT) {
4752 deserStatus = msg.deserialize(portNum);
4760 case CMDRESPONSEIN_CMDRESPONSE: {
4763 deserStatus = msg.deserialize(opCode);
4771 deserStatus = msg.deserialize(cmdSeq);
4799 deserStatus = msg.deserialize(key);
4814 case SCHEDIN_SCHED: {
4817 deserStatus = msg.deserialize(context);
4832 case SEQCANCELIN_CMDSEQCANCEL: {
4840 case SEQRUNIN_CMDSEQIN: {
4861 deserStatus = msg.deserialize(opCode);
4869 deserStatus = msg.deserialize(cmdSeq);
4890 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4905 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4918 #if FW_CMD_CHECK_RESIDUAL
4920 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4939 case CMD_CS_VALIDATE: {
4942 deserStatus = msg.deserialize(opCode);
4950 deserStatus = msg.deserialize(cmdSeq);
4971 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
4984 #if FW_CMD_CHECK_RESIDUAL
4986 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5004 case CMD_CS_CANCEL: {
5007 deserStatus = msg.deserialize(opCode);
5015 deserStatus = msg.deserialize(cmdSeq);
5034 #if FW_CMD_CHECK_RESIDUAL
5036 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5051 case CMD_CS_START: {
5054 deserStatus = msg.deserialize(opCode);
5062 deserStatus = msg.deserialize(cmdSeq);
5081 #if FW_CMD_CHECK_RESIDUAL
5083 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5101 deserStatus = msg.deserialize(opCode);
5109 deserStatus = msg.deserialize(cmdSeq);
5128 #if FW_CMD_CHECK_RESIDUAL
5130 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5148 deserStatus = msg.deserialize(opCode);
5156 deserStatus = msg.deserialize(cmdSeq);
5175 #if FW_CMD_CHECK_RESIDUAL
5177 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5192 case CMD_CS_MANUAL: {
5195 deserStatus = msg.deserialize(opCode);
5203 deserStatus = msg.deserialize(cmdSeq);
5222 #if FW_CMD_CHECK_RESIDUAL
5224 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5239 case CMD_CS_JOIN_WAIT: {
5242 deserStatus = msg.deserialize(opCode);
5250 deserStatus = msg.deserialize(cmdSeq);
5269 #if FW_CMD_CHECK_RESIDUAL
5271 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
5296 void CmdSequencerComponentBase ::
5308 const U32 idBase = callComp->
getIdBase();
5309 FW_ASSERT(opCode >= idBase, opCode, idBase);
5312 switch (opCode - idBase) {
5314 compPtr->CS_RUN_cmdHandlerBase(
5323 compPtr->CS_VALIDATE_cmdHandlerBase(
5332 compPtr->CS_CANCEL_cmdHandlerBase(
5341 compPtr->CS_START_cmdHandlerBase(
5350 compPtr->CS_STEP_cmdHandlerBase(
5359 compPtr->CS_AUTO_cmdHandlerBase(
5368 compPtr->CS_MANUAL_cmdHandlerBase(
5377 compPtr->CS_JOIN_WAIT_cmdHandlerBase(
5391 void CmdSequencerComponentBase ::
5392 m_p_cmdResponseIn_in(
5402 compPtr->cmdResponseIn_handlerBase(
5410 void CmdSequencerComponentBase ::
5419 compPtr->pingIn_handlerBase(
5425 void CmdSequencerComponentBase ::
5434 compPtr->schedIn_handlerBase(
5440 void CmdSequencerComponentBase ::
5448 compPtr->seqCancelIn_handlerBase(portNum);
5451 void CmdSequencerComponentBase ::
5460 compPtr->seqRunIn_handlerBase(
PlatformIntType NATIVE_INT_TYPE
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
PlatformUIntType NATIVE_UINT_TYPE
int PlatformIntType
DefaultTypes.hpp provides fallback defaults for the platform types.
#define PRI_PlatformIntType
@ TB_NONE
No time base has been established.
PlatformAssertArgType FwAssertArgType
#define FW_LOG_TEXT_BUFFER_SIZE
Max size of string for text log message.
#define FW_OBJ_NAME_MAX_SIZE
Size of object name (if object names enabled). AC Limits to 80, truncation occurs above 80.
#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.
const char * toChar() const override
SerializeStatus serialize(SerializeBufferBase &buffer) const override
serialization function
void init()
Object initializer.
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 getBuffLeft() const
returns how much deserialization buffer is left
void resetDeser()
reset deserialization to beginning
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
virtual SerializeStatus deserialize(SerializeBufferBase &buffer)
deserialization function
const char * toChar() const
gets char buffer
@ 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)
NATIVE_INT_TYPE getNum_pingOut_OutputPorts() const
bool isConnected_timeCaller_OutputPort(NATIVE_INT_TYPE portNum)
void comCmdOut_out(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comCmdOut.
virtual void CS_STEP_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_STEP.
void log_WARNING_HI_CS_FileSizeError(const Fw::LogStringArg &fileName, U32 size)
void cmdResponseIn_handlerBase(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
Svc::InputCmdSeqInPort * get_seqRunIn_InputPort(NATIVE_INT_TYPE portNum)
bool isConnected_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void CS_START_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_START.
void log_WARNING_HI_CS_CommandError(const Fw::LogStringArg &fileName, U32 recordNumber, U32 opCode, U32 errorStatus)
NATIVE_INT_TYPE getNum_timeCaller_OutputPorts() const
void pingIn_handlerBase(NATIVE_INT_TYPE portNum, U32 key)
Handler base-class function for input port pingIn.
void tlmWrite_CS_CancelCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
NATIVE_INT_TYPE getNum_cmdRegOut_OutputPorts() const
void set_pingOut_OutputPort(NATIVE_INT_TYPE portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void log_ACTIVITY_HI_CS_SequenceComplete(const Fw::LogStringArg &fileName)
void CS_RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void seqCancelIn_preMsgHook(NATIVE_INT_TYPE portNum)
Pre-message hook for async input port seqCancelIn.
virtual void CS_CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_CANCEL.
bool isConnected_seqDone_OutputPort(NATIVE_INT_TYPE portNum)
Svc::InputPingPort * get_pingIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_cmdIn_InputPorts() const
Svc::InputSchedPort * get_schedIn_InputPort(NATIVE_INT_TYPE portNum)
void tlmWrite_CS_CommandsExecuted(U32 arg, Fw::Time _tlmTime=Fw::Time())
void CS_CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_CS_FileReadError(const Fw::LogStringArg &fileName)
void log_WARNING_HI_CS_InvalidMode()
virtual ~CmdSequencerComponentBase()
Destroy CmdSequencerComponentBase object.
virtual void cmdResponseIn_preMsgHook(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port cmdResponseIn.
virtual void pingIn_preMsgHook(NATIVE_INT_TYPE portNum, U32 key)
Pre-message hook for async input port pingIn.
virtual void schedIn_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port schedIn.
virtual void CS_START_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
bool isConnected_logOut_OutputPort(NATIVE_INT_TYPE portNum)
void CS_START_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_LO_CS_SequenceLoaded(const Fw::LogStringArg &fileName)
bool isConnected_pingOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key)=0
Handler for input port pingIn.
NATIVE_INT_TYPE getNum_cmdResponseIn_InputPorts() const
NATIVE_INT_TYPE getNum_cmdResponseOut_OutputPorts() const
virtual void CS_STEP_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void CS_JOIN_WAIT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
Svc::InputCmdSeqCancelPort * get_seqCancelIn_InputPort(NATIVE_INT_TYPE portNum)
Fw::InputCmdPort * get_cmdIn_InputPort(NATIVE_INT_TYPE portNum)
void seqRunIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::String &filename)
Handler base-class function for input port seqRunIn.
virtual void CS_RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_RUN.
virtual void CS_AUTO_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void seqCancelIn_handlerBase(NATIVE_INT_TYPE portNum)
Handler base-class function for input port seqCancelIn.
void seqDone_out(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqDone.
virtual void seqRunIn_handler(NATIVE_INT_TYPE portNum, Fw::String &filename)=0
Handler for input port seqRunIn.
NATIVE_INT_TYPE getNum_seqDone_OutputPorts() const
void tlmWrite_CS_Errors(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_WARNING_HI_CS_FileCrcFailure(const Fw::LogStringArg &fileName, U32 storedCRC, U32 computedCRC)
void CS_AUTO_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
NATIVE_INT_TYPE getNum_tlmOut_OutputPorts() const
void log_ACTIVITY_HI_CS_ModeSwitched(Svc::CmdSequencer_SeqMode mode)
NATIVE_INT_TYPE getNum_schedIn_InputPorts() const
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Invoke output port pingOut.
bool isConnected_tlmOut_OutputPort(NATIVE_INT_TYPE portNum)
void regCommands()
Register commands with the Command Dispatcher.
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(NATIVE_INT_TYPE portNum)
virtual void CS_VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_VALIDATE.
bool isConnected_comCmdOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void CS_MANUAL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_MANUAL.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void schedIn_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port schedIn.
bool isConnected_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum)
void log_WARNING_HI_CS_RecordMismatch(const Fw::LogStringArg &fileName, U32 header_records, U32 extra_bytes)
void log_ACTIVITY_LO_CS_CommandComplete(const Fw::LogStringArg &fileName, U32 recordNumber, U32 opCode)
void log_WARNING_HI_CS_FileNotFound(const Fw::LogStringArg &fileName)
void set_cmdResponseOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void log_WARNING_HI_CS_RecordInvalid(const Fw::LogStringArg &fileName, U32 recordNumber, I32 error)
@ 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_SequenceTimeout(const Fw::LogStringArg &filename, U32 command)
virtual void CS_CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void set_cmdRegOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void log_ACTIVITY_HI_CS_SequenceCanceled(const Fw::LogStringArg &fileName)
void set_seqDone_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputCmdResponsePort *port)
Connect port to seqDone[portNum].
NATIVE_INT_TYPE getNum_comCmdOut_OutputPorts() const
void CS_VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_CS_FileInvalid(const Fw::LogStringArg &fileName, Svc::CmdSequencer_FileReadStage stage, I32 error)
void log_ACTIVITY_HI_CS_CmdStarted(const Fw::LogStringArg &filename)
NATIVE_INT_TYPE getNum_seqCancelIn_InputPorts() const
void log_ACTIVITY_HI_CS_PortSequenceStarted(const Fw::LogStringArg &filename)
@ 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 CS_STEP_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_LO_CS_NoSequenceActive()
void set_timeCaller_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
virtual void seqCancelIn_handler(NATIVE_INT_TYPE portNum)=0
Handler for input port seqCancelIn.
@ 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...
void log_WARNING_HI_CS_UnexpectedCompletion(U32 opcode)
NATIVE_INT_TYPE getNum_logOut_OutputPorts() const
virtual void schedIn_preMsgHook(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Pre-message hook for async input port schedIn.
void log_WARNING_HI_CS_TimeBaseMismatch(const Fw::LogStringArg &fileName, U16 time_base, U16 seq_time_base)
void set_logOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
virtual void CS_JOIN_WAIT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_JOIN_WAIT.
CmdSequencerComponentBase(const char *compName="")
Construct CmdSequencerComponentBase object.
virtual void CS_AUTO_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CS_AUTO.
virtual void CS_RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::CmdSequencer_BlockState block)=0
void log_WARNING_HI_CS_TimeContextMismatch(const Fw::LogStringArg &fileName, U8 currTimeBase, U8 seqTimeBase)
virtual void cmdResponseIn_handler(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
void CS_JOIN_WAIT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_ACTIVITY_HI_CS_CmdStepped(const Fw::LogStringArg &filename, U32 command)
virtual void seqRunIn_preMsgHook(NATIVE_INT_TYPE portNum, Fw::String &filename)
Pre-message hook for async input port seqRunIn.
NATIVE_INT_TYPE getNum_seqRunIn_InputPorts() const
void log_ACTIVITY_HI_CS_JoinWaiting(const Fw::LogStringArg &filename, U32 recordNumber, U32 opCode)
void tlmWrite_CS_LoadCommands(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_ACTIVITY_HI_CS_SequenceValid(const Fw::LogStringArg &filename)
NATIVE_INT_TYPE getNum_pingIn_InputPorts() const
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 set_tlmOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void set_comCmdOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Connect port to comCmdOut[portNum].
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.