F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Svc::WasmSequencer Class Referencefinal

#include <Svc/WasmSequencer/WasmSequencer.hpp>

Inheritance diagram for Svc::WasmSequencer:
Svc::WasmSequencerComponentBase Fw::ActiveComponentBase Fw::QueuedComponentBase Fw::PassiveComponentBase Fw::ObjBase

Classes

struct  Config
 
struct  SerialInQueueConfig
 Per-port serialIn queue configuration. More...
 

Public Types

enum  SerialInQueueFullBehavior { SerialInQueueFullBehavior::DROP_NEWEST, SerialInQueueFullBehavior::DROP_OLDEST, SerialInQueueFullBehavior::ASSERT }
 Configuration to select what happens when a serialIn fills. More...
 
- 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 }
 

Public Member Functions

 WasmSequencer (const char *const compName)
 Construct WasmSequencer object. More...
 
 ~WasmSequencer ()=default
 Destroy WasmSequencer object. More...
 
 WasmSequencer (const WasmSequencer &)=delete
 
WasmSequenceroperator= (const WasmSequencer &)=delete
 
void configure (const Config &cfg, Fw::MemAllocator &mallocator)
 
void deinit () override
 Tear down the allocations made by configure() More...
 
- Public Member Functions inherited from Svc::WasmSequencerComponentBase
void init (FwSizeType queueDepth, FwEnumStoreType instance=0)
 Initialize WasmSequencerComponentBase object. More...
 
Fw::InputCmdPortget_cmdIn_InputPort (FwIndexType portNum)
 
Svc::InputSchedPortget_checkTimers_InputPort (FwIndexType portNum)
 
Fw::InputCmdResponsePortget_cmdResponseIn_InputPort (FwIndexType portNum)
 
Svc::InputCmdSeqCancelPortget_seqCancelIn_InputPort (FwIndexType portNum)
 
Svc::InputCmdSeqInPortget_seqRunIn_InputPort (FwIndexType portNum)
 
Svc::InputSchedPortget_writeTelemetry_InputPort (FwIndexType portNum)
 
Fw::InputSerializePort * get_serialIn_InputPort (FwIndexType portNum)
 
void set_cmdRegOut_OutputPort (FwIndexType portNum, Fw::InputCmdRegPort *port)
 Connect port to cmdRegOut[portNum]. More...
 
void set_cmdResponseOut_OutputPort (FwIndexType portNum, Fw::InputCmdResponsePort *port)
 Connect port to cmdResponseOut[portNum]. More...
 
void set_logOut_OutputPort (FwIndexType portNum, Fw::InputLogPort *port)
 Connect port to logOut[portNum]. More...
 
void set_prmGet_OutputPort (FwIndexType portNum, Fw::InputPrmGetPort *port)
 Connect port to prmGet[portNum]. More...
 
void set_prmSet_OutputPort (FwIndexType portNum, Fw::InputPrmSetPort *port)
 Connect port to prmSet[portNum]. More...
 
void set_timeCaller_OutputPort (FwIndexType portNum, Fw::InputTimePort *port)
 Connect port to timeCaller[portNum]. More...
 
void set_tlmOut_OutputPort (FwIndexType portNum, Fw::InputTlmPort *port)
 Connect port to tlmOut[portNum]. More...
 
void set_cmdOut_OutputPort (FwIndexType portNum, Fw::InputComPort *port)
 Connect port to cmdOut[portNum]. More...
 
void set_getParam_OutputPort (FwIndexType portNum, Fw::InputPrmGetPort *port)
 Connect port to getParam[portNum]. More...
 
void set_getTlmChan_OutputPort (FwIndexType portNum, Fw::InputTlmGetPort *port)
 Connect port to getTlmChan[portNum]. More...
 
void set_seqDoneOut_OutputPort (FwIndexType portNum, Fw::InputCmdResponsePort *port)
 Connect port to seqDoneOut[portNum]. More...
 
void set_seqStartOut_OutputPort (FwIndexType portNum, Svc::InputCmdSeqInPort *port)
 Connect port to seqStartOut[portNum]. More...
 
void regCommands ()
 Register commands with the Command Dispatcher. More...
 
void loadParameters ()
 Load the parameters from a parameter source. More...
 
- Public Member Functions inherited from Fw::ActiveComponentBase
void start (FwTaskPriorityType priority=Os::Task::TASK_PRIORITY_DEFAULT, FwSizeType stackSize=Os::Task::TASK_DEFAULT, FwSizeType cpuAffinity=Os::Task::TASK_DEFAULT, FwTaskIdType identifier=static_cast< FwTaskIdType >(Os::Task::TASK_DEFAULT))
 called by instantiator when task is to be started More...
 
void exit ()
 exit task in active component More...
 
Os::Task::Status join ()
 Join the thread. More...
 
 DEPRECATED (Os::Task::Status join(void **value_ptr), "Switch to .join()")
 Join to thread with discarded value_ptr. More...
 
- Public Member Functions inherited from Fw::PassiveComponentBase
void setIdBase (const FwIdType)
 Set the ID base. More...
 
FwIdType getIdBase () const
 

Static Public Attributes

static constexpr FwSizeType SPACEWASM_MEMORY_ALIGNMENT = 8
 SpaceWasm has a hard-coded memory alignment requirement. More...
 
static constexpr FwSizeType SPACEWASM_IR_PAGE_SIZE = 512
 

Friends

class WasmSequencerTester
 

Additional Inherited Members

- Protected Types inherited from Svc::WasmSequencerComponentBase
enum  { NUM_CMDIN_INPUT_PORTS = 1 }
 Enumerations for numbers of special input ports. More...
 
enum  {
  NUM_CHECKTIMERS_INPUT_PORTS = 1, NUM_CMDRESPONSEIN_INPUT_PORTS = 1, NUM_SEQCANCELIN_INPUT_PORTS = 1, NUM_SEQRUNIN_INPUT_PORTS = 1,
  NUM_WRITETELEMETRY_INPUT_PORTS = 1
}
 Enumerations for numbers of typed input ports. More...
 
enum  { NUM_SERIALIN_INPUT_PORTS = 5 }
 Enumerations for numbers of serial input ports. More...
 
enum  {
  NUM_CMDREGOUT_OUTPUT_PORTS = 1, NUM_CMDRESPONSEOUT_OUTPUT_PORTS = 1, NUM_LOGOUT_OUTPUT_PORTS = 1, NUM_LOGTEXTOUT_OUTPUT_PORTS = 1,
  NUM_PRMGET_OUTPUT_PORTS = 1, NUM_PRMSET_OUTPUT_PORTS = 1, NUM_TIMECALLER_OUTPUT_PORTS = 1, NUM_TLMOUT_OUTPUT_PORTS = 1
}
 Enumerations for numbers of special output ports. More...
 
enum  {
  NUM_CMDOUT_OUTPUT_PORTS = 1, NUM_GETPARAM_OUTPUT_PORTS = 1, NUM_GETTLMCHAN_OUTPUT_PORTS = 1, NUM_SEQDONEOUT_OUTPUT_PORTS = 1,
  NUM_SEQSTARTOUT_OUTPUT_PORTS = 1
}
 Enumerations for numbers of typed output ports. More...
 
enum  { NUM_SERIALOUT_OUTPUT_PORTS = 5 }
 Enumerations for numbers of serial output ports. More...
 
enum  {
  OPCODE_RUN = 0x0, OPCODE_LOAD = 0x1, OPCODE_INVOKE = 0x2, OPCODE_WAIT = 0x3,
  OPCODE_CANCEL = 0x4, OPCODE_PAUSE = 0x5, OPCODE_CONTINUE = 0x6, OPCODE_GLOBAL_SET_I32 = 0x7,
  OPCODE_GLOBAL_SET_I64 = 0x8, OPCODE_GLOBAL_SET_F32 = 0x9, OPCODE_GLOBAL_SET_F64 = 0xa, OPCODE_GLOBAL_GET = 0xb,
  OPCODE_HOST_FUNCTION_TIMEOUT_SECS_SET = 0xc, OPCODE_HOST_FUNCTION_TIMEOUT_SECS_SAVE = 0xd, OPCODE_INSTRUCTION_FUEL_SET = 0xe, OPCODE_INSTRUCTION_FUEL_SAVE = 0xf,
  OPCODE_SEQ_BASE_DIR_SET = 0x10, OPCODE_SEQ_BASE_DIR_SAVE = 0x11
}
 Command opcodes. More...
 
enum  {
  EVENTID_STOREALLOCATIONSUCCEEDED = 0x0, EVENTID_CONTROLLERCANNOTINVOKE = 0x1, EVENTID_CONTROLLERBUSY = 0x2, EVENTID_MODULENOTFOUND = 0x3,
  EVENTID_MEMORYGROWREJECTED = 0x4, EVENTID_GLOBALSETFAILED = 0x5, EVENTID_GLOBALGETFAILED = 0x6, EVENTID_GLOBALVALUEI32 = 0x7,
  EVENTID_GLOBALVALUEI64 = 0x8, EVENTID_GLOBALVALUEF32 = 0x9, EVENTID_GLOBALVALUEF64 = 0xa, EVENTID_FILEOPENERROR = 0xb,
  EVENTID_SEQUENCEFILEPATHTOOLONG = 0xc, EVENTID_SEQUENCEFILEPATHNOTCONTAINED = 0xd, EVENTID_MODULELOADFAILED = 0xe, EVENTID_MODULEMAININVOKEFAILED = 0xf,
  EVENTID_MODULESTARTINVOKEFAILED = 0x10, EVENTID_TOOMANYBLOCKINGCOMMANDS = 0x11, EVENTID_BUFFERTOOLARGE = 0x12, EVENTID_BUFFERTOOSMALL = 0x13,
  EVENTID_HOSTFUNCTIONINVALIDPOINTER = 0x14, EVENTID_INVALIDBLOCKINGTYPEVALUE = 0x15, EVENTID_HOSTFUNCTIONINVALIDPORT = 0x16, EVENTID_SERIALPORTSENDFAILED = 0x17,
  EVENTID_SERIALINFRAMETOOLARGE = 0x18, EVENTID_HOSTFUNCTIONINVALIDSEVERITY = 0x19, EVENTID_SEQUENCESTARTING = 0x1a, EVENTID_SEQUENCESUCCEEDED = 0x1b,
  EVENTID_SEQUENCECANCELLED = 0x1c, EVENTID_SEQUENCEEXITED = 0x1d, EVENTID_SEQUENCEPANIC = 0x1e, EVENTID_SEQUENCETRAPPED = 0x1f,
  EVENTID_SEQUENCEHOSTFAILURE = 0x20, EVENTID_SEQUENCEPAUSED = 0x21, EVENTID_SEQUENCENOTRUNNING = 0x22, EVENTID_SLEEPDURATIONTOOLARGE = 0x23,
  EVENTID_HOSTFUNCTIONINVALIDID = 0x24, EVENTID_CMDRESPONSEFROMOLDSEQUENCE = 0x25, EVENTID_WRONGCMDRESPONSEINDEX = 0x26, EVENTID_INVALIDMODULEENTRYPOINT = 0x27,
  EVENTID_LOGWARNINGHI = 0x28, EVENTID_LOGWARNINGLO = 0x29, EVENTID_LOGACTIVITYHI = 0x2a, EVENTID_LOGACTIVITYLO = 0x2b,
  EVENTID_LOGDIAGNOSTIC = 0x2c
}
 Event IDs. More...
 
enum  {
  CHANNELID_CONTROLLERSTATE = 0x0, CHANNELID_INTERPRETERSTATE = 0x1, CHANNELID_SEQUENCESSUCCEEDED = 0x2, CHANNELID_SEQUENCESFAILED = 0x3,
  CHANNELID_SEQUENCESCANCELLED = 0x4, CHANNELID_COMMANDSDISPATCHED = 0x5, CHANNELID_COMMANDSFAILED = 0x6, CHANNELID_LASTTRAPREASON = 0x7,
  CHANNELID_SEQNAME = 0x8
}
 Channel IDs. More...
 
enum  { PARAMID_HOST_FUNCTION_TIMEOUT_SECS = 0x0, PARAMID_INSTRUCTION_FUEL = 0x1, PARAMID_SEQ_BASE_DIR = 0x2 }
 Parameter IDs. More...
 
enum  SmId : FwEnumStoreType { SmId::controller, SmId::interpreter }
 State machine identifiers. More...
 
- Protected Types inherited from Fw::ActiveComponentBase
enum  Lifecycle { CREATED, DISPATCHING, FINALIZING, DONE }
 Tracks the lifecycle of the component. More...
 
- Protected Member Functions inherited from Svc::WasmSequencerComponentBase
 WasmSequencerComponentBase (const char *compName="")
 Construct WasmSequencerComponentBase object. More...
 
virtual ~WasmSequencerComponentBase ()
 Destroy WasmSequencerComponentBase object. More...
 
bool isConnected_cmdRegOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_cmdResponseOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_logOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_prmGet_OutputPort (FwIndexType portNum) const
 
bool isConnected_prmSet_OutputPort (FwIndexType portNum) const
 
bool isConnected_timeCaller_OutputPort (FwIndexType portNum) const
 
bool isConnected_tlmOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_cmdOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_getParam_OutputPort (FwIndexType portNum) const
 
bool isConnected_getTlmChan_OutputPort (FwIndexType portNum) const
 
bool isConnected_seqDoneOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_seqStartOut_OutputPort (FwIndexType portNum) const
 
bool isConnected_serialOut_OutputPort (FwIndexType portNum) const
 
void cmdIn_handlerBase (FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 Handler base-class function for input port cmdIn. More...
 
void checkTimers_handlerBase (FwIndexType portNum, U32 context)
 Handler base-class function for input port checkTimers. More...
 
void cmdResponseIn_handlerBase (FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
 Handler base-class function for input port cmdResponseIn. More...
 
void seqCancelIn_handlerBase (FwIndexType portNum)
 Handler base-class function for input port seqCancelIn. More...
 
void seqRunIn_handlerBase (FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
 Handler base-class function for input port seqRunIn. More...
 
void writeTelemetry_handlerBase (FwIndexType portNum, U32 context)
 Handler base-class function for input port writeTelemetry. More...
 
void serialIn_handlerBase (FwIndexType portNum, Fw::LinearBufferBase &buffer)
 Handler base-class function for input port serialIn. More...
 
virtual void checkTimers_preMsgHook (FwIndexType portNum, U32 context)
 Pre-message hook for async input port checkTimers. More...
 
virtual void cmdResponseIn_preMsgHook (FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
 Pre-message hook for async input port cmdResponseIn. More...
 
virtual void seqRunIn_preMsgHook (FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args)
 Pre-message hook for async input port seqRunIn. More...
 
virtual void writeTelemetry_preMsgHook (FwIndexType portNum, U32 context)
 Pre-message hook for async input port writeTelemetry. More...
 
void cmdOut_out (FwIndexType portNum, Fw::ComBuffer &data, U32 context) const
 Invoke output port cmdOut. More...
 
Fw::ParamValid getParam_out (FwIndexType portNum, FwPrmIdType id, Fw::ParamBuffer &val) const
 Invoke output port getParam. More...
 
Fw::TlmValid getTlmChan_out (FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
 Invoke output port getTlmChan. More...
 
void seqDoneOut_out (FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
 Invoke output port seqDoneOut. More...
 
void seqStartOut_out (FwIndexType portNum, const Fw::StringBase &filename, const Svc::SeqArgs &args) const
 Invoke output port seqStartOut. More...
 
Fw::SerializeStatus serialOut_out (FwIndexType portNum, Fw::LinearBufferBase &buffer)
 Invoke output port serialOut. More...
 
Svc_WasmSequencer_ControllerStateMachine::State controller_getState () const
 Get the state of state machine instance controller. More...
 
Svc_WasmSequencer_InterpreterStateMachine::State interpreter_getState () const
 Get the state of state machine instance interpreter. More...
 
void controller_sendSignal_run (const Svc::WasmSequencer_LoadRequest &value)
 Send signal run to state machine controller. More...
 
void controller_sendSignal_load (const Svc::WasmSequencer_LoadRequest &value)
 Send signal load to state machine controller. More...
 
void controller_sendSignal_invoke (const Svc::WasmSequencer_InvokeRequest &value)
 Send signal invoke to state machine controller. More...
 
void controller_sendSignal_invoked (const Svc::WasmSequencer_RequestContext &value)
 Send signal invoked to state machine controller. More...
 
void controller_sendSignal_invokeFailed (const Svc::WasmSequencer_RequestContext &value)
 Send signal invokeFailed to state machine controller. More...
 
void controller_sendSignal_cancel ()
 Send signal cancel to state machine controller. More...
 
void controller_sendSignal_loadSucceeded (const Svc::WasmSequencer_RequestContext &value)
 Send signal loadSucceeded to state machine controller. More...
 
void controller_sendSignal_loadFailed (const Svc::WasmSequencer_RequestContext &value)
 Send signal loadFailed to state machine controller. More...
 
void controller_sendSignal_engineFinished (const Svc::WasmSequencer_RequestContext &value)
 Send signal engineFinished to state machine controller. More...
 
void interpreter_sendSignal_cmd_CONTINUE ()
 Send signal cmd_CONTINUE to state machine interpreter. More...
 
void interpreter_sendSignal_cmdCancel (const Svc::WasmSequencer_CommandRequest &value)
 Send signal cmdCancel to state machine interpreter. More...
 
void interpreter_sendSignal_cancel ()
 Send signal cancel to state machine interpreter. More...
 
void interpreter_sendSignal_entered ()
 Send signal entered to state machine interpreter. More...
 
void interpreter_sendSignal_run (const Svc::WasmSequencer_RequestContext &value)
 Send signal run to state machine interpreter. More...
 
void interpreter_sendSignal_checkTimers ()
 Send signal checkTimers to state machine interpreter. More...
 
void interpreter_sendSignal_hostResume ()
 Send signal hostResume to state machine interpreter. More...
 
void interpreter_sendSignal_hostResumeI32 (I32 value)
 Send signal hostResumeI32 to state machine interpreter. More...
 
void interpreter_sendSignal_hostResponseFailure ()
 Send signal hostResponseFailure to state machine interpreter. More...
 
void interpreter_sendSignal_hostResponseUnexpected (const Svc::WasmSequencer_HostFunction &value)
 Send signal hostResponseUnexpected to state machine interpreter. More...
 
void interpreter_sendSignal_hostResponseTimeIncomparable ()
 Send signal hostResponseTimeIncomparable to state machine interpreter. More...
 
void interpreter_sendSignal_hostResponseTimeout ()
 Send signal hostResponseTimeout to state machine interpreter. More...
 
void interpreter_sendSignal_serialInMessage (const FwIndexType &value)
 Send signal serialInMessage to state machine interpreter. More...
 
void interpreter_sendSignal_interpreterFinished (I32 value)
 Send signal interpreterFinished to state machine interpreter. More...
 
void interpreter_sendSignal_interpreterTrap (const Svc::WasmSequencer_TrapReason &value)
 Send signal interpreterTrap to state machine interpreter. More...
 
void interpreter_sendSignal_interpreterOutOfFuel ()
 Send signal interpreterOutOfFuel to state machine interpreter. More...
 
void interpreter_sendSignal_interpreterHostFunctionNeedsPause ()
 Send signal interpreterHostFunctionNeedsPause to state machine interpreter. More...
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_processInvoke (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_InvokeRequest &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_setCancelRequested (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_clearCancelRequested (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_cancelPendingRequest (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respond_noblock_OK (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respond_ERROR (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_incrementSequenceFailure (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respondInvoke_BUSY (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_InvokeRequest &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respondInvoke_ERROR (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_InvokeRequest &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respondLoad_BUSY (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_LoadRequest &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respond_block_OK (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_respond_block_ERROR (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_load (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_LoadRequest &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_invokeStart (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_invokeMain (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleInvalidMain (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleMainInvokeFailed (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleStartInvokeFailed (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleStarted (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleSucceeded (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleStartFailed (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_reportModuleMainFailed (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_resetStore (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_ControllerStateMachine_action_runEngine (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_cmdReplyOK (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, const Svc::WasmSequencer_CommandRequest &value)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_signalEntered (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_spin (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_reset (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_clearExitStatus (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action clearExitStatus of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_INTERPRETER_FINISHED (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_INTERPRETER_FINISHED of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_INTERPRETER_TRAP (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_INTERPRETER_TRAP of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_REPLY_TIMEOUT (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_REPLY_TIMEOUT of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_HOST_FAILURE (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_HOST_FAILURE of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_TIMER_INCOMPARABLE (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_TIMER_INCOMPARABLE of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_UNEXPECTED_REPLY (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_UNEXPECTED_REPLY of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitReason_CANCEL (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setExitReason_CANCEL of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setExitCode (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, I32 value)=0
 Implementation for action setExitCode of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setTrapReason (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, const Svc::WasmSequencer_TrapReason &value)=0
 Implementation for action setTrapReason of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setLastHostFunction (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 Implementation for action setLastHostFunction of state machine Svc_WasmSequencer_InterpreterStateMachine. More...
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_finish (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_reportPaused (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_clearPause (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_dispatchPendingHostFunction (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_clearPendingHostFunction (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_setContext (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_clearContext (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_resume (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_resumeI32 (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, I32 value)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_checkSleepTimers (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_checkTimeout (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal)=0
 
virtual void Svc_WasmSequencer_InterpreterStateMachine_action_dequeueSerialAndResume (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, const FwIndexType &value)=0
 
virtual bool Svc_WasmSequencer_ControllerStateMachine_guard_cancelRequested (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal) const =0
 
virtual bool Svc_WasmSequencer_ControllerStateMachine_guard_moduleHasStart (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value) const =0
 
virtual bool Svc_WasmSequencer_ControllerStateMachine_guard_moduleHasValidMain (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value) const =0
 
virtual bool Svc_WasmSequencer_ControllerStateMachine_guard_invokeSucceeded (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal, const Svc::WasmSequencer_RequestContext &value) const =0
 
virtual bool Svc_WasmSequencer_ControllerStateMachine_guard_interpreterSucceeded (SmId smId, Svc_WasmSequencer_ControllerStateMachine::Signal signal) const =0
 
virtual bool Svc_WasmSequencer_InterpreterStateMachine_guard_pendingPause (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal) const =0
 
virtual bool Svc_WasmSequencer_InterpreterStateMachine_guard_pendingHostFunction (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal) const =0
 
virtual bool Svc_WasmSequencer_InterpreterStateMachine_guard_pendingHostFunctionIsSleep (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal) const =0
 
virtual bool Svc_WasmSequencer_InterpreterStateMachine_guard_blockingSerialIn (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal, const FwIndexType &value) const =0
 
virtual bool Svc_WasmSequencer_InterpreterStateMachine_guard_dequeueSucceeded (SmId smId, Svc_WasmSequencer_InterpreterStateMachine::Signal signal) const =0
 
void cmdResponse_out (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
 Emit command response. More...
 
void RUN_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void LOAD_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void INVOKE_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void WAIT_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void CANCEL_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void PAUSE_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void CONTINUE_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void GLOBAL_SET_I32_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void GLOBAL_SET_I64_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void GLOBAL_SET_F32_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void GLOBAL_SET_F64_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
void GLOBAL_GET_cmdHandlerBase (FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
 
virtual void RUN_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command RUN. More...
 
virtual void LOAD_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command LOAD. More...
 
virtual void INVOKE_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command INVOKE. More...
 
virtual void WAIT_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command WAIT. More...
 
virtual void PAUSE_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command PAUSE. More...
 
virtual void CONTINUE_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command CONTINUE. More...
 
virtual void GLOBAL_SET_I32_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command GLOBAL_SET_I32. More...
 
virtual void GLOBAL_SET_I64_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command GLOBAL_SET_I64. More...
 
virtual void GLOBAL_SET_F32_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command GLOBAL_SET_F32. More...
 
virtual void GLOBAL_SET_F64_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command GLOBAL_SET_F64. More...
 
virtual void GLOBAL_GET_preMsgHook (FwOpcodeType opCode, U32 cmdSeq)
 Pre-message hook for command GLOBAL_GET. More...
 
void log_DIAGNOSTIC_StoreAllocationSucceeded (U16 moduleCount) const
 
void log_WARNING_LO_ControllerCannotInvoke () const
 
void log_WARNING_LO_ControllerBusy (const Svc::WasmSequencer_SignalSource &signalSource, const Svc::WasmSequencer_ControllerStateMachine_State &state) const
 
void log_WARNING_LO_ModuleNotFound (const Fw::StringBase &module_name) const
 
void log_WARNING_LO_MemoryGrowRejected (const Svc::WasmSequencer_MemoryGrowFailReason &reason, U64 requestedSize) const
 
void log_WARNING_LO_GlobalSetFailed (const Fw::StringBase &module_name, const Fw::StringBase &globalName, const Svc::WasmSequencer_Status &reason) const
 Log event GlobalSetFailed. More...
 
void log_WARNING_LO_GlobalGetFailed (const Fw::StringBase &module_name, const Fw::StringBase &globalName, const Svc::WasmSequencer_Status &reason) const
 Log event GlobalGetFailed. More...
 
void log_ACTIVITY_LO_GlobalValueI32 (const Fw::StringBase &module_name, const Fw::StringBase &globalName, I32 value) const
 Log event GlobalValueI32. More...
 
void log_ACTIVITY_LO_GlobalValueI64 (const Fw::StringBase &module_name, const Fw::StringBase &globalName, I64 value) const
 Log event GlobalValueI64. More...
 
void log_ACTIVITY_LO_GlobalValueF32 (const Fw::StringBase &module_name, const Fw::StringBase &globalName, F32 value) const
 Log event GlobalValueF32. More...
 
void log_ACTIVITY_LO_GlobalValueF64 (const Fw::StringBase &module_name, const Fw::StringBase &globalName, F64 value) const
 Log event GlobalValueF64. More...
 
void log_WARNING_HI_FileOpenError (const Fw::StringBase &fileName, I32 status) const
 
void log_WARNING_HI_SequenceFilePathTooLong (const Fw::StringBase &baseDir, const Fw::StringBase &fileName) const
 
void log_WARNING_HI_SequenceFilePathNotContained (const Fw::StringBase &baseDir, const Fw::StringBase &fileName) const
 
void log_WARNING_HI_ModuleLoadFailed (const Svc::WasmSequencer_Status &status) const
 
void log_WARNING_HI_ModuleMainInvokeFailed (const Svc::WasmSequencer_Status &status) const
 
void log_WARNING_HI_ModuleStartInvokeFailed (const Svc::WasmSequencer_Status &status) const
 
void log_WARNING_HI_TooManyBlockingCommands () const
 
void log_WARNING_HI_BufferTooLarge (const Svc::WasmSequencer_HostFunction &host_function, U32 size, U32 maxSize) const
 
void log_WARNING_HI_BufferTooSmall (const Svc::WasmSequencer_HostFunction &host_function, U32 size, U32 valueSize) const
 
void log_WARNING_HI_HostFunctionInvalidPointer (const Svc::WasmSequencer_HostFunction &host_function, const Svc::WasmSequencer_Status &code) const
 Log event HostFunctionInvalidPointer. More...
 
void log_WARNING_HI_InvalidBlockingTypeValue (I32 invalidValue) const
 Log event InvalidBlockingTypeValue. More...
 
void log_WARNING_HI_HostFunctionInvalidPort (const Svc::WasmSequencer_HostFunction &host_function, I32 index, U32 numPorts) const
 
void log_WARNING_HI_SerialPortSendFailed (const Svc::WasmSequencer_HostFunction &host_function, I32 status) const
 
void log_WARNING_HI_SerialInFrameTooLarge (U32 portIndex, U32 size, U32 maxSize) const
 
void log_WARNING_HI_HostFunctionInvalidSeverity (I32 raw, const Fw::StringBase &msg) const
 
void log_ACTIVITY_HI_SequenceStarting (Svc::WasmSequencer_ModuleIdx index) const
 
void log_ACTIVITY_HI_SequenceSucceeded (Svc::WasmSequencer_ModuleIdx index) const
 
void log_ACTIVITY_HI_SequenceCancelled (Svc::WasmSequencer_ModuleIdx index, const Svc::WasmSequencer_SequencePhase &phase) const
 
void log_WARNING_HI_SequenceExited (Svc::WasmSequencer_ModuleIdx index, const Svc::WasmSequencer_SequencePhase &phase, I32 code) const
 
void log_WARNING_HI_SequencePanic (Svc::WasmSequencer_ModuleIdx index, const Svc::WasmSequencer_SequencePhase &phase, I32 code) const
 
void log_WARNING_HI_SequenceTrapped (Svc::WasmSequencer_ModuleIdx index, const Svc::WasmSequencer_SequencePhase &phase, const Svc::WasmSequencer_TrapReason &reason) const
 
void log_WARNING_HI_SequenceHostFailure (Svc::WasmSequencer_ModuleIdx index, const Svc::WasmSequencer_SequencePhase &phase, const Svc::WasmSequencer_ExitReason &reason, const Svc::WasmSequencer_HostFunction &hostFunction) const
 
void log_ACTIVITY_HI_SequencePaused () const
 
void log_WARNING_LO_SequenceNotRunning () const
 
void log_WARNING_HI_SleepDurationTooLarge (const Svc::WasmSequencer_HostFunction &host_function, U64 micros) const
 
void log_WARNING_HI_HostFunctionInvalidId (const Svc::WasmSequencer_HostFunction &host_function, I64 id) const
 
void log_WARNING_LO_CmdResponseFromOldSequence (FwOpcodeType opcode, const Fw::CmdResponse &response, U16 oldSequenceIdx, U16 currentSequenceIdx) const
 
void log_WARNING_HI_WrongCmdResponseIndex (FwOpcodeType opcode, const Fw::CmdResponse &response, U16 actualCmdIdx, U16 expectedCmdIdx) const
 
void log_WARNING_HI_InvalidModuleEntrypoint (Svc::WasmSequencer_ModuleIdx moduleIdx, const Svc::WasmSequencer_Status &status) const
 Log event InvalidModuleEntrypoint. More...
 
void log_WARNING_HI_LogWarningHi (const Fw::StringBase &msg) const
 
void log_WARNING_LO_LogWarningLo (const Fw::StringBase &msg) const
 
void log_ACTIVITY_HI_LogActivityHi (const Fw::StringBase &msg) const
 
void log_ACTIVITY_LO_LogActivityLo (const Fw::StringBase &msg) const
 
void log_DIAGNOSTIC_LogDiagnostic (const Fw::StringBase &msg) const
 
void tlmWrite (FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
 
void tlmWrite_ControllerState (const Svc::WasmSequencer_ControllerStateMachine_State &arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_InterpreterState (const Svc::WasmSequencer_InterpreterStateMachine_State &arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_SequencesSucceeded (U64 arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_SequencesFailed (U64 arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_SequencesCancelled (U64 arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_CommandsDispatched (U64 arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_CommandsFailed (U64 arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_LastTrapReason (const Svc::WasmSequencer_TrapReason &arg, Fw::Time _tlmTime=Fw::Time())
 
void tlmWrite_SeqName (const Fw::StringBase &arg, Fw::Time _tlmTime=Fw::Time())
 
virtual void parameterUpdated (FwPrmIdType id)
 Called whenever a parameter is updated. More...
 
virtual void parametersLoaded ()
 Called whenever parameters are loaded. More...
 
F32 paramGet_HOST_FUNCTION_TIMEOUT_SECS (Fw::ParamValid &valid)
 
FwSizeType paramGet_INSTRUCTION_FUEL (Fw::ParamValid &valid)
 
Fw::ParamString paramGet_SEQ_BASE_DIR (Fw::ParamValid &valid)
 
Fw::Time getTime () const
 
virtual void lock ()
 Lock the guarded mutex. More...
 
virtual void unLock ()
 Unlock the guarded mutex. More...
 
- Protected Member Functions inherited from Fw::ActiveComponentBase
 ActiveComponentBase (const char *name)
 Constructor. More...
 
virtual ~ActiveComponentBase ()
 Destructor. More...
 
void init (FwEnumStoreType instance)
 initialization code More...
 
virtual void preamble ()
 A function that will be called before the event loop is entered. More...
 
MsgDispatchStatus dispatch ()
 The function that will dispatching messages. More...
 
virtual void finalizer ()
 A function that will be called after exiting the loop. More...
 
- Protected Member Functions inherited from Fw::QueuedComponentBase
 QueuedComponentBase (const char *name)
 Constructor. More...
 
virtual ~QueuedComponentBase ()
 Destructor. More...
 
void init (FwEnumStoreType instance)
 initialization function More...
 
Os::Queue::Status createQueue (FwSizeType depth, FwSizeType msgSize)
 
MsgDispatchStatus dispatchAvailableMessages ()
 dispatches all messages currently in the queue, returning status of the dispatch More...
 
FwSizeType getNumMsgsDropped ()
 return number of messages dropped More...
 
void incNumMsgDropped ()
 increment the number of messages dropped More...
 
- Protected Member Functions inherited from Fw::PassiveComponentBase
 PassiveComponentBase (const char *name)
 Named constructor. More...
 
virtual ~PassiveComponentBase ()
 Destructor. More...
 
void init (FwEnumStoreType instance)
 Initialization function. More...
 
FwEnumStoreType getInstance () const
 
- Protected Member Functions inherited from Fw::ObjBase
 ObjBase (const char *name)
 ObjBase constructor. More...
 
virtual ~ObjBase ()
 Destructor. More...
 
void init ()
 Object initializer. More...
 
- Static Protected Member Functions inherited from Svc::WasmSequencerComponentBase
static constexpr FwIndexType getNum_cmdIn_InputPorts ()
 
static constexpr FwIndexType getNum_checkTimers_InputPorts ()
 
static constexpr FwIndexType getNum_cmdResponseIn_InputPorts ()
 
static constexpr FwIndexType getNum_seqCancelIn_InputPorts ()
 
static constexpr FwIndexType getNum_seqRunIn_InputPorts ()
 
static constexpr FwIndexType getNum_writeTelemetry_InputPorts ()
 
static constexpr FwIndexType getNum_serialIn_InputPorts ()
 
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts ()
 
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts ()
 
static constexpr FwIndexType getNum_logOut_OutputPorts ()
 
static constexpr FwIndexType getNum_prmGet_OutputPorts ()
 
static constexpr FwIndexType getNum_prmSet_OutputPorts ()
 
static constexpr FwIndexType getNum_timeCaller_OutputPorts ()
 
static constexpr FwIndexType getNum_tlmOut_OutputPorts ()
 
static constexpr FwIndexType getNum_cmdOut_OutputPorts ()
 
static constexpr FwIndexType getNum_getParam_OutputPorts ()
 
static constexpr FwIndexType getNum_getTlmChan_OutputPorts ()
 
static constexpr FwIndexType getNum_seqDoneOut_OutputPorts ()
 
static constexpr FwIndexType getNum_seqStartOut_OutputPorts ()
 
static constexpr FwIndexType getNum_serialOut_OutputPorts ()
 
- 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...
 

Detailed Description

Definition at line 32 of file WasmSequencer.hpp.

Member Enumeration Documentation

◆ SerialInQueueFullBehavior

Configuration to select what happens when a serialIn fills.

Enumerator
DROP_NEWEST 

Drop the latest message if it cannot fit in the remaining queue space.

DROP_OLDEST 

Oldest message[s] will be de-queued and dropped to make space for the new message. Keep dropping messages until enough space is made

ASSERT 

Trigger an assertion if the queue fills and cannot process another message.

Definition at line 53 of file WasmSequencer.hpp.

Constructor & Destructor Documentation

◆ WasmSequencer() [1/2]

Svc::WasmSequencer::WasmSequencer ( const char *const  compName)

Construct WasmSequencer object.

Parameters
compNameThe component name

Definition at line 50 of file WasmSequencer.cpp.

◆ ~WasmSequencer()

Svc::WasmSequencer::~WasmSequencer ( )
default

Destroy WasmSequencer object.

◆ WasmSequencer() [2/2]

Svc::WasmSequencer::WasmSequencer ( const WasmSequencer )
delete

WasmSequencer owns a raw spacewasm_t* handle and a slot in the process-wide global-allocator registry; copying would double-free both.

Member Function Documentation

◆ configure()

void Svc::WasmSequencer::configure ( const Config cfg,
Fw::MemAllocator mallocator 
)

[REQUIRED] Configure and allocate the dynamic backing pools for heap memory, guest memory, Wasm stack, serialIn queues, and the serialOut buffer.

Definition at line 69 of file WasmSequencer.cpp.

◆ deinit()

void Svc::WasmSequencer::deinit ( )
overridevirtual

Tear down the allocations made by configure()

Reimplemented from Fw::QueuedComponentBase.

Definition at line 138 of file WasmSequencer.cpp.

◆ operator=()

WasmSequencer& Svc::WasmSequencer::operator= ( const WasmSequencer )
delete

Friends And Related Function Documentation

◆ WasmSequencerTester

friend class WasmSequencerTester
friend

Definition at line 33 of file WasmSequencer.hpp.

Member Data Documentation

◆ SPACEWASM_IR_PAGE_SIZE

constexpr FwSizeType Svc::WasmSequencer::SPACEWASM_IR_PAGE_SIZE = 512
static

Heap pages must be able to hold IR pages (512 bytes) minimum type IrWord = U16 type IrPage = [256] IrWord => sizeof(IrPage) == 512

Definition at line 66 of file WasmSequencer.hpp.

◆ SPACEWASM_MEMORY_ALIGNMENT

constexpr FwSizeType Svc::WasmSequencer::SPACEWASM_MEMORY_ALIGNMENT = 8
static

SpaceWasm has a hard-coded memory alignment requirement.

Definition at line 61 of file WasmSequencer.hpp.


The documentation for this class was generated from the following files: