16 "Opcode table limited to opcode range");
18 "Sequencer table limited to range of U32");
30 FW_ASSERT(existingPort == portNum, static_cast<FwAssertArgType>(opCode));
33 const I32 slot =
static_cast<I32
>(this->m_entryTable.
getSize());
40 void CommandDispatcherImpl::compCmdStat_handler(
FwIndexType portNum,
48 this->m_numCmdErrors++;
53 SequenceTrackerEntry trackedCmd;
54 const Fw::Success removeStatus = this->m_sequenceTracker.
remove(cmdSeq, trackedCmd);
56 const FwIndexType portToCall = trackedCmd.callerPort;
57 const U32 context = trackedCmd.context;
90 SequenceTrackerEntry pendingCmd;
92 pendingCmd.context = context;
93 pendingCmd.callerPort = portNum;
95 const Fw::Success pendingInsertStatus = this->m_sequenceTracker.
insert(this->m_seq, pendingCmd);
112 this->m_numCmdsDispatched++;
115 this->m_numCmdErrors++;
126 void CommandDispatcherImpl ::run_handler(
FwIndexType portNum, U32 context) {
132 void CommandDispatcherImpl::CMD_NO_OP_cmdHandler(
FwOpcodeType opCode, U32 cmdSeq) {
146 void CommandDispatcherImpl::CMD_TEST_CMD_1_cmdHandler(
FwOpcodeType opCode, U32 cmdSeq, I32 arg1,
F32 arg2,
U8 arg3) {
151 void CommandDispatcherImpl::CMD_CLEAR_TRACKING_cmdHandler(
FwOpcodeType opCode, U32 cmdSeq) {
153 this->m_sequenceTracker.
clear();
157 void CommandDispatcherImpl::pingIn_handler(
FwIndexType portNum, U32 key) {
173 this->m_numCmdsDropped++;
Serialization/Deserialization operation was successful.
FwIdType FwOpcodeType
The type of a command opcode.
void log_ACTIVITY_HI_NoOpReceived() const
void log_WARNING_HI_CommandDroppedQueueOverflow(FwOpcodeType OpCode, U32 Context)
Invalid opcode dispatched.
enum T e
The raw enum value.
FwSizeType getSize() const override
void log_ACTIVITY_HI_TestCmd1Args(I32 arg1, F32 arg2, U8 arg3) const
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
Enum representing a command response.
Success find(const K &key, V &value) const override
void compCmdSend_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Invoke output port compCmdSend.
void log_DIAGNOSTIC_OpCodeReregistered(FwOpcodeType Opcode, I32 port) const
SerializeStatus
forward declaration for string
float F32
32-bit floating point
void log_COMMAND_OpCodeCompleted(FwOpcodeType Opcode) const
void log_ACTIVITY_HI_NoOpStringReceived(const Fw::StringBase &message) const
void tlmWrite_CommandsDispatched(U32 arg, Fw::Time _tlmTime=Fw::Time())
Success insert(const K &key, const V &value) override
SerializeStatus deserializeFrom(SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) override
Deserialize the contents of this object from a buffer.
Success remove(const K &key, V &value) override
void clear() override
Clear the map.
void log_WARNING_HI_MalformedCommand(Fw::DeserialStatus Status) const
void tlmWrite_CommandsDropped(U32 arg, Fw::Time _tlmTime=Fw::Time())
Component responsible for dispatching incoming commands to registered components. ...
virtual ~CommandDispatcherImpl()
Component destructor.
void tlmWrite_CommandErrors(U32 arg, Fw::Time _tlmTime=Fw::Time())
CommandDispatcherImpl(const char *name)
Command Dispatcher constructor.
FwOpcodeType getOpCode() const
void log_WARNING_HI_InvalidCommand(FwOpcodeType Opcode) const
Command successfully executed.
uint8_t U8
8-bit unsigned integer
void log_COMMAND_OpCodeError(FwOpcodeType Opcode, Fw::CmdResponse error) const
CmdArgBuffer & getArgBuffer()
Command had execution error.
const char * toChar() const
Convert to a C-style char*.
void seqCmdStatus_out(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Invoke output port seqCmdStatus.
PlatformIndexType FwIndexType
void log_DIAGNOSTIC_OpCodeRegistered(FwOpcodeType Opcode, I32 port, I32 slot) const
Log event OpCodeRegistered.
Auto-generated base for CommandDispatcher component.
bool isConnected_seqCmdStatus_OutputPort(FwIndexType portNum)
Command failed validation.
RateGroupDivider component implementation.
Success insert(const K &key, const V &value) override
static constexpr FwIndexType getNum_seqCmdStatus_OutputPorts()
void log_WARNING_HI_TooManyCommands(FwOpcodeType Opcode) const
bool isConnected_compCmdSend_OutputPort(FwIndexType portNum)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void log_COMMAND_OpCodeDispatched(FwOpcodeType Opcode, I32 port) const