mirror of
https://github.com/nasa/fprime.git
synced 2025-12-10 16:29:04 -06:00
currently getting invalid use of incomplete type in Svc/CmdSequencer
This commit is contained in:
parent
cd4a191940
commit
d5611b3cf2
@ -13,6 +13,8 @@ set(SOURCE_FILES
|
||||
"${CMAKE_CURRENT_LIST_DIR}/FPrimeSequence.cpp"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/Sequence.cpp"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/formats/AMPCSSequence.cpp"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/CmdSequencer_FileReadStageEnumAi.xml"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/CmdSequencer_SeqModeEnumAi.xml"
|
||||
)
|
||||
|
||||
register_fprime_module()
|
||||
|
||||
44
Svc/CmdSequencer/CmdSequencer.fpp
Normal file
44
Svc/CmdSequencer/CmdSequencer.fpp
Normal file
@ -0,0 +1,44 @@
|
||||
module Svc {
|
||||
|
||||
active component CmdSequencer {
|
||||
|
||||
@ FPP from XML: original path was Svc/CmdSequencer/Commands.xml
|
||||
include "Commands.fppi"
|
||||
|
||||
@ FPP from XML: original path was Svc/CmdSequencer/Telemetry.xml
|
||||
include "Telemetry.fppi"
|
||||
|
||||
@ FPP from XML: original path was Svc/CmdSequencer/Events.xml
|
||||
include "Events.fppi"
|
||||
|
||||
command reg port cmdRegOut
|
||||
|
||||
text event port LogText
|
||||
|
||||
async input port pingIn: [1] Svc.Ping
|
||||
|
||||
telemetry port tlmOut
|
||||
|
||||
command resp port cmdResponseOut
|
||||
|
||||
time get port timeCaller
|
||||
|
||||
output port comCmdOut: [1] Fw.Com
|
||||
|
||||
output port pingOut: [1] Svc.Ping
|
||||
|
||||
async input port cmdResponseIn: [1] Fw.CmdResponse
|
||||
|
||||
command recv port cmdIn
|
||||
|
||||
async input port schedIn: [1] Svc.Sched
|
||||
|
||||
async input port seqRunIn: [1] Svc.CmdSeqIn
|
||||
|
||||
event port logOut
|
||||
|
||||
output port seqDone: [1] Fw.CmdResponse
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,65 +1,485 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<component name="CmdSequencer" kind="active" namespace="Svc" modeler="true">
|
||||
<!-- =====================================================================
|
||||
CmdSequencerComponentAi.xml
|
||||
Generated by fpp-to-xml
|
||||
====================================================================== -->
|
||||
<component namespace="Svc" name="CmdSequencer" kind="active">
|
||||
|
||||
<import_port_type>Fw/Cmd/CmdRegPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Log/LogTextPortAi.xml</import_port_type>
|
||||
<import_port_type>Svc/Ping/PingPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Tlm/TlmPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Cmd/CmdResponsePortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Time/TimePortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Com/ComPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Cmd/CmdPortAi.xml</import_port_type>
|
||||
<import_port_type>Svc/Sched/SchedPortAi.xml</import_port_type>
|
||||
<import_port_type>Svc/Seq/CmdSeqInPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Log/LogPortAi.xml</import_port_type>
|
||||
<import_dictionary>Svc/CmdSequencer/Commands.xml</import_dictionary>
|
||||
<import_dictionary>Svc/CmdSequencer/Telemetry.xml</import_dictionary>
|
||||
<import_dictionary>Svc/CmdSequencer/Events.xml</import_dictionary>
|
||||
<ports>
|
||||
|
||||
<import_enum_type>Svc/CmdSequencer/CmdSequencer_FileReadStageEnumAi.xml</import_enum_type>
|
||||
<import_enum_type>Svc/CmdSequencer/CmdSequencer_SeqModeEnumAi.xml</import_enum_type>
|
||||
<import_port_type>Fw/Cmd/CmdPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Cmd/CmdRegPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Cmd/CmdResponsePortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Com/ComPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Log/LogPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Log/LogTextPortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Time/TimePortAi.xml</import_port_type>
|
||||
<import_port_type>Fw/Tlm/TlmPortAi.xml</import_port_type>
|
||||
<import_port_type>Svc/Ping/PingPortAi.xml</import_port_type>
|
||||
<import_port_type>Svc/Sched/SchedPortAi.xml</import_port_type>
|
||||
<import_port_type>Svc/Seq/CmdSeqInPortAi.xml</import_port_type>
|
||||
|
||||
<port name="cmdRegOut" data_type="Fw::CmdReg" kind="output" role="CmdRegistration" max_number="1">
|
||||
</port>
|
||||
<ports>
|
||||
<port name="LogText" data_type="Fw::LogText" kind="output" role="LogTextEvent" max_number="1"/>
|
||||
<port name="cmdIn" data_type="Fw::Cmd" kind="input" role="Cmd" max_number="1"/>
|
||||
<port name="cmdRegOut" data_type="Fw::CmdReg" kind="output" role="CmdRegistration" max_number="1"/>
|
||||
<port name="cmdResponseIn" data_type="Fw::CmdResponse" kind="async_input" max_number="1" full="assert"/>
|
||||
<port name="cmdResponseOut" data_type="Fw::CmdResponse" kind="output" role="CmdResponse" max_number="1"/>
|
||||
<port name="comCmdOut" data_type="Fw::Com" kind="output" max_number="1"/>
|
||||
<port name="logOut" data_type="Fw::Log" kind="output" role="LogEvent" max_number="1"/>
|
||||
<port name="pingIn" data_type="Svc::Ping" kind="async_input" max_number="1" full="assert"/>
|
||||
<port name="pingOut" data_type="Svc::Ping" kind="output" max_number="1"/>
|
||||
<port name="schedIn" data_type="Svc::Sched" kind="async_input" max_number="1" full="assert"/>
|
||||
<port name="seqDone" data_type="Fw::CmdResponse" kind="output" max_number="1"/>
|
||||
<port name="seqRunIn" data_type="Svc::CmdSeqIn" kind="async_input" max_number="1" full="assert"/>
|
||||
<port name="timeCaller" data_type="Fw::Time" kind="output" role="TimeGet" max_number="1"/>
|
||||
<port name="tlmOut" data_type="Fw::Tlm" kind="output" role="Telemetry" max_number="1"/>
|
||||
</ports>
|
||||
|
||||
<port name="LogText" data_type="Fw::LogText" kind="output" role="LogTextEvent" max_number="1">
|
||||
</port>
|
||||
<commands>
|
||||
<command kind="async" opcode="0x0" mnemonic="CS_RUN" full="assert">
|
||||
<comment>
|
||||
Run a command sequence file
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="240">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</command>
|
||||
<command kind="async" opcode="0x1" mnemonic="CS_VALIDATE" full="assert">
|
||||
<comment>
|
||||
Validate a command sequence file
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="240">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</command>
|
||||
<command kind="async" opcode="0x2" mnemonic="CS_CANCEL" full="assert">
|
||||
<comment>
|
||||
Cancel a command sequence
|
||||
</comment>
|
||||
</command>
|
||||
<command kind="async" opcode="0x3" mnemonic="CS_START" full="assert">
|
||||
<comment>
|
||||
Start running a command sequence
|
||||
</comment>
|
||||
</command>
|
||||
<command kind="async" opcode="0x4" mnemonic="CS_STEP" full="assert">
|
||||
<comment>
|
||||
Perform one step in a command sequence. Valid only if CmdSequencer is in MANUAL run mode.
|
||||
</comment>
|
||||
</command>
|
||||
<command kind="async" opcode="0x5" mnemonic="CS_AUTO" full="assert">
|
||||
<comment>
|
||||
Set the run mode to AUTO.
|
||||
</comment>
|
||||
</command>
|
||||
<command kind="async" opcode="0x6" mnemonic="CS_MANUAL" full="assert">
|
||||
<comment>
|
||||
Set the run mode to MANUAL.
|
||||
</comment>
|
||||
</command>
|
||||
</commands>
|
||||
|
||||
<port name="pingIn" data_type="Svc::Ping" kind="async_input" max_number="1">
|
||||
</port>
|
||||
<events>
|
||||
<event id="0x0" name="CS_SequenceLoaded" severity="ACTIVITY_LO" format_string="Loaded sequence %s">
|
||||
<comment>
|
||||
Sequence file was successfully loaded.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x1" name="CS_SequenceCanceled" severity="ACTIVITY_HI" format_string="Sequence file %s canceled">
|
||||
<comment>
|
||||
A command sequence was successfully canceled.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x2" name="CS_FileReadError" severity="WARNING_HI" format_string="Error reading sequence file %s">
|
||||
<comment>
|
||||
The Sequence File Loader could not read the sequence file.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x3" name="CS_FileInvalid" severity="WARNING_HI" format_string="Sequence file %s invalid. Stage: %s Error: %d">
|
||||
<comment>
|
||||
The sequence file format was invalid.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="stage" type="Svc::CmdSequencer_FileReadStage">
|
||||
<comment>
|
||||
The read stage
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="error" type="I32">
|
||||
<comment>
|
||||
The error code
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x4" name="CS_RecordInvalid" severity="WARNING_HI" format_string="Sequence file %s: Record %u invalid. Err: %d">
|
||||
<comment>
|
||||
The format of a command record was invalid.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="recordNumber" type="U32">
|
||||
<comment>
|
||||
The record number
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="error" type="I32">
|
||||
<comment>
|
||||
The error code
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x5" name="CS_FileSizeError" severity="WARNING_HI" format_string="Sequence file %s too large. Size: %u">
|
||||
<comment>
|
||||
The sequence file was too large.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="size" type="U32">
|
||||
<comment>
|
||||
Invalid size
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x6" name="CS_FileNotFound" severity="WARNING_HI" format_string="Sequence file %s not found.">
|
||||
<comment>
|
||||
The sequence file was not found
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x7" name="CS_FileCrcFailure" severity="WARNING_HI" format_string="Sequence file %s had invalid CRC. Stored %u, Computed %u.">
|
||||
<comment>
|
||||
The sequence file validation failed
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="storedCRC" type="U32">
|
||||
<comment>
|
||||
The CRC stored in the file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="computedCRC" type="U32">
|
||||
<comment>
|
||||
The CRC computed over the file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x8" name="CS_CommandComplete" severity="ACTIVITY_LO" format_string="Sequence file %s: Command %u (opcode %u) complete">
|
||||
<comment>
|
||||
The Command Sequencer issued a command and received a success status in return.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="recordNumber" type="U32">
|
||||
<comment>
|
||||
The record number of the command
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="opCode" type="U32">
|
||||
<comment>
|
||||
The command opcode
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x9" name="CS_SequenceComplete" severity="ACTIVITY_HI" format_string="Sequence file %s complete">
|
||||
<comment>
|
||||
A command sequence successfully completed.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0xA" name="CS_CommandError" severity="WARNING_HI" format_string="Sequence file %s: Command %u (opcode %u) completed with error %u">
|
||||
<comment>
|
||||
The Command Sequencer issued a command and received an error status in return.
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="recordNumber" type="U32">
|
||||
<comment>
|
||||
The record number
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="opCode" type="U32">
|
||||
<comment>
|
||||
The opcode
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="errorStatus" type="U32">
|
||||
<comment>
|
||||
The error status
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0xB" name="CS_InvalidMode" severity="WARNING_HI" format_string="Invalid mode">
|
||||
<comment>
|
||||
The Command Sequencer received a command that was invalid for its current mode.
|
||||
</comment>
|
||||
</event>
|
||||
<event id="0xC" name="CS_RecordMismatch" severity="WARNING_HI" format_string="Sequence file %s header records mismatch: %u in header, found %u extra bytes.">
|
||||
<comment>
|
||||
Number of records in header doesn't match number in file
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="header_records" type="U32">
|
||||
<comment>
|
||||
The number of records in the header
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="extra_bytes" type="U32">
|
||||
<comment>
|
||||
The number of bytes beyond last record
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0xD" name="CS_TimeBaseMismatch" severity="WARNING_HI" format_string="Sequence file %s: Current time base doesn't match sequence time: base: %u seq: %u">
|
||||
<comment>
|
||||
The running time base doesn't match the time base in the sequence files
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="time_base" type="U16">
|
||||
<comment>
|
||||
The current time
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="seq_time_base" type="U16">
|
||||
<comment>
|
||||
The sequence time base
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0xE" name="CS_TimeContextMismatch" severity="WARNING_HI" format_string="Sequence file %s: Current time context doesn't match sequence context: base: %u seq: %u">
|
||||
<comment>
|
||||
The running time base doesn't match the time base in the sequence files
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="fileName" type="string" size="60">
|
||||
<comment>
|
||||
The name of the sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="currTimeBase" type="U8">
|
||||
<comment>
|
||||
The current time base
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="seqTimeBase" type="U8">
|
||||
<comment>
|
||||
The sequence time base
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0xF" name="CS_PortSequenceStarted" severity="ACTIVITY_HI" format_string="Local request for sequence %s started.">
|
||||
<comment>
|
||||
A local port request to run a sequence was started
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="filename" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x10" name="CS_UnexpectedCompletion" severity="WARNING_HI" format_string="Command complete status received while no sequences active. Opcode: %u">
|
||||
<comment>
|
||||
A command status came back when no sequence was running
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="opcode" type="U32">
|
||||
<comment>
|
||||
The reported opcode
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x11" name="CS_ModeSwitched" severity="ACTIVITY_HI" format_string="Sequencer switched to %s step mode">
|
||||
<comment>
|
||||
Switched step mode
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="mode" type="Svc::CmdSequencer_SeqMode">
|
||||
<comment>
|
||||
The new mode
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x12" name="CS_NoSequenceActive" severity="WARNING_LO" format_string="No sequence active.">
|
||||
<comment>
|
||||
A sequence related command came with no active sequence
|
||||
</comment>
|
||||
</event>
|
||||
<event id="0x13" name="CS_SequenceValid" severity="ACTIVITY_HI" format_string="Sequence %s is valid.">
|
||||
<comment>
|
||||
A sequence passed validation
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="filename" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x14" name="CS_SequenceTimeout" severity="WARNING_HI" format_string="Sequence %s timed out on command %u">
|
||||
<comment>
|
||||
A sequence passed validation
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="filename" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="command" type="U32">
|
||||
<comment>
|
||||
The command that timed out
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x15" name="CS_CmdStepped" severity="ACTIVITY_HI" format_string="Sequence %s command %u stepped">
|
||||
<comment>
|
||||
A command in a sequence was stepped through
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="filename" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
<arg name="command" type="U32">
|
||||
<comment>
|
||||
The command that was stepped
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
<event id="0x16" name="CS_CmdStarted" severity="ACTIVITY_HI" format_string="Sequence %s started">
|
||||
<comment>
|
||||
A manual sequence was started
|
||||
</comment>
|
||||
<args>
|
||||
<arg name="filename" type="string" size="60">
|
||||
<comment>
|
||||
The sequence file
|
||||
</comment>
|
||||
</arg>
|
||||
</args>
|
||||
</event>
|
||||
</events>
|
||||
|
||||
<port name="tlmOut" data_type="Fw::Tlm" kind="output" role="Telemetry" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="cmdResponseOut" data_type="Fw::CmdResponse" kind="output" role="CmdResponse" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="timeCaller" data_type="Fw::Time" kind="output" role="TimeGet" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="comCmdOut" data_type="Fw::Com" kind="output" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="pingOut" data_type="Svc::Ping" kind="output" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="cmdResponseIn" data_type="Fw::CmdResponse" kind="async_input" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="cmdIn" data_type="Fw::Cmd" kind="input" role="Cmd" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="schedIn" data_type="Svc::Sched" kind="async_input" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="seqRunIn" data_type="Svc::CmdSeqIn" kind="async_input" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="logOut" data_type="Fw::Log" kind="output" role="LogEvent" max_number="1">
|
||||
</port>
|
||||
|
||||
<port name="seqDone" data_type="Fw::CmdResponse" kind="output" max_number="1">
|
||||
</port>
|
||||
</ports>
|
||||
<telemetry>
|
||||
<channel id="0x0" name="CS_LoadCommands" data_type="U32" update="always">
|
||||
<comment>
|
||||
The number of Load commands executed
|
||||
</comment>
|
||||
</channel>
|
||||
<channel id="0x1" name="CS_CancelCommands" data_type="U32" update="always">
|
||||
<comment>
|
||||
The number of Cancel commands executed
|
||||
</comment>
|
||||
</channel>
|
||||
<channel id="0x2" name="CS_Errors" data_type="U32" update="always">
|
||||
<comment>
|
||||
The number of errors that have occurred
|
||||
</comment>
|
||||
</channel>
|
||||
<channel id="0x3" name="CS_CommandsExecuted" data_type="U32" update="always">
|
||||
<comment>
|
||||
The number of commands executed across all sequences.
|
||||
</comment>
|
||||
</channel>
|
||||
<channel id="0x4" name="CS_SequencesCompleted" data_type="U32" update="always">
|
||||
<comment>
|
||||
The number of sequences completed.
|
||||
</comment>
|
||||
</channel>
|
||||
</telemetry>
|
||||
|
||||
</component>
|
||||
|
||||
@ -21,6 +21,9 @@
|
||||
|
||||
namespace Svc {
|
||||
|
||||
typedef CmdSequencer_FileReadStage FileReadStage;
|
||||
typedef CmdSequencer_SeqMode SeqMode;
|
||||
|
||||
class CmdSequencerComponentImpl :
|
||||
public CmdSequencerComponentBase
|
||||
{
|
||||
|
||||
17
Svc/CmdSequencer/CmdSequencer_FileReadStageEnumAi.xml
Normal file
17
Svc/CmdSequencer/CmdSequencer_FileReadStageEnumAi.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- =====================================================================
|
||||
CmdSequencer_FileReadStageEnumAi.xml
|
||||
Generated by fpp-to-xml
|
||||
====================================================================== -->
|
||||
<enum namespace="Svc" name="CmdSequencer_FileReadStage">
|
||||
<item name="SEQ_READ_HEADER" value="0"/>
|
||||
<item name="SEQ_READ_HEADER_SIZE" value="1"/>
|
||||
<item name="SEQ_DESER_SIZE" value="2"/>
|
||||
<item name="SEQ_DESER_NUM_RECORDS" value="3"/>
|
||||
<item name="SEQ_DESER_TIME_BASE" value="4"/>
|
||||
<item name="SEQ_DESER_TIME_CONTEXT" value="5"/>
|
||||
<item name="SEQ_READ_SEQ_CRC" value="6"/>
|
||||
<item name="SEQ_READ_SEQ_DATA" value="7"/>
|
||||
<item name="SEQ_READ_SEQ_DATA_SIZE" value="8"/>
|
||||
</enum>
|
||||
10
Svc/CmdSequencer/CmdSequencer_SeqModeEnumAi.xml
Normal file
10
Svc/CmdSequencer/CmdSequencer_SeqModeEnumAi.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- =====================================================================
|
||||
CmdSequencer_SeqModeEnumAi.xml
|
||||
Generated by fpp-to-xml
|
||||
====================================================================== -->
|
||||
<enum namespace="Svc" name="CmdSequencer_SeqMode">
|
||||
<item name="SEQ_STEP_MODE" value="0"/>
|
||||
<item name="SEQ_AUTO_MODE" value="1"/>
|
||||
</enum>
|
||||
31
Svc/CmdSequencer/Commands.fppi
Normal file
31
Svc/CmdSequencer/Commands.fppi
Normal file
@ -0,0 +1,31 @@
|
||||
@ Run a command sequence file
|
||||
async command CS_RUN(
|
||||
fileName: string size 240 @< The name of the sequence file
|
||||
) \
|
||||
opcode 0
|
||||
|
||||
@ Validate a command sequence file
|
||||
async command CS_VALIDATE(
|
||||
fileName: string size 240 @< The name of the sequence file
|
||||
) \
|
||||
opcode 1
|
||||
|
||||
@ Cancel a command sequence
|
||||
async command CS_CANCEL \
|
||||
opcode 2
|
||||
|
||||
@ Start running a command sequence
|
||||
async command CS_START \
|
||||
opcode 3
|
||||
|
||||
@ Perform one step in a command sequence. Valid only if CmdSequencer is in MANUAL run mode.
|
||||
async command CS_STEP \
|
||||
opcode 4
|
||||
|
||||
@ Set the run mode to AUTO.
|
||||
async command CS_AUTO \
|
||||
opcode 5
|
||||
|
||||
@ Set the run mode to MANUAL.
|
||||
async command CS_MANUAL \
|
||||
opcode 6
|
||||
217
Svc/CmdSequencer/Events.fppi
Normal file
217
Svc/CmdSequencer/Events.fppi
Normal file
@ -0,0 +1,217 @@
|
||||
@ Sequence file was successfully loaded.
|
||||
event CS_SequenceLoaded(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
) \
|
||||
severity activity low \
|
||||
id 0 \
|
||||
format "Loaded sequence {}"
|
||||
|
||||
@ A command sequence was successfully canceled.
|
||||
event CS_SequenceCanceled(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
) \
|
||||
severity activity high \
|
||||
id 1 \
|
||||
format "Sequence file {} canceled"
|
||||
|
||||
@ The Sequence File Loader could not read the sequence file.
|
||||
event CS_FileReadError(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
) \
|
||||
severity warning high \
|
||||
id 2 \
|
||||
format "Error reading sequence file {}"
|
||||
|
||||
enum FileReadStage {
|
||||
SEQ_READ_HEADER = 0
|
||||
SEQ_READ_HEADER_SIZE = 1
|
||||
SEQ_DESER_SIZE = 2
|
||||
SEQ_DESER_NUM_RECORDS = 3
|
||||
SEQ_DESER_TIME_BASE = 4
|
||||
SEQ_DESER_TIME_CONTEXT = 5
|
||||
SEQ_READ_SEQ_CRC = 6
|
||||
SEQ_READ_SEQ_DATA = 7
|
||||
SEQ_READ_SEQ_DATA_SIZE = 8
|
||||
}
|
||||
|
||||
@ The sequence file format was invalid.
|
||||
event CS_FileInvalid(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
stage: FileReadStage @< The read stage
|
||||
error: I32 @< The error code
|
||||
) \
|
||||
severity warning high \
|
||||
id 3 \
|
||||
format "Sequence file {} invalid. Stage: {} Error: {}"
|
||||
|
||||
@ The format of a command record was invalid.
|
||||
event CS_RecordInvalid(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
recordNumber: U32 @< The record number
|
||||
error: I32 @< The error code
|
||||
) \
|
||||
severity warning high \
|
||||
id 4 \
|
||||
format "Sequence file {}: Record {} invalid. Err: {}"
|
||||
|
||||
@ The sequence file was too large.
|
||||
event CS_FileSizeError(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
$size: U32 @< Invalid size
|
||||
) \
|
||||
severity warning high \
|
||||
id 5 \
|
||||
format "Sequence file {} too large. Size: {}"
|
||||
|
||||
@ The sequence file was not found
|
||||
event CS_FileNotFound(
|
||||
fileName: string size 60 @< The sequence file
|
||||
) \
|
||||
severity warning high \
|
||||
id 6 \
|
||||
format "Sequence file {} not found."
|
||||
|
||||
|
||||
@ The sequence file validation failed
|
||||
event CS_FileCrcFailure(
|
||||
fileName: string size 60 @< The sequence file
|
||||
storedCRC: U32 @< The CRC stored in the file
|
||||
computedCRC: U32 @< The CRC computed over the file
|
||||
) \
|
||||
severity warning high \
|
||||
id 7 \
|
||||
format "Sequence file {} had invalid CRC. Stored {}, Computed {}."
|
||||
|
||||
@ The Command Sequencer issued a command and received a success status in return.
|
||||
event CS_CommandComplete(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
recordNumber: U32 @< The record number of the command
|
||||
opCode: U32 @< The command opcode
|
||||
) \
|
||||
severity activity low \
|
||||
id 8 \
|
||||
format "Sequence file {}: Command {} (opcode {}) complete"
|
||||
|
||||
@ A command sequence successfully completed.
|
||||
event CS_SequenceComplete(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
) \
|
||||
severity activity high \
|
||||
id 9 \
|
||||
format "Sequence file {} complete"
|
||||
|
||||
@ The Command Sequencer issued a command and received an error status in return.
|
||||
event CS_CommandError(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
recordNumber: U32 @< The record number
|
||||
opCode: U32 @< The opcode
|
||||
errorStatus: U32 @< The error status
|
||||
) \
|
||||
severity warning high \
|
||||
id 10 \
|
||||
format "Sequence file {}: Command {} (opcode {}) completed with error {}"
|
||||
|
||||
@ The Command Sequencer received a command that was invalid for its current mode.
|
||||
event CS_InvalidMode \
|
||||
severity warning high \
|
||||
id 11 \
|
||||
format "Invalid mode"
|
||||
|
||||
@ Number of records in header doesn't match number in file
|
||||
event CS_RecordMismatch(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
header_records: U32 @< The number of records in the header
|
||||
extra_bytes: U32 @< The number of bytes beyond last record
|
||||
) \
|
||||
severity warning high \
|
||||
id 12 \
|
||||
format "Sequence file {} header records mismatch: {} in header, found {} extra bytes."
|
||||
|
||||
@ The running time base doesn't match the time base in the sequence files
|
||||
event CS_TimeBaseMismatch(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
time_base: U16 @< The current time
|
||||
seq_time_base: U16 @< The sequence time base
|
||||
) \
|
||||
severity warning high \
|
||||
id 13 \
|
||||
format "Sequence file {}: Current time base doesn't match sequence time: base: {} seq: {}"
|
||||
|
||||
@ The running time base doesn't match the time base in the sequence files
|
||||
event CS_TimeContextMismatch(
|
||||
fileName: string size 60 @< The name of the sequence file
|
||||
currTimeBase: U8 @< The current time base
|
||||
seqTimeBase: U8 @< The sequence time base
|
||||
) \
|
||||
severity warning high \
|
||||
id 14 \
|
||||
format "Sequence file {}: Current time context doesn't match sequence context: base: {} seq: {}"
|
||||
|
||||
@ A local port request to run a sequence was started
|
||||
event CS_PortSequenceStarted(
|
||||
filename: string size 60 @< The sequence file
|
||||
) \
|
||||
severity activity high \
|
||||
id 15 \
|
||||
format "Local request for sequence {} started."
|
||||
|
||||
@ A command status came back when no sequence was running
|
||||
event CS_UnexpectedCompletion(
|
||||
$opcode: U32 @< The reported opcode
|
||||
) \
|
||||
severity warning high \
|
||||
id 16 \
|
||||
format "Command complete status received while no sequences active. Opcode: {}"
|
||||
|
||||
enum SeqMode {
|
||||
SEQ_STEP_MODE = 0
|
||||
SEQ_AUTO_MODE = 1
|
||||
}
|
||||
|
||||
@ Switched step mode
|
||||
event CS_ModeSwitched(
|
||||
mode: SeqMode @< The new mode
|
||||
) \
|
||||
severity activity high \
|
||||
id 17 \
|
||||
format "Sequencer switched to {} step mode"
|
||||
|
||||
@ A sequence related command came with no active sequence
|
||||
event CS_NoSequenceActive \
|
||||
severity warning low \
|
||||
id 18 \
|
||||
format "No sequence active."
|
||||
|
||||
@ A sequence passed validation
|
||||
event CS_SequenceValid(
|
||||
filename: string size 60 @< The sequence file
|
||||
) \
|
||||
severity activity high \
|
||||
id 19 \
|
||||
format "Sequence {} is valid."
|
||||
|
||||
@ A sequence passed validation
|
||||
event CS_SequenceTimeout(
|
||||
filename: string size 60 @< The sequence file
|
||||
$command: U32 @< The command that timed out
|
||||
) \
|
||||
severity warning high \
|
||||
id 20 \
|
||||
format "Sequence {} timed out on command {}"
|
||||
|
||||
@ A command in a sequence was stepped through
|
||||
event CS_CmdStepped(
|
||||
filename: string size 60 @< The sequence file
|
||||
$command: U32 @< The command that was stepped
|
||||
) \
|
||||
severity activity high \
|
||||
id 21 \
|
||||
format "Sequence {} command {} stepped"
|
||||
|
||||
@ A manual sequence was started
|
||||
event CS_CmdStarted(
|
||||
filename: string size 60 @< The sequence file
|
||||
) \
|
||||
severity activity high \
|
||||
id 22 \
|
||||
format "Sequence {} started"
|
||||
14
Svc/CmdSequencer/Telemetry.fppi
Normal file
14
Svc/CmdSequencer/Telemetry.fppi
Normal file
@ -0,0 +1,14 @@
|
||||
@ The number of Load commands executed
|
||||
telemetry CS_LoadCommands: U32 id 0
|
||||
|
||||
@ The number of Cancel commands executed
|
||||
telemetry CS_CancelCommands: U32 id 1
|
||||
|
||||
@ The number of errors that have occurred
|
||||
telemetry CS_Errors: U32 id 2
|
||||
|
||||
@ The number of commands executed across all sequences.
|
||||
telemetry CS_CommandsExecuted: U32 id 3
|
||||
|
||||
@ The number of sequences completed.
|
||||
telemetry CS_SequencesCompleted: U32 id 4
|
||||
6
Svc/CmdSequencer/all.do
Normal file
6
Svc/CmdSequencer/all.do
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
. ./defs.sh
|
||||
|
||||
redo-ifchange xml
|
||||
update xml/*.xml
|
||||
5
Svc/CmdSequencer/clean.do
Normal file
5
Svc/CmdSequencer/clean.do
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
. ./defs.sh
|
||||
|
||||
clean_do
|
||||
6
Svc/CmdSequencer/defs.sh
Normal file
6
Svc/CmdSequencer/defs.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
export FPRIME_ROOT=../..
|
||||
export FPP_FILES=`basename $PWD`.fpp
|
||||
|
||||
. $FPRIME_ROOT/defs-root.sh
|
||||
5
Svc/CmdSequencer/depend.do
Normal file
5
Svc/CmdSequencer/depend.do
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
. ./defs.sh
|
||||
|
||||
depend_do "$@"
|
||||
6
Svc/CmdSequencer/locate-uses.do
Normal file
6
Svc/CmdSequencer/locate-uses.do
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
. ./defs.sh
|
||||
|
||||
redo-always
|
||||
locate_uses_do "$@" 1>&2
|
||||
5
Svc/CmdSequencer/xml.do
Normal file
5
Svc/CmdSequencer/xml.do
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ./defs.sh
|
||||
|
||||
xml_do "$@"
|
||||
Loading…
x
Reference in New Issue
Block a user