![]() |
F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
|
Auto-generated base for WasmSequencer component. More...
#include <Svc/WasmSequencer/WasmSequencerComponentAc.hpp>
Classes | |
| class | Svc_WasmSequencer_ControllerStateMachine |
| Implementation of state machine Svc_WasmSequencer_ControllerStateMachine. More... | |
| class | Svc_WasmSequencer_InterpreterStateMachine |
| Implementation of state machine Svc_WasmSequencer_InterpreterStateMachine. More... | |
Friends | |
| class | WasmSequencerTesterBase |
| Friend class tester to support autocoded test harness. More... | |
| class | WasmSequencerTester |
| Friend class tester implementation to support white-box testing. More... | |
Additional Inherited Members | |
Public Types inherited from Fw::ActiveComponentBase | |
| enum | { ACTIVE_COMPONENT_EXIT } |
Public Types inherited from Fw::QueuedComponentBase | |
| enum | MsgDispatchStatus { MSG_DISPATCH_OK, MSG_DISPATCH_EMPTY, MSG_DISPATCH_ERROR, MSG_DISPATCH_EXIT } |
Protected Attributes inherited from Fw::ActiveComponentBase | |
| Os::Task | m_task |
| task object for active component More... | |
Protected Attributes inherited from Fw::QueuedComponentBase | |
| Os::Queue | m_queue |
| queue object for active component More... | |
Auto-generated base for WasmSequencer component.
A sequence engine based around a WebAssembly interpreter
Definition at line 74 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of special input ports.
| Enumerator | |
|---|---|
| NUM_CMDIN_INPUT_PORTS | |
Definition at line 94 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of typed input ports.
| Enumerator | |
|---|---|
| NUM_CHECKTIMERS_INPUT_PORTS | |
| NUM_CMDRESPONSEIN_INPUT_PORTS | |
| NUM_SEQCANCELIN_INPUT_PORTS | |
| NUM_SEQRUNIN_INPUT_PORTS | |
| NUM_WRITETELEMETRY_INPUT_PORTS | |
Definition at line 99 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of serial input ports.
| Enumerator | |
|---|---|
| NUM_SERIALIN_INPUT_PORTS | |
Definition at line 108 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of special output ports.
Definition at line 113 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of typed output ports.
| Enumerator | |
|---|---|
| NUM_CMDOUT_OUTPUT_PORTS | |
| NUM_GETPARAM_OUTPUT_PORTS | |
| NUM_GETTLMCHAN_OUTPUT_PORTS | |
| NUM_SEQDONEOUT_OUTPUT_PORTS | |
| NUM_SEQSTARTOUT_OUTPUT_PORTS | |
Definition at line 125 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of serial output ports.
| Enumerator | |
|---|---|
| NUM_SERIALOUT_OUTPUT_PORTS | |
Definition at line 134 of file WasmSequencerComponentAc.hpp.
|
protected |
Command opcodes.
| Enumerator | |
|---|---|
| OPCODE_RUN | Run a Wasm module main function on it's own in the interpreter This command first resets the store (discarding any modules previously staged with LOAD), then is short-hand for: ```sh CANCEL # doesn't actually cancel a sequence, just resets the store LOAD [fileName] "" INVOKE "" [block] [seqArgs] ``` If $block == Svc.BlockState.BLOCK this command will wait for completion. |
| OPCODE_LOAD | Loads and validates a WebAssembly module into the store under the given name. Naming the module lets its exports be referenced by other modules and lets INVOKE, GLOBAL_GET and GLOBAL_SET address it. Use an empty name for a single, standalone module. The name must not conflict with a previously loaded module. |
| OPCODE_INVOKE | Invoke a main function from a loaded module. |
| OPCODE_WAIT | Wait for the interpreter to finish and return it's result as a CmdResponse. |
| OPCODE_CANCEL | Cancels a running or validated sequence. After running CANCEL, the sequencer should return to IDLE This completely clears the store. |
| OPCODE_PAUSE | Pauses the execution of the sequencer, just before it is about to start spinning. This simply pends a pause flag that will be taken before the sequence engine starts up again. This command completes immediately |
| OPCODE_CONTINUE | Resume the sequence from a paused state. |
| OPCODE_GLOBAL_SET_I32 | Set a global variable to a given i32 value. Command fails if the module is not found, global is not exported, mutable, or of i32 type |
| OPCODE_GLOBAL_SET_I64 | Set a global variable to a given i64 value. Command fails if the module is not found, global is not exported, mutable, or of i64 type |
| OPCODE_GLOBAL_SET_F32 | Set a global variable to a given f32 value. Command fails if the module is not found, global is not exported, mutable, or of f32 type |
| OPCODE_GLOBAL_SET_F64 | Set a global variable to a given f64 value. Command fails if the module is not found, global is not exported, mutable, or of f64 type |
| OPCODE_GLOBAL_GET | Get the current value of a global variable and emit an event Command fails if the module is not found or the global is not exported |
| OPCODE_HOST_FUNCTION_TIMEOUT_SECS_SET | Opcode to set parameter HOST_FUNCTION_TIMEOUT_SECS. |
| OPCODE_HOST_FUNCTION_TIMEOUT_SECS_SAVE | Opcode to save parameter HOST_FUNCTION_TIMEOUT_SECS. |
| OPCODE_INSTRUCTION_FUEL_SET | Opcode to set parameter INSTRUCTION_FUEL. |
| OPCODE_INSTRUCTION_FUEL_SAVE | Opcode to save parameter INSTRUCTION_FUEL. |
| OPCODE_SEQ_BASE_DIR_SET | Opcode to set parameter SEQ_BASE_DIR. |
| OPCODE_SEQ_BASE_DIR_SAVE | Opcode to save parameter SEQ_BASE_DIR. |
Definition at line 139 of file WasmSequencerComponentAc.hpp.
|
protected |
Event IDs.
| Enumerator | |
|---|---|
| EVENTID_STOREALLOCATIONSUCCEEDED | The interpreter store was allocated with capacity for the given number of modules. |
| EVENTID_CONTROLLERCANNOTINVOKE | A command was issued in a state where it is not valid. |
| EVENTID_CONTROLLERBUSY | A command was issued in a state where it is not valid. |
| EVENTID_MODULENOTFOUND | Failed to find a loaded module with the requested name. |
| EVENTID_MEMORYGROWREJECTED | A guest memory.grow could not be serviced by the guest bump allocator and was rejected. The guest sees memory.grow return -1; execution continues. |
| EVENTID_GLOBALSETFAILED | |
| EVENTID_GLOBALGETFAILED | |
| EVENTID_GLOBALVALUEI32 | |
| EVENTID_GLOBALVALUEI64 | |
| EVENTID_GLOBALVALUEF32 | |
| EVENTID_GLOBALVALUEF64 | |
| EVENTID_FILEOPENERROR | Failed to open the requested Wasm module file. |
| EVENTID_SEQUENCEFILEPATHTOOLONG | The SEQ_BASE_DIR base directory joined with the requested sequence file path exceeds the file-path buffer; the load will fail to open the truncated path. |
| EVENTID_SEQUENCEFILEPATHNOTCONTAINED | A ground-supplied sequence file name contained a ".." path-traversal component while SEQ_BASE_DIR was configured, so it could escape the base directory. The load is rejected rather than opening a path outside the configured base dir. |
| EVENTID_MODULELOADFAILED | A module failed to decode/validate while loading. |
| EVENTID_MODULEMAININVOKEFAILED | Failed to invoke a module's main entrypoint. |
| EVENTID_MODULESTARTINVOKEFAILED | Failed to invoke a module's start function. |
| EVENTID_TOOMANYBLOCKINGCOMMANDS | A blocking command could not be queued because too many commands are already waiting on the sequencer to finish |
| EVENTID_BUFFERTOOLARGE | A guest host function supplied a buffer larger than the host maximum for that call. |
| EVENTID_BUFFERTOOSMALL | A guest host function supplied a buffer too small to hold the host value being returned. |
| EVENTID_HOSTFUNCTIONINVALIDPOINTER | |
| EVENTID_INVALIDBLOCKINGTYPEVALUE | |
| EVENTID_HOSTFUNCTIONINVALIDPORT | A guest serial port host function requested a port index outside the configured range. |
| EVENTID_SERIALPORTSENDFAILED | A guest serial port payload could not be serialized onto the serial output port (the receiving port rejected the guest-supplied bytes) |
| EVENTID_SERIALINFRAMETOOLARGE | An inbound serial frame was larger than the receiving queue could ever hold and was dropped. serialIn is fed by external hardware/ground data, so an oversized frame is rejected here rather than asserting on flight software. |
| EVENTID_HOSTFUNCTIONINVALIDSEVERITY | The guest requested an event at a severity that is not permitted for guest programs (an out-of-range id, or FATAL/COMMAND which are reserved for the host). The guest message is preserved and reported here at WARNING_HI. |
| EVENTID_SEQUENCESTARTING | A sequence is starting after the main entrypoint was invoked. |
| EVENTID_SEQUENCESUCCEEDED | The interpreter ran a program to completion. |
| EVENTID_SEQUENCECANCELLED | The sequence was cancelled. |
| EVENTID_SEQUENCEEXITED | The sequence finished with a non-zero code: the guest returned a non-zero value from main, or called fprime.exit with a non-zero code |
| EVENTID_SEQUENCEPANIC | The guest called fprime.panic. |
| EVENTID_SEQUENCETRAPPED | The interpreter aborted the sequence with a byte-code trap. |
| EVENTID_SEQUENCEHOSTFAILURE | A host function the sequence was awaiting failed: an error reply, a reply timeout, an unexpected reply, or an incomparable timer |
| EVENTID_SEQUENCEPAUSED | Execution was paused at a breakpoint. |
| EVENTID_SEQUENCENOTRUNNING | No sequence is running so we cannot continue from a pause. |
| EVENTID_SLEEPDURATIONTOOLARGE | The guest requested a sleep whose duration (in microseconds) does not fit the host timer representation (its whole-seconds part overflows U32) |
| EVENTID_HOSTFUNCTIONINVALIDID | A guest host function supplied a 64-bit id (telemetry channel or parameter id) that does not fit in the narrower id type used by the framework. Casting it directly would silently alias a different, valid id, so the request is rejected rather than truncated. |
| EVENTID_CMDRESPONSEFROMOLDSEQUENCE | A command response arrived carrying a context (cmdUid) from a previous sequence run. Reported (not failed) because a late reply after CANCEL is nominal. |
| EVENTID_WRONGCMDRESPONSEINDEX | A command response arrived for the correct opcode from this sequence, but for a different dispatch instance than the one currently being awaited. |
| EVENTID_INVALIDMODULEENTRYPOINT | |
| EVENTID_LOGWARNINGHI | A WARNING_HI event emitted by the guest program. |
| EVENTID_LOGWARNINGLO | A WARNING_LO event emitted by the guest program. |
| EVENTID_LOGACTIVITYHI | An ACTIVITY_HI event emitted by the guest program. |
| EVENTID_LOGACTIVITYLO | An ACTIVITY_LO event emitted by the guest program. |
| EVENTID_LOGDIAGNOSTIC | A DIAGNOSTIC event emitted by the guest program. |
Definition at line 184 of file WasmSequencerComponentAc.hpp.
|
protected |
Channel IDs.
Definition at line 251 of file WasmSequencerComponentAc.hpp.
|
protected |
Parameter IDs.
| Enumerator | |
|---|---|
| PARAMID_HOST_FUNCTION_TIMEOUT_SECS | the number of seconds to wait before giving up on a host function/command. if <= 0 or greater than U32 max, never time out. accuracy of this timeout is determined by the rate group driving this component. it will be rounded up. |
| PARAMID_INSTRUCTION_FUEL | Number of Wasm instructions to execute per interpreter cycle. Larger numbers will effect the responsiveness of the interpreter to Larger numbers make the interpreter faster because the engine doesn't need to feed itself through a queue to fuel more cycles. |
| PARAMID_SEQ_BASE_DIR | A literal prefix prepended to every requested sequence file path before resolution following the rules of Os::File::open. When non-empty it also acts as a containment boundary: a requested name with a ".." component is rejected rather than being allowed to escape the prefix. |
Definition at line 264 of file WasmSequencerComponentAc.hpp.
|
strongprotected |
State machine identifiers.
| Enumerator | |
|---|---|
| controller | |
| interpreter | |
Definition at line 282 of file WasmSequencerComponentAc.hpp.
|
protected |
Construct WasmSequencerComponentBase object.
| compName | The component name |
Definition at line 1793 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Destroy WasmSequencerComponentBase object.
Definition at line 1802 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command CANCEL
Cancels a running or validated sequence. After running CANCEL, the sequencer should return to IDLE This completely clears the store.
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command CANCEL
Cancels a running or validated sequence. After running CANCEL, the sequencer should return to IDLE This completely clears the store.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3256 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port checkTimers.
| portNum | The port number |
| context | The call order |
|
protected |
Handler base-class function for input port checkTimers.
| portNum | The port number |
| context | The call order |
Definition at line 2189 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port checkTimers.
| portNum | The port number |
| context | The call order |
Definition at line 2485 of file WasmSequencerComponentAc.cpp.
|
protected |
Handler base-class function for input port cmdIn.
| portNum | The port number |
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 1996 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port cmdOut.
| portNum | The port number |
| data | Buffer containing packet data |
| context | Call context value; meaning chosen by user |
Definition at line 2530 of file WasmSequencerComponentAc.cpp.
|
protected |
Emit command response.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| response | The command response |
Definition at line 3003 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port cmdResponseIn.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
|
protected |
Handler base-class function for input port cmdResponseIn.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
Definition at line 2242 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port cmdResponseIn.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
Definition at line 2494 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command CONTINUE
Resume the sequence from a paused state
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command CONTINUE
Resume the sequence from a paused state
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3341 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command CONTINUE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3758 of file WasmSequencerComponentAc.cpp.
|
protected |
Get the state of state machine instance controller.
Definition at line 2678 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cancel to state machine controller.
Definition at line 2759 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal engineFinished to state machine controller.
| value | The value |
Definition at line 2795 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invoke to state machine controller.
| value | The value |
Definition at line 2720 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invoked to state machine controller.
| value | The value |
Definition at line 2733 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invokeFailed to state machine controller.
| value | The value |
Definition at line 2746 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal load to state machine controller.
| value | The value |
Definition at line 2707 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal loadFailed to state machine controller.
| value | The value |
Definition at line 2782 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal loadSucceeded to state machine controller.
| value | The value |
Definition at line 2769 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal run to state machine controller.
| value | The value |
Definition at line 2694 of file WasmSequencerComponentAc.cpp.
| Svc::InputSchedPort * Svc::WasmSequencerComponentBase::get_checkTimers_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1130 of file WasmSequencerComponentAc.cpp.
| Fw::InputCmdPort * Svc::WasmSequencerComponentBase::get_cmdIn_InputPort | ( | FwIndexType | portNum | ) |
Get special input port at index
| portNum | The port number |
Definition at line 1111 of file WasmSequencerComponentAc.cpp.
| Fw::InputCmdResponsePort * Svc::WasmSequencerComponentBase::get_cmdResponseIn_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1141 of file WasmSequencerComponentAc.cpp.
| Svc::InputCmdSeqCancelPort * Svc::WasmSequencerComponentBase::get_seqCancelIn_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1152 of file WasmSequencerComponentAc.cpp.
| Svc::InputCmdSeqInPort * Svc::WasmSequencerComponentBase::get_seqRunIn_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1163 of file WasmSequencerComponentAc.cpp.
| Fw::InputSerializePort * Svc::WasmSequencerComponentBase::get_serialIn_InputPort | ( | FwIndexType | portNum | ) |
Get serial input port at index
| portNum | The port number |
Definition at line 1193 of file WasmSequencerComponentAc.cpp.
| Svc::InputSchedPort * Svc::WasmSequencerComponentBase::get_writeTelemetry_InputPort | ( | FwIndexType | portNum | ) |
Get typed input port at index
| portNum | The port number |
Definition at line 1174 of file WasmSequencerComponentAc.cpp.
|
inlinestaticprotected |
Get the number of checkTimers input ports
Definition at line 1067 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdIn input ports
Definition at line 1054 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdOut output ports
Definition at line 1187 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdRegOut output ports
Definition at line 1121 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdResponseIn input ports
Definition at line 1074 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdResponseOut output ports
Definition at line 1128 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of getParam output ports
Definition at line 1194 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of getTlmChan output ports
Definition at line 1201 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of logOut output ports
Definition at line 1135 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of prmGet output ports
Definition at line 1153 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of prmSet output ports
Definition at line 1160 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqCancelIn input ports
Definition at line 1081 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqDoneOut output ports
Definition at line 1208 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqRunIn input ports
Definition at line 1088 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqStartOut output ports
Definition at line 1215 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of serialIn input ports
Definition at line 1108 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of serialOut output ports
Definition at line 1228 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of timeCaller output ports
Definition at line 1167 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of tlmOut output ports
Definition at line 1174 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of writeTelemetry input ports
Definition at line 1095 of file WasmSequencerComponentAc.hpp.
|
protected |
Invoke output port getParam.
| portNum | The port number |
| id | Parameter ID |
| val | Buffer containing serialized parameter value. Unmodified if param not found. |
Definition at line 2552 of file WasmSequencerComponentAc.cpp.
|
protected |
|
protected |
Invoke output port getTlmChan.
| portNum | The port number |
| id | Telemetry Channel ID |
| timeTag | Time Tag |
| val | Buffer containing serialized telemetry value. Size set to 0 if channel not found, or if no value has been received for this channel yet. |
Definition at line 2574 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_GET
Get the current value of a global variable and emit an event Command fails if the module is not found or the global is not exported
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to get global for |
| name | Name of the global |
|
protected |
Base-class handler function for command GLOBAL_GET
Get the current value of a global variable and emit an event Command fails if the module is not found or the global is not exported
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3636 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_GET.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3813 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_F32
Set a global variable to a given f32 value. Command fails if the module is not found, global is not exported, mutable, or of f32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_F32
Set a global variable to a given f32 value. Command fails if the module is not found, global is not exported, mutable, or of f32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3518 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_F32.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3791 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_F64
Set a global variable to a given f64 value. Command fails if the module is not found, global is not exported, mutable, or of f64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_F64
Set a global variable to a given f64 value. Command fails if the module is not found, global is not exported, mutable, or of f64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3577 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_F64.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3802 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_I32
Set a global variable to a given i32 value. Command fails if the module is not found, global is not exported, mutable, or of i32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_I32
Set a global variable to a given i32 value. Command fails if the module is not found, global is not exported, mutable, or of i32 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3400 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_I32.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3769 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command GLOBAL_SET_I64
Set a global variable to a given i64 value. Command fails if the module is not found, global is not exported, mutable, or of i64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| moduleName | Name of the module to set global for |
| name | Name of the global |
| value | Value to set global to |
|
protected |
Base-class handler function for command GLOBAL_SET_I64
Set a global variable to a given i64 value. Command fails if the module is not found, global is not exported, mutable, or of i64 type
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3459 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_I64.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3780 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::init | ( | FwSizeType | queueDepth, |
| FwEnumStoreType | instance = 0 |
||
| ) |
Initialize WasmSequencerComponentBase object.
| queueDepth | The queue depth |
| instance | The instance number |
Definition at line 605 of file WasmSequencerComponentAc.cpp.
|
protected |
Get the state of state machine instance interpreter.
Definition at line 2684 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cancel to state machine interpreter.
Definition at line 2831 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal checkTimers to state machine interpreter.
Definition at line 2864 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cmd_CONTINUE to state machine interpreter.
Definition at line 2808 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cmdCancel to state machine interpreter.
| value | The value |
Definition at line 2818 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal entered to state machine interpreter.
Definition at line 2841 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseFailure to state machine interpreter.
Definition at line 2897 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseTimeIncomparable to state machine interpreter.
Definition at line 2920 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseTimeout to state machine interpreter.
Definition at line 2930 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseUnexpected to state machine interpreter.
| value | The value |
Definition at line 2907 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResume to state machine interpreter.
Definition at line 2874 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResumeI32 to state machine interpreter.
| value | The value |
Definition at line 2884 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterFinished to state machine interpreter.
| value | The value |
Definition at line 2953 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterHostFunctionNeedsPause to state machine interpreter.
Definition at line 2989 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterOutOfFuel to state machine interpreter.
Definition at line 2979 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterTrap to state machine interpreter.
| value | The value |
Definition at line 2966 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal run to state machine interpreter.
| value | The value |
Definition at line 2851 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal serialInMessage to state machine interpreter.
| value | The value |
Definition at line 2940 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command INVOKE
Invoke a main function from a loaded module
| opCode | The opcode |
| cmdSeq | The command sequence number |
| module | Name of the module to invoke a function from |
| block | Block until sequence has finished running |
| seqArgs | Arguments to invoke the sequence entrypoint with |
|
protected |
Base-class handler function for command INVOKE
Invoke a main function from a loaded module
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3138 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command INVOKE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3725 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdOut is connected
| portNum | The port number |
Definition at line 1914 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdRegOut is connected
| portNum | The port number |
Definition at line 1814 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdResponseOut is connected
| portNum | The port number |
Definition at line 1825 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port getParam is connected
| portNum | The port number |
Definition at line 1925 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port getTlmChan is connected
| portNum | The port number |
Definition at line 1936 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port logOut is connected
| portNum | The port number |
Definition at line 1836 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port prmGet is connected
| portNum | The port number |
Definition at line 1862 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port prmSet is connected
| portNum | The port number |
Definition at line 1873 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port seqDoneOut is connected
| portNum | The port number |
Definition at line 1947 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port seqStartOut is connected
| portNum | The port number |
Definition at line 1958 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port serialOut is connected
| portNum | The port number |
Definition at line 1977 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port timeCaller is connected
| portNum | The port number |
Definition at line 1884 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port tlmOut is connected
| portNum | The port number |
Definition at line 1895 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command LOAD
Loads and validates a WebAssembly module into the store under the given name. Naming the module lets its exports be referenced by other modules and lets INVOKE, GLOBAL_GET and GLOBAL_SET address it. Use an empty name for a single, standalone module. The name must not conflict with a previously loaded module.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| fileName | The name of the sequence file |
| name | WebAssembly module name (empty for a single unnamed module) |
|
protected |
Base-class handler function for command LOAD
Loads and validates a WebAssembly module into the store under the given name. Naming the module lets its exports be referenced by other modules and lets INVOKE, GLOBAL_GET and GLOBAL_SET address it. Use an empty name for a single, standalone module. The name must not conflict with a previously loaded module.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3079 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command LOAD.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3714 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::loadParameters | ( | ) |
Load the parameters from a parameter source.
Connect the parameter first
Definition at line 1694 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Lock the guarded mutex.
Definition at line 8714 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogActivityHi
An ACTIVITY_HI event emitted by the guest program
Definition at line 8035 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceCancelled
The sequence was cancelled
Definition at line 6537 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequencePaused
Execution was paused at a breakpoint
Definition at line 7158 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceStarting
A sequence is starting after the main entrypoint was invoked
Definition at line 6373 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceSucceeded
The interpreter ran a program to completion
Definition at line 6455 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueF32.
Definition at line 4692 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueF64.
Definition at line 4798 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueI32.
Definition at line 4480 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueI64.
Definition at line 4586 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogActivityLo
An ACTIVITY_LO event emitted by the guest program
Definition at line 8110 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogDiagnostic
A DIAGNOSTIC event emitted by the guest program
Definition at line 8185 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event StoreAllocationSucceeded
The interpreter store was allocated with capacity for the given number of modules
Definition at line 3828 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event BufferTooLarge
A guest host function supplied a buffer larger than the host maximum for that call
Definition at line 5495 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event BufferTooSmall
A guest host function supplied a buffer too small to hold the host value being returned
Definition at line 5618 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event FileOpenError
Failed to open the requested Wasm module file
Definition at line 4904 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidId
A guest host function supplied a 64-bit id (telemetry channel or parameter id) that does not fit in the narrower id type used by the framework. Casting it directly would silently alias a different, valid id, so the request is rejected rather than truncated.
Definition at line 7393 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidPointer.
Definition at line 5741 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidPort
A guest serial port host function requested a port index outside the configured range
Definition at line 5930 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidSeverity
The guest requested an event at a severity that is not permitted for guest programs (an out-of-range id, or FATAL/COMMAND which are reserved for the host). The guest message is preserved and reported here at WARNING_HI.
Definition at line 6278 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event InvalidBlockingTypeValue.
Definition at line 5848 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event InvalidModuleEntrypoint.
Definition at line 7780 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogWarningHi
A WARNING_HI event emitted by the guest program
Definition at line 7885 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleLoadFailed
A module failed to decode/validate while loading
Definition at line 5175 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleMainInvokeFailed
Failed to invoke a module's main entrypoint
Definition at line 5260 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleStartInvokeFailed
Failed to invoke a module's start function
Definition at line 5345 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceExited
The sequence finished with a non-zero code: the guest returned a non-zero value from main, or called fprime.exit with a non-zero code
Definition at line 6642 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceFilePathNotContained
A ground-supplied sequence file name contained a ".." path-traversal component while SEQ_BASE_DIR was configured, so it could escape the base directory. The load is rejected rather than opening a path outside the configured base dir.
Definition at line 5087 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceFilePathTooLong
The SEQ_BASE_DIR base directory joined with the requested sequence file path exceeds the file-path buffer; the load will fail to open the truncated path.
Definition at line 4999 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceHostFailure
A host function the sequence was awaiting failed: an error reply, a reply timeout, an unexpected reply, or an incomparable timer
Definition at line 7013 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequencePanic
The guest called fprime.panic
Definition at line 6765 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceTrapped
The interpreter aborted the sequence with a byte-code trap
Definition at line 6888 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SerialInFrameTooLarge
An inbound serial frame was larger than the receiving queue could ever hold and was dropped. serialIn is fed by external hardware/ground data, so an oversized frame is rejected here rather than asserting on flight software.
Definition at line 6158 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SerialPortSendFailed
A guest serial port payload could not be serialized onto the serial output port (the receiving port rejected the guest-supplied bytes)
Definition at line 6053 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SleepDurationTooLarge
The guest requested a sleep whose duration (in microseconds) does not fit the host timer representation (its whole-seconds part overflows U32)
Definition at line 7288 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event TooManyBlockingCommands
A blocking command could not be queued because too many commands are already waiting on the sequencer to finish
Definition at line 5430 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event WrongCmdResponseIndex
A command response arrived for the correct opcode from this sequence, but for a different dispatch instance than the one currently being awaited.
Definition at line 7639 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event CmdResponseFromOldSequence
A command response arrived carrying a context (cmdUid) from a previous sequence run. Reported (not failed) because a late reply after CANCEL is nominal.
Definition at line 7498 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ControllerBusy
A command was issued in a state where it is not valid
Definition at line 3975 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ControllerCannotInvoke
A command was issued in a state where it is not valid
Definition at line 3910 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalGetFailed.
Definition at line 4371 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalSetFailed.
Definition at line 4262 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogWarningLo
A WARNING_LO event emitted by the guest program
Definition at line 7960 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event MemoryGrowRejected
A guest memory.grow could not be serviced by the guest bump allocator and was rejected. The guest sees memory.grow return -1; execution continues.
| reason | why the grow was rejected |
| requestedSize | the requested new linear-memory size in bytes |
Definition at line 4157 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleNotFound
Failed to find a loaded module with the requested name
Definition at line 4082 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceNotRunning
No sequence is running so we cannot continue from a pause
Definition at line 7223 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called whenever parameters are loaded.
This function does nothing by default. You may override it.
Definition at line 8641 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called whenever a parameter is updated.
This function does nothing by default. You may override it.
| id | The parameter ID |
Definition at line 8635 of file WasmSequencerComponentAc.cpp.
|
protected |
Get parameter HOST_FUNCTION_TIMEOUT_SECS
the number of seconds to wait before giving up on a host function/command. if <= 0 or greater than U32 max, never time out. accuracy of this timeout is determined by the rate group driving this component. it will be rounded up.
| valid | Whether the parameter is valid |
Definition at line 8651 of file WasmSequencerComponentAc.cpp.
|
protected |
Get parameter INSTRUCTION_FUEL
Number of Wasm instructions to execute per interpreter cycle. Larger numbers will effect the responsiveness of the interpreter to PAUSE commands. The interpreter will always pause before commands.
Larger numbers make the interpreter faster because the engine doesn't need to feed itself through a queue to fuel more cycles.
| valid | Whether the parameter is valid |
Definition at line 8664 of file WasmSequencerComponentAc.cpp.
|
protected |
Get parameter SEQ_BASE_DIR
A literal prefix prepended to every requested sequence file path before resolution following the rules of Os::File::open. When non-empty it also acts as a containment boundary: a requested name with a ".." component is rejected rather than being allowed to escape the prefix.
| valid | Whether the parameter is valid |
Definition at line 8677 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command PAUSE
Pauses the execution of the sequencer, just before it is about to start spinning. This simply pends a pause flag that will be taken before the sequence engine starts up again.
This command completes immediately
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command PAUSE
Pauses the execution of the sequencer, just before it is about to start spinning. This simply pends a pause flag that will be taken before the sequence engine starts up again.
This command completes immediately
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3282 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command PAUSE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3747 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::regCommands | ( | ) |
Register commands with the Command Dispatcher.
Connect the dispatcher first
Definition at line 1594 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command RUN
Run a Wasm module main function on it's own in the interpreter This command first resets the store (discarding any modules previously staged with LOAD), then is short-hand for:
If $block == Svc.BlockState.BLOCK this command will wait for completion.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| fileName | The name of the sequence file |
| block | Block until sequence has finished running |
| seqArgs | Optional arguments to execute the sequence with Depending on the sequence being loaded these arguments may differ |
|
protected |
Base-class handler function for command RUN
Run a Wasm module main function on it's own in the interpreter This command first resets the store (discarding any modules previously staged with LOAD), then is short-hand for:
If $block == Svc.BlockState.BLOCK this command will wait for completion.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3020 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command RUN.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3703 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port seqCancelIn.
| portNum | The port number |
|
protected |
Handler base-class function for input port seqCancelIn.
| portNum | The port number |
Definition at line 2313 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port seqDoneOut.
| portNum | The port number |
| opCode | Command Op Code |
| cmdSeq | Command Sequence |
| response | The command response argument |
Definition at line 2598 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port seqRunIn.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
|
protected |
Handler base-class function for input port seqRunIn.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2326 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port seqRunIn.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2505 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port seqStartOut.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2622 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port serialIn.
| portNum | The port number |
| buffer | The serialization buffer |
|
protected |
Handler base-class function for input port serialIn.
| portNum | The port number |
| buffer | The serialization buffer |
Definition at line 2452 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port serialOut.
| portNum | The port number |
| buffer | The serialization buffer |
Definition at line 2652 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_cmdOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputComPort * | port | ||
| ) |
Connect port to cmdOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1336 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_cmdRegOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputCmdRegPort * | port | ||
| ) |
Connect port to cmdRegOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1212 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_cmdResponseOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputCmdResponsePort * | port | ||
| ) |
Connect port to cmdResponseOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1226 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_getParam_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputPrmGetPort * | port | ||
| ) |
Connect port to getParam[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1350 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_getTlmChan_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputTlmGetPort * | port | ||
| ) |
Connect port to getTlmChan[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1364 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_logOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputLogPort * | port | ||
| ) |
Connect port to logOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1240 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_prmGet_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputPrmGetPort * | port | ||
| ) |
Connect port to prmGet[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1272 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_prmSet_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputPrmSetPort * | port | ||
| ) |
Connect port to prmSet[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1286 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_seqDoneOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputCmdResponsePort * | port | ||
| ) |
Connect port to seqDoneOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1378 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_seqStartOut_OutputPort | ( | FwIndexType | portNum, |
| Svc::InputCmdSeqInPort * | port | ||
| ) |
Connect port to seqStartOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1392 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_timeCaller_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputTimePort * | port | ||
| ) |
Connect port to timeCaller[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1300 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::set_tlmOut_OutputPort | ( | FwIndexType | portNum, |
| Fw::InputTlmPort * | port | ||
| ) |
Connect port to tlmOut[portNum].
| portNum | The port number |
| port | The input port |
Definition at line 1314 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Implementation for action cancelPendingRequest of state machine Svc_WasmSequencer_ControllerStateMachine
Abort a load/invoke that was cancelled before the engine ran
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action clearCancelRequested of state machine Svc_WasmSequencer_ControllerStateMachine
Acknowledge/clear any pending cancel
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action incrementSequenceFailure of state machine Svc_WasmSequencer_ControllerStateMachine
Increment the SequencesFailed telemetry counter
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action invokeMain of state machine Svc_WasmSequencer_ControllerStateMachine
Invoke the main function for module in context
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action invokeStart of state machine Svc_WasmSequencer_ControllerStateMachine
Invoke the start function on a loaded module
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action load of state machine Svc_WasmSequencer_ControllerStateMachine
Load a module into the store. Emits loadSucceded or loadFailed depending on result
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action processInvoke of state machine Svc_WasmSequencer_ControllerStateMachine
Action to save the invoke arguments and emit an 'invoked' signal
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleInvalidMain of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting that a given module has no [valid] main function
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleMainFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting a module failed during execution. Increment telemetry counters.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleMainInvokeFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting why the invocation of a module main failed
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleStarted of state machine Svc_WasmSequencer_ControllerStateMachine
Reports that a module started running it's main function
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleStartFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting a module failed during execution of start. Increment telemetry counters.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleStartInvokeFailed of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting why the invocation of a module start failed
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action reportModuleSucceeded of state machine Svc_WasmSequencer_ControllerStateMachine
Emit an event noting a module succeeded during execution. Increment telemetry counters.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action resetStore of state machine Svc_WasmSequencer_ControllerStateMachine
Create a new store with N_MODULES (parameter) modules
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action respond_block_ERROR of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to $block == BLOCK requests with ERROR. Responds to any pending WAIT requests with ERROR
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respond_block_OK of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to $block == BLOCK requests with OK Responds to any pending WAIT requests with OK
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respond_ERROR of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with EXECUTION_ERROR
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respond_noblock_OK of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to $block == NO_BLOCK requests with OK
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respondInvoke_BUSY of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with BUSY Emit an event to say why we are rejecting this request in the current state
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respondInvoke_ERROR of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with EXECUTION_ERROR Emit an event to say why we are rejecting this request in the current state
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action respondLoad_BUSY of state machine Svc_WasmSequencer_ControllerStateMachine
Responds to request with BUSY Emit an event to say why we are rejecting this request in the current state
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action runEngine of state machine Svc_WasmSequencer_ControllerStateMachine
Send a signal to the engine state machine to begin running The engine will asynchronously reply with the engineFinished signal
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setCancelRequested of state machine Svc_WasmSequencer_ControllerStateMachine
Latch a cancel that arrives while a sequence is loading/resolving
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard cancelRequested of state machine Svc_WasmSequencer_ControllerStateMachine
True if a cancel was latched since the controller last came to rest.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard interpreterSucceeded of state machine Svc_WasmSequencer_ControllerStateMachine
Check if the last engine execution finished executing successfully
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard invokeSucceeded of state machine Svc_WasmSequencer_ControllerStateMachine
return true if invokeStatus == SPACEWASM_OK. This flag is set as a result of invokeStart/invokeMain
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for guard moduleHasStart of state machine Svc_WasmSequencer_ControllerStateMachine
return true if this module has a start function
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for guard moduleHasValidMain of state machine Svc_WasmSequencer_ControllerStateMachine
return true if this module has a valid main function ([] -> i32)
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action checkSleepTimers of state machine Svc_WasmSequencer_InterpreterStateMachine
A periodic check on the pending timer to see if we can wake up
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action checkTimeout of state machine Svc_WasmSequencer_InterpreterStateMachine
A periodic check on any host function to guard against timeouts
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearContext of state machine Svc_WasmSequencer_InterpreterStateMachine
Clear the current executing context
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearExitStatus of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearPause of state machine Svc_WasmSequencer_InterpreterStateMachine
sets the pause flag to false
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action clearPendingHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine
clears the pending host function port call
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action cmdReplyOK of state machine Svc_WasmSequencer_InterpreterStateMachine
Respond to a pending command with OK
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action dequeueSerialAndResume of state machine Svc_WasmSequencer_InterpreterStateMachine
Dequeue a serial message into the host guest memory and resume the interpreter
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action dispatchPendingHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine
dispatch a host function port call
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action finish of state machine Svc_WasmSequencer_InterpreterStateMachine
Send a signal back to the controller state machine that we have finished executing The response codes are stored in m_exit (reason, code, lastTrapReason)
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action reportPaused of state machine Svc_WasmSequencer_InterpreterStateMachine
reports that execution was paused at a breakpoint
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action reset of state machine Svc_WasmSequencer_InterpreterStateMachine
resets the engine's state (clears operand stack, pc, fp, sp)
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action resume of state machine Svc_WasmSequencer_InterpreterStateMachine
spacewasm_engine_resume
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action resumeI32 of state machine Svc_WasmSequencer_InterpreterStateMachine
spacewasm_engine_resume_some(I32(value))
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setContext of state machine Svc_WasmSequencer_InterpreterStateMachine
Set the current executing context
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setExitCode of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action setExitReason_CANCEL of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_HOST_FAILURE of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_INTERPRETER_FINISHED of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_INTERPRETER_TRAP of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_REPLY_TIMEOUT of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_TIMER_INCOMPARABLE of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setExitReason_UNEXPECTED_REPLY of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setLastHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action setTrapReason of state machine Svc_WasmSequencer_InterpreterStateMachine.
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for action signalEntered of state machine Svc_WasmSequencer_InterpreterStateMachine
generic signal raised
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for action spin of state machine Svc_WasmSequencer_InterpreterStateMachine
spins the interpreter loop, executing up to a bounded number of instructions
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard blockingSerialIn of state machine Svc_WasmSequencer_InterpreterStateMachine
Check if we are currently blocking on a serial_recv() for a given serial port index
| smId | The state machine id |
| signal | The signal |
| value | The value |
|
protectedpure virtual |
Implementation for guard dequeueSucceeded of state machine Svc_WasmSequencer_InterpreterStateMachine
Return true dequeueSerialAndResume processed a message successfully
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard pendingHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine
a host function is waiting to be processed
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard pendingHostFunctionIsSleep of state machine Svc_WasmSequencer_InterpreterStateMachine
the pending host function is a sleep (therefore we need to check the sleep timers)
| smId | The state machine id |
| signal | The signal |
|
protectedpure virtual |
Implementation for guard pendingPause of state machine Svc_WasmSequencer_InterpreterStateMachine
return true if execution should pause before spinning the interpreter again
| smId | The state machine id |
| signal | The signal |
|
protected |
Write telemetry channel given its local id and serialized value. Warning: This is a low level telemetry interface that does not guarentee channel type safety. It is up to the caller to make sure the serialized data matches the definition in the model. Update on change semantics are ignored, this telemetry is always written
| id | The channel id |
| _tlmBuff | The serialized telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8264 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel CommandsDispatched
Commands dispatched total
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8480 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel CommandsFailed
Number of commands that failed
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8517 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel ControllerState
Current executing state of the sequencer controller
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8295 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel InterpreterState
Current executing state of the WebAssembly interpreter engine
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8332 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel LastTrapReason
Reason last sequence trapped
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8554 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SeqName
Currently running sequence name. When a module is loaded under an empty name (RUN, or LOAD with no name) the name is the filename without .wasm; otherwise it is the module name provided to LOAD
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8591 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SequencesCancelled
Sequences that were cancelled
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8443 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SequencesFailed
Sequences that failed to validate or execute
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8406 of file WasmSequencerComponentAc.cpp.
|
protected |
Write telemetry channel SequencesSucceeded
Sequences successfully completed
| arg | The telemetry value |
| _tlmTime | Timestamp. Default: unspecified, request from getTime port |
Definition at line 8369 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Unlock the guarded mutex.
Definition at line 8720 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for command WAIT
Wait for the interpreter to finish and return it's result as a CmdResponse
| opCode | The opcode |
| cmdSeq | The command sequence number |
|
protected |
Base-class handler function for command WAIT
Wait for the interpreter to finish and return it's result as a CmdResponse
| opCode | The opcode |
| cmdSeq | The command sequence number |
| args | The command argument buffer |
Definition at line 3197 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command WAIT.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3736 of file WasmSequencerComponentAc.cpp.
|
protectedpure virtual |
Handler for input port writeTelemetry.
| portNum | The port number |
| context | The call order |
|
protected |
Handler base-class function for input port writeTelemetry.
| portNum | The port number |
| context | The call order |
Definition at line 2388 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port writeTelemetry.
| portNum | The port number |
| context | The call order |
Definition at line 2515 of file WasmSequencerComponentAc.cpp.
|
friend |
Friend class tester implementation to support white-box testing.
Definition at line 85 of file WasmSequencerComponentAc.hpp.
|
friend |
Friend class tester to support autocoded test harness.
Definition at line 83 of file WasmSequencerComponentAc.hpp.