9 #if FW_ENABLE_TEXT_LOGGING 19 BUFFERQUEUEIN_BUFFERSEND,
21 COMSTATUSIN_SUCCESSCONDITION,
25 CMD_SET_QUEUE_PRIORITY,
40 class ComponentIpcSerializableBuffer :
50 MAX_DATA_SIZE =
sizeof(BuffUnion),
52 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
55 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
61 U8 m_buff[SERIALIZATION_SIZE];
79 #if !FW_DIRECT_PORT_CALLS 86 this->m_CmdDisp_InputPort[port].
init();
91 this->m_CmdDisp_InputPort[port].
setPortNum(port);
93 #if FW_OBJECT_NAMES == 1 97 this->m_objName.toChar(),
100 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
105 #if !FW_DIRECT_PORT_CALLS 112 this->m_bufferQueueIn_InputPort[port].
init();
117 this->m_bufferQueueIn_InputPort[port].
setPortNum(port);
119 #if FW_OBJECT_NAMES == 1 123 this->m_objName.toChar(),
126 this->m_bufferQueueIn_InputPort[port].setObjName(portName.
toChar());
131 #if !FW_DIRECT_PORT_CALLS 138 this->m_comPacketQueueIn_InputPort[port].
init();
139 this->m_comPacketQueueIn_InputPort[port].
addCallComp(
141 m_p_comPacketQueueIn_in
143 this->m_comPacketQueueIn_InputPort[port].
setPortNum(port);
145 #if FW_OBJECT_NAMES == 1 149 this->m_objName.toChar(),
152 this->m_comPacketQueueIn_InputPort[port].setObjName(portName.
toChar());
157 #if !FW_DIRECT_PORT_CALLS 164 this->m_comStatusIn_InputPort[port].
init();
169 this->m_comStatusIn_InputPort[port].
setPortNum(port);
171 #if FW_OBJECT_NAMES == 1 175 this->m_objName.toChar(),
178 this->m_comStatusIn_InputPort[port].setObjName(portName.
toChar());
183 #if !FW_DIRECT_PORT_CALLS 190 this->m_dataReturnIn_InputPort[port].
init();
195 this->m_dataReturnIn_InputPort[port].
setPortNum(port);
197 #if FW_OBJECT_NAMES == 1 201 this->m_objName.toChar(),
204 this->m_dataReturnIn_InputPort[port].setObjName(portName.
toChar());
209 #if !FW_DIRECT_PORT_CALLS 216 this->m_run_InputPort[port].
init();
223 #if FW_OBJECT_NAMES == 1 227 this->m_objName.toChar(),
230 this->m_run_InputPort[port].setObjName(portName.
toChar());
235 #if !FW_DIRECT_PORT_CALLS 242 this->m_CmdReg_OutputPort[port].
init();
244 #if FW_OBJECT_NAMES == 1 248 this->m_objName.toChar(),
251 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
256 #if !FW_DIRECT_PORT_CALLS 263 this->m_CmdStatus_OutputPort[port].
init();
265 #if FW_OBJECT_NAMES == 1 269 this->m_objName.toChar(),
272 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
277 #if !FW_DIRECT_PORT_CALLS 284 this->m_Log_OutputPort[port].
init();
286 #if FW_OBJECT_NAMES == 1 290 this->m_objName.toChar(),
293 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
298 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 302 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
305 this->m_LogText_OutputPort[port].
init();
307 #if FW_OBJECT_NAMES == 1 311 this->m_objName.toChar(),
314 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
319 #if !FW_DIRECT_PORT_CALLS 326 this->m_Time_OutputPort[port].
init();
328 #if FW_OBJECT_NAMES == 1 332 this->m_objName.toChar(),
335 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
340 #if !FW_DIRECT_PORT_CALLS 347 this->m_Tlm_OutputPort[port].
init();
349 #if FW_OBJECT_NAMES == 1 353 this->m_objName.toChar(),
356 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
361 #if !FW_DIRECT_PORT_CALLS 368 this->m_bufferReturnOut_OutputPort[port].
init();
370 #if FW_OBJECT_NAMES == 1 374 this->m_objName.toChar(),
377 this->m_bufferReturnOut_OutputPort[port].setObjName(portName.
toChar());
382 #if !FW_DIRECT_PORT_CALLS 389 this->m_dataOut_OutputPort[port].
init();
391 #if FW_OBJECT_NAMES == 1 395 this->m_objName.toChar(),
398 this->m_dataOut_OutputPort[port].setObjName(portName.
toChar());
406 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
410 static_cast<FwAssertArgType>(qStat)
414 #if !FW_DIRECT_PORT_CALLS 425 static_cast<FwAssertArgType>(portNum)
428 return &this->m_CmdDisp_InputPort[portNum];
433 #if !FW_DIRECT_PORT_CALLS 444 static_cast<FwAssertArgType>(portNum)
447 return &this->m_bufferQueueIn_InputPort[portNum];
455 static_cast<FwAssertArgType>(portNum)
458 return &this->m_comPacketQueueIn_InputPort[portNum];
466 static_cast<FwAssertArgType>(portNum)
469 return &this->m_comStatusIn_InputPort[portNum];
477 static_cast<FwAssertArgType>(portNum)
480 return &this->m_dataReturnIn_InputPort[portNum];
488 static_cast<FwAssertArgType>(portNum)
491 return &this->m_run_InputPort[portNum];
496 #if !FW_DIRECT_PORT_CALLS 510 static_cast<FwAssertArgType>(portNum)
513 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
524 static_cast<FwAssertArgType>(portNum)
527 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
538 static_cast<FwAssertArgType>(portNum)
544 #if FW_ENABLE_TEXT_LOGGING == 1 546 void ComQueueComponentBase ::
547 set_LogText_OutputPort(
553 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
554 static_cast<FwAssertArgType>(portNum)
557 this->m_LogText_OutputPort[portNum].addCallPort(port);
570 static_cast<FwAssertArgType>(portNum)
573 this->m_Time_OutputPort[portNum].
addCallPort(port);
584 static_cast<FwAssertArgType>(portNum)
592 #if !FW_DIRECT_PORT_CALLS 606 static_cast<FwAssertArgType>(portNum)
609 this->m_bufferReturnOut_OutputPort[portNum].
addCallPort(port);
620 static_cast<FwAssertArgType>(portNum)
623 this->m_dataOut_OutputPort[portNum].
addCallPort(port);
628 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 637 Fw::InputSerializePort* port
642 static_cast<FwAssertArgType>(portNum)
645 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
651 Fw::InputSerializePort* port
656 static_cast<FwAssertArgType>(portNum)
659 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
665 Fw::InputSerializePort* port
670 static_cast<FwAssertArgType>(portNum)
673 this->m_Log_OutputPort[portNum].registerSerialPort(port);
676 #if FW_ENABLE_TEXT_LOGGING == 1 678 void ComQueueComponentBase ::
679 set_LogText_OutputPort(
681 Fw::InputSerializePort* port
685 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
686 static_cast<FwAssertArgType>(portNum)
689 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
697 Fw::InputSerializePort* port
702 static_cast<FwAssertArgType>(portNum)
705 this->m_Time_OutputPort[portNum].registerSerialPort(port);
711 Fw::InputSerializePort* port
716 static_cast<FwAssertArgType>(portNum)
719 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
724 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 733 Fw::InputSerializePort* port
738 static_cast<FwAssertArgType>(portNum)
741 this->m_bufferReturnOut_OutputPort[portNum].registerSerialPort(port);
747 Fw::InputSerializePort* port
752 static_cast<FwAssertArgType>(portNum)
755 this->m_dataOut_OutputPort[portNum].registerSerialPort(port);
791 Fw::ActiveComponentBase(compName)
802 #if !FW_DIRECT_PORT_CALLS 813 static_cast<FwAssertArgType>(portNum)
816 return this->m_CmdReg_OutputPort[portNum].
isConnected();
824 static_cast<FwAssertArgType>(portNum)
827 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
835 static_cast<FwAssertArgType>(portNum)
838 return this->m_Log_OutputPort[portNum].
isConnected();
841 #if FW_ENABLE_TEXT_LOGGING == 1 843 bool ComQueueComponentBase ::
844 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 847 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
848 static_cast<FwAssertArgType>(portNum)
851 return this->m_LogText_OutputPort[portNum].isConnected();
861 static_cast<FwAssertArgType>(portNum)
864 return this->m_Time_OutputPort[portNum].
isConnected();
872 static_cast<FwAssertArgType>(portNum)
875 return this->m_Tlm_OutputPort[portNum].
isConnected();
880 #if !FW_DIRECT_PORT_CALLS 891 static_cast<FwAssertArgType>(portNum)
894 return this->m_bufferReturnOut_OutputPort[portNum].
isConnected();
902 static_cast<FwAssertArgType>(portNum)
905 return this->m_dataOut_OutputPort[portNum].
isConnected();
926 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
929 switch (opCode - idBase) {
977 static_cast<FwAssertArgType>(portNum)
985 ComponentIpcSerializableBuffer msg;
989 _status = msg.serializeFrom(
990 static_cast<FwEnumStoreType>(BUFFERQUEUEIN_BUFFERSEND)
994 static_cast<FwAssertArgType>(_status)
998 _status = msg.serializeFrom(portNum);
1001 static_cast<FwAssertArgType>(_status)
1005 _status = msg.serializeFrom(fwBuffer);
1008 static_cast<FwAssertArgType>(_status)
1015 if (qStatus == Os::Queue::Status::FULL) {
1022 static_cast<FwAssertArgType>(qStatus)
1036 static_cast<FwAssertArgType>(portNum)
1045 ComponentIpcSerializableBuffer msg;
1049 _status = msg.serializeFrom(
1050 static_cast<FwEnumStoreType>(COMPACKETQUEUEIN_COM)
1054 static_cast<FwAssertArgType>(_status)
1058 _status = msg.serializeFrom(portNum);
1061 static_cast<FwAssertArgType>(_status)
1065 _status = msg.serializeFrom(data);
1068 static_cast<FwAssertArgType>(_status)
1072 _status = msg.serializeFrom(context);
1075 static_cast<FwAssertArgType>(_status)
1082 if (qStatus == Os::Queue::Status::FULL) {
1089 static_cast<FwAssertArgType>(qStatus)
1102 static_cast<FwAssertArgType>(portNum)
1110 ComponentIpcSerializableBuffer msg;
1114 _status = msg.serializeFrom(
1115 static_cast<FwEnumStoreType>(COMSTATUSIN_SUCCESSCONDITION)
1119 static_cast<FwAssertArgType>(_status)
1123 _status = msg.serializeFrom(portNum);
1126 static_cast<FwAssertArgType>(_status)
1130 _status = msg.serializeFrom(condition);
1133 static_cast<FwAssertArgType>(_status)
1142 static_cast<FwAssertArgType>(qStatus)
1156 static_cast<FwAssertArgType>(portNum)
1176 static_cast<FwAssertArgType>(portNum)
1184 ComponentIpcSerializableBuffer msg;
1188 _status = msg.serializeFrom(
1189 static_cast<FwEnumStoreType>(RUN_SCHED)
1193 static_cast<FwAssertArgType>(_status)
1197 _status = msg.serializeFrom(portNum);
1200 static_cast<FwAssertArgType>(_status)
1204 _status = msg.serializeFrom(context);
1207 static_cast<FwAssertArgType>(_status)
1214 if (qStatus == Os::Queue::Status::FULL) {
1221 static_cast<FwAssertArgType>(qStatus)
1270 #if !FW_DIRECT_PORT_CALLS 1284 static_cast<FwAssertArgType>(portNum)
1288 this->m_bufferReturnOut_OutputPort[portNum].isConnected(),
1289 static_cast<FwAssertArgType>(portNum)
1291 this->m_bufferReturnOut_OutputPort[portNum].
invoke(
1305 static_cast<FwAssertArgType>(portNum)
1309 this->m_dataOut_OutputPort[portNum].isConnected(),
1310 static_cast<FwAssertArgType>(portNum)
1312 this->m_dataOut_OutputPort[portNum].
invoke(
1332 this->CmdStatus_out(0, opCode, cmdSeq, response);
1353 ComponentIpcSerializableBuffer msg;
1357 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_FLUSH_QUEUE));
1360 static_cast<FwAssertArgType>(_status)
1366 _status = msg.serializeFrom(port);
1369 static_cast<FwAssertArgType>(_status)
1372 _status = msg.serializeFrom(opCode);
1375 static_cast<FwAssertArgType>(_status)
1378 _status = msg.serializeFrom(cmdSeq);
1381 static_cast<FwAssertArgType>(_status)
1384 _status = msg.serializeFrom(args);
1387 static_cast<FwAssertArgType>(_status)
1396 static_cast<FwAssertArgType>(qStatus)
1412 ComponentIpcSerializableBuffer msg;
1416 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_FLUSH_ALL_QUEUES));
1419 static_cast<FwAssertArgType>(_status)
1425 _status = msg.serializeFrom(port);
1428 static_cast<FwAssertArgType>(_status)
1431 _status = msg.serializeFrom(opCode);
1434 static_cast<FwAssertArgType>(_status)
1437 _status = msg.serializeFrom(cmdSeq);
1440 static_cast<FwAssertArgType>(_status)
1443 _status = msg.serializeFrom(args);
1446 static_cast<FwAssertArgType>(_status)
1455 static_cast<FwAssertArgType>(qStatus)
1471 ComponentIpcSerializableBuffer msg;
1475 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SET_QUEUE_PRIORITY));
1478 static_cast<FwAssertArgType>(_status)
1484 _status = msg.serializeFrom(port);
1487 static_cast<FwAssertArgType>(_status)
1490 _status = msg.serializeFrom(opCode);
1493 static_cast<FwAssertArgType>(_status)
1496 _status = msg.serializeFrom(cmdSeq);
1499 static_cast<FwAssertArgType>(_status)
1502 _status = msg.serializeFrom(args);
1505 static_cast<FwAssertArgType>(_status)
1514 static_cast<FwAssertArgType>(qStatus)
1572 this->Time_out(0, _logTime);
1582 #if FW_AMPCS_COMPATIBLE 1587 static_cast<FwAssertArgType>(_status)
1591 #if FW_AMPCS_COMPATIBLE 1598 static_cast<FwAssertArgType>(_status)
1604 static_cast<FwAssertArgType>(_status)
1607 #if FW_AMPCS_COMPATIBLE 1614 static_cast<FwAssertArgType>(_status)
1620 static_cast<FwAssertArgType>(_status)
1633 #if FW_ENABLE_TEXT_LOGGING 1634 if (this->isConnected_LogText_OutputPort(0)) {
1635 #if FW_OBJECT_NAMES == 1 1636 const char* _formatString =
1637 "(%s) %s: The %s queue at index %" PRIi16
" overflowed";
1639 const char* _formatString =
1640 "%s: The %s queue at index %" PRIi16
" overflowed";
1644 queueType.toString(queueTypeStr);
1647 (void) _logString.
format(
1650 this->m_objName.toChar(),
1678 this->Time_out(0, _logTime);
1688 #if FW_AMPCS_COMPATIBLE 1693 static_cast<FwAssertArgType>(_status)
1697 #if FW_AMPCS_COMPATIBLE 1704 static_cast<FwAssertArgType>(_status)
1710 static_cast<FwAssertArgType>(_status)
1713 #if FW_AMPCS_COMPATIBLE 1720 static_cast<FwAssertArgType>(_status)
1726 static_cast<FwAssertArgType>(_status)
1729 #if FW_AMPCS_COMPATIBLE 1736 static_cast<FwAssertArgType>(_status)
1742 static_cast<FwAssertArgType>(_status)
1755 #if FW_ENABLE_TEXT_LOGGING 1756 if (this->isConnected_LogText_OutputPort(0)) {
1757 #if FW_OBJECT_NAMES == 1 1758 const char* _formatString =
1759 "(%s) %s: %s %" PRIi16
" priority changed to %" PRIi16
"";
1761 const char* _formatString =
1762 "%s: %s %" PRIi16
" priority changed to %" PRIi16
"";
1766 queueType.toString(queueTypeStr);
1769 (void) _logString.
format(
1772 this->m_objName.toChar(),
1774 "QueuePriorityChanged ",
1807 this->Time_out(0, _tlmTime);
1837 static_cast<FwAssertArgType>(_stat)
1859 static_cast<FwAssertArgType>(_stat)
1879 this->Time_out(0, _time);
1894 ComponentIpcSerializableBuffer _msg;
1904 static_cast<FwAssertArgType>(_msgStatus)
1914 static_cast<FwAssertArgType>(_deserStatus)
1917 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
1919 if (_msgType == COMQUEUE_COMPONENT_EXIT) {
1924 _deserStatus = _msg.deserializeTo(portNum);
1927 static_cast<FwAssertArgType>(_deserStatus)
1932 case BUFFERQUEUEIN_BUFFERSEND: {
1935 _deserStatus = _msg.deserializeTo(fwBuffer);
1938 static_cast<FwAssertArgType>(_deserStatus)
1950 case COMPACKETQUEUEIN_COM: {
1953 _deserStatus = _msg.deserializeTo(data);
1956 static_cast<FwAssertArgType>(_deserStatus)
1961 _deserStatus = _msg.deserializeTo(context);
1964 static_cast<FwAssertArgType>(_deserStatus)
1977 case COMSTATUSIN_SUCCESSCONDITION: {
1980 _deserStatus = _msg.deserializeTo(condition);
1983 static_cast<FwAssertArgType>(_deserStatus)
1998 _deserStatus = _msg.deserializeTo(context);
2001 static_cast<FwAssertArgType>(_deserStatus)
2013 case CMD_FLUSH_QUEUE: {
2016 _deserStatus = _msg.deserializeTo(_opCode);
2019 static_cast<FwAssertArgType>(_deserStatus)
2024 _deserStatus = _msg.deserializeTo(_cmdSeq);
2027 static_cast<FwAssertArgType>(_deserStatus)
2032 _deserStatus = _msg.deserializeTo(args);
2035 static_cast<FwAssertArgType>(_deserStatus)
2073 #if FW_CMD_CHECK_RESIDUAL 2094 case CMD_FLUSH_ALL_QUEUES: {
2097 _deserStatus = _msg.deserializeTo(_opCode);
2100 static_cast<FwAssertArgType>(_deserStatus)
2105 _deserStatus = _msg.deserializeTo(_cmdSeq);
2108 static_cast<FwAssertArgType>(_deserStatus)
2113 _deserStatus = _msg.deserializeTo(args);
2116 static_cast<FwAssertArgType>(_deserStatus)
2124 #if FW_CMD_CHECK_RESIDUAL 2141 case CMD_SET_QUEUE_PRIORITY: {
2144 _deserStatus = _msg.deserializeTo(_opCode);
2147 static_cast<FwAssertArgType>(_deserStatus)
2152 _deserStatus = _msg.deserializeTo(_cmdSeq);
2155 static_cast<FwAssertArgType>(_deserStatus)
2160 _deserStatus = _msg.deserializeTo(args);
2163 static_cast<FwAssertArgType>(_deserStatus)
2216 #if FW_CMD_CHECK_RESIDUAL 2248 void ComQueueComponentBase ::
2259 compPtr->CmdDisp_handlerBase(
2271 void ComQueueComponentBase ::
2272 m_p_bufferQueueIn_in(
2280 compPtr->bufferQueueIn_handlerBase(
2286 void ComQueueComponentBase ::
2287 m_p_comPacketQueueIn_in(
2296 compPtr->comPacketQueueIn_handlerBase(
2303 void ComQueueComponentBase ::
2312 compPtr->comStatusIn_handlerBase(
2318 void ComQueueComponentBase ::
2319 m_p_dataReturnIn_in(
2328 compPtr->dataReturnIn_handlerBase(
2335 void ComQueueComponentBase ::
2344 compPtr->run_handlerBase(
2350 #if !FW_DIRECT_PORT_CALLS 2356 void ComQueueComponentBase ::
2364 static_cast<FwAssertArgType>(portNum)
2368 this->m_CmdReg_OutputPort[portNum].isConnected(),
2369 static_cast<FwAssertArgType>(portNum)
2371 this->m_CmdReg_OutputPort[portNum].
invoke(
2376 void ComQueueComponentBase ::
2386 static_cast<FwAssertArgType>(portNum)
2390 this->m_CmdStatus_OutputPort[portNum].isConnected(),
2391 static_cast<FwAssertArgType>(portNum)
2393 this->m_CmdStatus_OutputPort[portNum].
invoke(
2400 void ComQueueComponentBase ::
2411 static_cast<FwAssertArgType>(portNum)
2415 this->m_Log_OutputPort[portNum].isConnected(),
2416 static_cast<FwAssertArgType>(portNum)
2418 this->m_Log_OutputPort[portNum].
invoke(
2426 #if FW_ENABLE_TEXT_LOGGING 2428 void ComQueueComponentBase ::
2438 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
2439 static_cast<FwAssertArgType>(portNum)
2443 this->m_LogText_OutputPort[portNum].isConnected(),
2444 static_cast<FwAssertArgType>(portNum)
2446 this->m_LogText_OutputPort[portNum].invoke(
2456 void ComQueueComponentBase ::
2464 static_cast<FwAssertArgType>(portNum)
2468 this->m_Time_OutputPort[portNum].isConnected(),
2469 static_cast<FwAssertArgType>(portNum)
2471 this->m_Time_OutputPort[portNum].
invoke(
2476 void ComQueueComponentBase ::
2486 static_cast<FwAssertArgType>(portNum)
2490 this->m_Tlm_OutputPort[portNum].isConnected(),
2491 static_cast<FwAssertArgType>(portNum)
2493 this->m_Tlm_OutputPort[portNum].
invoke(
Serialization/Deserialization operation was successful.
virtual void comStatusIn_handler(FwIndexType portNum, Fw::Success &condition)=0
Handler for input port comStatusIn.
Channel ID for buffQueueDepth.
static constexpr FwIndexType getNum_Tlm_OutputPorts()
void addCallPort(InputTimePort *callPort)
Register an input port.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
virtual ~ComQueueComponentBase()
Destroy ComQueueComponentBase object.
static constexpr FwSizeType CAPACITY
virtual void FLUSH_QUEUE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::QueueType &queueType, FwIndexType indexType)=0
void dataOut_out(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke output port dataOut.
void FLUSH_QUEUE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIdType FwOpcodeType
The type of a command opcode.
static constexpr FwIndexType getNum_dataReturnIn_InputPorts()
static constexpr FwIndexType getNum_bufferReturnOut_OutputPorts()
FwIdType getIdBase() const
PlatformSizeType FwSizeType
void tlmWrite_buffQueueDepth(const Svc::BuffQueueDepth &arg, Fw::Time _tlmTime=Fw::Time()) const
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
bool isConnected_Log_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_CmdDisp_InputPorts()
Status
status returned from the queue send function
virtual void FLUSH_ALL_QUEUES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command FLUSH_ALL_QUEUES.
static constexpr FwIndexType getNum_CmdReg_OutputPorts()
message to exit active component task
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)=0
Handler for input port dataReturnIn.
The size of the serial representation.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
static constexpr FwSizeType CAPACITY
void dataReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)
Handler base-class function for input port dataReturnIn.
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
Svc::InputSchedPort * get_run_InputPort(FwIndexType portNum)
void log_ACTIVITY_HI_QueuePriorityChanged(const Svc::QueueType &queueType, FwIndexType indexType, FwIndexType newPriority) const
virtual void FLUSH_ALL_QUEUES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_comPacketQueueIn_InputPorts()
static constexpr FwSizeType CAPACITY
void set_bufferReturnOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferReturnOut[portNum].
void init()
Initialization function.
Enum representing a command response.
virtual void FLUSH_QUEUE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command FLUSH_QUEUE.
void set_dataOut_OutputPort(FwIndexType portNum, Svc::InputComDataWithContextPort *port)
Connect port to dataOut[portNum].
No time base has been established (Required)
void FLUSH_ALL_QUEUES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
bool isConnected_Time_OutputPort(FwIndexType portNum) const
Os::Queue m_queue
queue object for active component
void addCallPort(InputComDataWithContextPort *callPort)
Register an input port.
Array of queue depths for Fw::Com types.
void addCallPort(InputTlmPort *callPort)
Register an input port.
An enumeration of queue data types.
void init()
Object initializer.
void SET_QUEUE_PRIORITY_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void comStatusIn_handlerBase(FwIndexType portNum, Fw::Success &condition)
Handler base-class function for input port comStatusIn.
SerializeStatus
forward declaration for string
Channel ID for comQueueDepth.
Message will block until space is available.
void log_WARNING_HI_QueueOverflow(const Svc::QueueType &queueType, FwIndexType index) const
virtual void bufferQueueIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferQueueIn.
FwIdType FwEventIdType
The type of an event identifier.
void invoke(FwOpcodeType opCode) const
Invoke a port connection.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
static constexpr FwSizeType CAPACITY
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port connection.
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
virtual void run_handler(FwIndexType portNum, U32 context)=0
Handler for input port run.
void run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port run.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
void invoke(Fw::Time &time) const
Invoke a port connection.
static constexpr FwIndexType getNum_bufferQueueIn_InputPorts()
bool isConnected_dataOut_OutputPort(FwIndexType portNum) const
Set the priority of a specific queue at runtime.
Array of queue depths for Fw::Buffer types.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
void bufferReturnOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferReturnOut.
virtual void run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void invoke(Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke a port connection.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
Fw::InputComPort * get_comPacketQueueIn_InputPort(FwIndexType portNum)
A serious but recoverable event.
Errors dispatching messages.
void init()
Initialization function.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port connection.
const char * toChar() const
Convert to a C-style char*.
virtual void bufferQueueIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferQueueIn.
Enum representing event severity.
virtual void comPacketQueueIn_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port comPacketQueueIn.
void comPacketQueueIn_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port comPacketQueueIn.
Svc::InputComDataWithContextPort * get_dataReturnIn_InputPort(FwIndexType portNum)
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
virtual void SET_QUEUE_PRIORITY_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SET_QUEUE_PRIORITY.
void CmdDisp_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port CmdDisp.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
virtual void comPacketQueueIn_preMsgHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port comPacketQueueIn.
Fw::InputBufferSendPort * get_bufferQueueIn_InputPort(FwIndexType portNum)
uint8_t U8
8-bit unsigned integer
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_dataOut_OutputPorts()
Command failed to deserialize.
void init()
Initialization function.
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Important informational events.
void init()
Initialization function.
static constexpr FwIndexType getNum_comStatusIn_InputPorts()
static constexpr FwIndexType getNum_Log_OutputPorts()
Fw::InputSuccessConditionPort * get_comStatusIn_InputPort(FwIndexType portNum)
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
Queue priority changed event.
virtual void SET_QUEUE_PRIORITY_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::QueueType &queueType, FwIndexType indexType, FwIndexType newPriority)=0
A message was sent requesting an exit of the loop.
ComQueueComponentBase(const char *compName="")
Construct ComQueueComponentBase object.
PlatformIndexType FwIndexType
void addCallPort(InputLogPort *callPort)
Register an input port.
void init()
Initialization function.
Type used to pass context info between components during framing/deframing.
void incNumMsgDropped()
increment the number of messages dropped
bool isConnected_bufferReturnOut_OutputPort(FwIndexType portNum) const
void tlmWrite_comQueueDepth(const Svc::ComQueueDepth &arg, Fw::Time _tlmTime=Fw::Time()) const
RateGroupDivider component implementation.
message sent/received okay
static constexpr FwIndexType getNum_Time_OutputPorts()
void regCommands()
Register commands with the Command Dispatcher.
virtual void comStatusIn_preMsgHook(FwIndexType portNum, Fw::Success &condition)
Pre-message hook for async input port comStatusIn.
Message will return with status when space is unavailable.
Implementation of malloc based allocator.
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum) const
bool isConnected_CmdReg_OutputPort(FwIndexType portNum) const
virtual void bufferQueueIn_overflowHook(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Overflow hook for async input port bufferQueueIn.
void init()
Initialization function.
static constexpr FwSizeType CAPACITY
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
static constexpr FwIndexType getNum_run_InputPorts()
BYTE cmdPortSize[Fw::CmdPortBuffer::CAPACITY]
void bufferQueueIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferQueueIn.