![]() |
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 73 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of special input ports.
| Enumerator | |
|---|---|
| NUM_CMDIN_INPUT_PORTS | |
Definition at line 93 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 98 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of serial input ports.
| Enumerator | |
|---|---|
| NUM_SERIALIN_INPUT_PORTS | |
Definition at line 107 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of special output ports.
Definition at line 112 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 124 of file WasmSequencerComponentAc.hpp.
|
protected |
Enumerations for numbers of serial output ports.
| Enumerator | |
|---|---|
| NUM_SERIALOUT_OUTPUT_PORTS | |
Definition at line 133 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] ``` 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 138 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 183 of file WasmSequencerComponentAc.hpp.
|
protected |
Channel IDs.
Definition at line 250 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 263 of file WasmSequencerComponentAc.hpp.
|
strongprotected |
State machine identifiers.
| Enumerator | |
|---|---|
| controller | |
| interpreter | |
Definition at line 281 of file WasmSequencerComponentAc.hpp.
|
protected |
Construct WasmSequencerComponentBase object.
| compName | The component name |
Definition at line 1797 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Destroy WasmSequencerComponentBase object.
Definition at line 1806 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 3260 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 2193 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port checkTimers.
| portNum | The port number |
| context | The call order |
Definition at line 2489 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 2000 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 2534 of file WasmSequencerComponentAc.cpp.
|
protected |
Emit command response.
| opCode | The opcode |
| cmdSeq | The command sequence number |
| response | The command response |
Definition at line 3007 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 2246 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 2498 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 3345 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command CONTINUE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3762 of file WasmSequencerComponentAc.cpp.
|
protected |
Get the state of state machine instance controller.
Definition at line 2682 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cancel to state machine controller.
Definition at line 2763 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal engineFinished to state machine controller.
| value | The value |
Definition at line 2799 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invoke to state machine controller.
| value | The value |
Definition at line 2724 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invoked to state machine controller.
| value | The value |
Definition at line 2737 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal invokeFailed to state machine controller.
| value | The value |
Definition at line 2750 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal load to state machine controller.
| value | The value |
Definition at line 2711 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal loadFailed to state machine controller.
| value | The value |
Definition at line 2786 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal loadSucceeded to state machine controller.
| value | The value |
Definition at line 2773 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal run to state machine controller.
| value | The value |
Definition at line 2698 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 1131 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 1112 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 1142 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 1153 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 1164 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 1194 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 1175 of file WasmSequencerComponentAc.cpp.
|
inlinestaticprotected |
Get the number of checkTimers input ports
Definition at line 1066 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdIn input ports
Definition at line 1053 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdOut output ports
Definition at line 1186 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdRegOut output ports
Definition at line 1120 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdResponseIn input ports
Definition at line 1073 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of cmdResponseOut output ports
Definition at line 1127 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of getParam output ports
Definition at line 1193 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of getTlmChan output ports
Definition at line 1200 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of logOut output ports
Definition at line 1134 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of prmGet output ports
Definition at line 1152 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of prmSet output ports
Definition at line 1159 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqCancelIn input ports
Definition at line 1080 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqDoneOut output ports
Definition at line 1207 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqRunIn input ports
Definition at line 1087 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of seqStartOut output ports
Definition at line 1214 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of serialIn input ports
Definition at line 1107 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of serialOut output ports
Definition at line 1227 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of timeCaller output ports
Definition at line 1166 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of tlmOut output ports
Definition at line 1173 of file WasmSequencerComponentAc.hpp.
|
inlinestaticprotected |
Get the number of writeTelemetry input ports
Definition at line 1094 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 2556 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 2578 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 3640 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_GET.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3817 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 3522 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_F32.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3795 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 3581 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_F64.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3806 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 3404 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_I32.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3773 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 3463 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command GLOBAL_SET_I64.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3784 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 606 of file WasmSequencerComponentAc.cpp.
|
protected |
Get the state of state machine instance interpreter.
Definition at line 2688 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cancel to state machine interpreter.
Definition at line 2835 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal checkTimers to state machine interpreter.
Definition at line 2868 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cmd_CONTINUE to state machine interpreter.
Definition at line 2812 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal cmdCancel to state machine interpreter.
| value | The value |
Definition at line 2822 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal entered to state machine interpreter.
Definition at line 2845 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseFailure to state machine interpreter.
Definition at line 2901 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseTimeIncomparable to state machine interpreter.
Definition at line 2924 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseTimeout to state machine interpreter.
Definition at line 2934 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResponseUnexpected to state machine interpreter.
| value | The value |
Definition at line 2911 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResume to state machine interpreter.
Definition at line 2878 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal hostResumeI32 to state machine interpreter.
| value | The value |
Definition at line 2888 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterFinished to state machine interpreter.
| value | The value |
Definition at line 2957 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterHostFunctionNeedsPause to state machine interpreter.
Definition at line 2993 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterOutOfFuel to state machine interpreter.
Definition at line 2983 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal interpreterTrap to state machine interpreter.
| value | The value |
Definition at line 2970 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal run to state machine interpreter.
| value | The value |
Definition at line 2855 of file WasmSequencerComponentAc.cpp.
|
protected |
Send signal serialInMessage to state machine interpreter.
| value | The value |
Definition at line 2944 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 |
|
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 3142 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command INVOKE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3729 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdOut is connected
| portNum | The port number |
Definition at line 1918 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdRegOut is connected
| portNum | The port number |
Definition at line 1818 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port cmdResponseOut is connected
| portNum | The port number |
Definition at line 1829 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port getParam is connected
| portNum | The port number |
Definition at line 1929 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port getTlmChan is connected
| portNum | The port number |
Definition at line 1940 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port logOut is connected
| portNum | The port number |
Definition at line 1840 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port prmGet is connected
| portNum | The port number |
Definition at line 1866 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port prmSet is connected
| portNum | The port number |
Definition at line 1877 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port seqDoneOut is connected
| portNum | The port number |
Definition at line 1951 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port seqStartOut is connected
| portNum | The port number |
Definition at line 1962 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port serialOut is connected
| portNum | The port number |
Definition at line 1981 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port timeCaller is connected
| portNum | The port number |
Definition at line 1888 of file WasmSequencerComponentAc.cpp.
|
protected |
Check whether port tlmOut is connected
| portNum | The port number |
Definition at line 1899 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 3083 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command LOAD.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3718 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::loadParameters | ( | ) |
Load the parameters from a parameter source.
Connect the parameter first
Definition at line 1695 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Lock the guarded mutex.
Definition at line 8729 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogActivityHi
An ACTIVITY_HI event emitted by the guest program
Definition at line 8039 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceCancelled
The sequence was cancelled
Definition at line 6541 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequencePaused
Execution was paused at a breakpoint
Definition at line 7162 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceStarting
A sequence is starting after the main entrypoint was invoked
Definition at line 6377 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceSucceeded
The interpreter ran a program to completion
Definition at line 6459 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueF32.
Definition at line 4696 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueF64.
Definition at line 4802 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueI32.
Definition at line 4484 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalValueI64.
Definition at line 4590 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogActivityLo
An ACTIVITY_LO event emitted by the guest program
Definition at line 8114 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogDiagnostic
A DIAGNOSTIC event emitted by the guest program
Definition at line 8189 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event StoreAllocationSucceeded
The interpreter store was allocated with capacity for the given number of modules
Definition at line 3832 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 5499 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 5622 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event FileOpenError
Failed to open the requested Wasm module file
Definition at line 4908 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 7397 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event HostFunctionInvalidPointer.
Definition at line 5745 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 5934 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 6282 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event InvalidBlockingTypeValue.
Definition at line 5852 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event InvalidModuleEntrypoint.
Definition at line 7784 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogWarningHi
A WARNING_HI event emitted by the guest program
Definition at line 7889 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleLoadFailed
A module failed to decode/validate while loading
Definition at line 5179 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleMainInvokeFailed
Failed to invoke a module's main entrypoint
Definition at line 5264 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleStartInvokeFailed
Failed to invoke a module's start function
Definition at line 5349 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 6646 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 5091 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 5003 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 7017 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequencePanic
The guest called fprime.panic
Definition at line 6769 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceTrapped
The interpreter aborted the sequence with a byte-code trap
Definition at line 6892 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 6162 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 6057 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 7292 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 5434 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 7643 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 7502 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ControllerBusy
A command was issued in a state where it is not valid
Definition at line 3979 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ControllerCannotInvoke
A command was issued in a state where it is not valid
Definition at line 3914 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalGetFailed.
Definition at line 4375 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event GlobalSetFailed.
Definition at line 4266 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event LogWarningLo
A WARNING_LO event emitted by the guest program
Definition at line 7964 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 4161 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event ModuleNotFound
Failed to find a loaded module with the requested name
Definition at line 4086 of file WasmSequencerComponentAc.cpp.
|
protected |
Log event SequenceNotRunning
No sequence is running so we cannot continue from a pause
Definition at line 7227 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called for each parameter when parameters are loaded.
By default this notifies the component via parameterUpdated when the parameter loaded successfully (valid or default). You may override it, for example to distinguish load from update.
| id | The parameter ID |
| valid | The parameter validity status |
Definition at line 8651 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Called whenever parameters are loaded.
By default this notifies the component of each parameter via parameterUpdated. You may override it, for example to suppress notification on load.
Definition at line 8645 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 8639 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 8666 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 8679 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 8692 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 3286 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command PAUSE.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3751 of file WasmSequencerComponentAc.cpp.
| void Svc::WasmSequencerComponentBase::regCommands | ( | ) |
Register commands with the Command Dispatcher.
Connect the dispatcher first
Definition at line 1595 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 |
|
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 3024 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command RUN.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3707 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 2317 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 2602 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 2330 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 2509 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port seqStartOut.
| portNum | The port number |
| filename | The sequence file |
| args | Sequence arguments |
Definition at line 2626 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 2456 of file WasmSequencerComponentAc.cpp.
|
protected |
Invoke output port serialOut.
| portNum | The port number |
| buffer | The serialization buffer |
Definition at line 2656 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 1337 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 1213 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 1227 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 1351 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 1365 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 1241 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 1273 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 1287 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 1379 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 1393 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 1301 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 1315 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 Reports a done on seqDoneOut for a port-sourced RUN
| 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 Reports a done on seqDoneOut for a port-sourced RUN
| 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 Reports a done on seqDoneOut for a port-sourced RUN
| 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 8268 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 8484 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 8521 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 8299 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 8336 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 8558 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 8595 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 8447 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 8410 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 8373 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Unlock the guarded mutex.
Definition at line 8735 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 3201 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for command WAIT.
| opCode | The opcode |
| cmdSeq | The command sequence number |
Definition at line 3740 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 2392 of file WasmSequencerComponentAc.cpp.
|
protectedvirtual |
Pre-message hook for async input port writeTelemetry.
| portNum | The port number |
| context | The call order |
Definition at line 2519 of file WasmSequencerComponentAc.cpp.
|
friend |
Friend class tester implementation to support white-box testing.
Definition at line 84 of file WasmSequencerComponentAc.hpp.
|
friend |
Friend class tester to support autocoded test harness.
Definition at line 82 of file WasmSequencerComponentAc.hpp.