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
56 return sizeof(m_buff);
63 const U8* getBuffAddr()
const {
69 U8 m_buff[SERIALIZATION_SIZE];
93 this->m_CmdDisp_InputPort[port].
init();
98 this->m_CmdDisp_InputPort[port].
setPortNum(port);
100 #if FW_OBJECT_NAMES == 1 104 this->m_objName.toChar(),
107 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
117 this->m_bufferQueueIn_InputPort[port].
init();
122 this->m_bufferQueueIn_InputPort[port].
setPortNum(port);
124 #if FW_OBJECT_NAMES == 1 128 this->m_objName.toChar(),
131 this->m_bufferQueueIn_InputPort[port].setObjName(portName.
toChar());
141 this->m_comPacketQueueIn_InputPort[port].
init();
142 this->m_comPacketQueueIn_InputPort[port].
addCallComp(
144 m_p_comPacketQueueIn_in
146 this->m_comPacketQueueIn_InputPort[port].
setPortNum(port);
148 #if FW_OBJECT_NAMES == 1 152 this->m_objName.toChar(),
155 this->m_comPacketQueueIn_InputPort[port].setObjName(portName.
toChar());
165 this->m_comStatusIn_InputPort[port].
init();
170 this->m_comStatusIn_InputPort[port].
setPortNum(port);
172 #if FW_OBJECT_NAMES == 1 176 this->m_objName.toChar(),
179 this->m_comStatusIn_InputPort[port].setObjName(portName.
toChar());
189 this->m_dataReturnIn_InputPort[port].
init();
194 this->m_dataReturnIn_InputPort[port].
setPortNum(port);
196 #if FW_OBJECT_NAMES == 1 200 this->m_objName.toChar(),
203 this->m_dataReturnIn_InputPort[port].setObjName(portName.
toChar());
213 this->m_run_InputPort[port].
init();
220 #if FW_OBJECT_NAMES == 1 224 this->m_objName.toChar(),
227 this->m_run_InputPort[port].setObjName(portName.
toChar());
237 this->m_CmdReg_OutputPort[port].
init();
239 #if FW_OBJECT_NAMES == 1 243 this->m_objName.toChar(),
246 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
256 this->m_CmdStatus_OutputPort[port].
init();
258 #if FW_OBJECT_NAMES == 1 262 this->m_objName.toChar(),
265 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
275 this->m_Log_OutputPort[port].
init();
277 #if FW_OBJECT_NAMES == 1 281 this->m_objName.toChar(),
284 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
288 #if FW_ENABLE_TEXT_LOGGING == 1 292 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
295 this->m_LogText_OutputPort[port].
init();
297 #if FW_OBJECT_NAMES == 1 301 this->m_objName.toChar(),
304 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
315 this->m_Time_OutputPort[port].
init();
317 #if FW_OBJECT_NAMES == 1 321 this->m_objName.toChar(),
324 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
334 this->m_Tlm_OutputPort[port].
init();
336 #if FW_OBJECT_NAMES == 1 340 this->m_objName.toChar(),
343 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
353 this->m_bufferReturnOut_OutputPort[port].
init();
355 #if FW_OBJECT_NAMES == 1 359 this->m_objName.toChar(),
362 this->m_bufferReturnOut_OutputPort[port].setObjName(portName.
toChar());
372 this->m_dataOut_OutputPort[port].
init();
374 #if FW_OBJECT_NAMES == 1 378 this->m_objName.toChar(),
381 this->m_dataOut_OutputPort[port].setObjName(portName.
toChar());
388 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
392 static_cast<FwAssertArgType>(qStat)
405 static_cast<FwAssertArgType>(portNum)
408 return &this->m_CmdDisp_InputPort[portNum];
420 static_cast<FwAssertArgType>(portNum)
423 return &this->m_bufferQueueIn_InputPort[portNum];
431 static_cast<FwAssertArgType>(portNum)
434 return &this->m_comPacketQueueIn_InputPort[portNum];
442 static_cast<FwAssertArgType>(portNum)
445 return &this->m_comStatusIn_InputPort[portNum];
453 static_cast<FwAssertArgType>(portNum)
456 return &this->m_dataReturnIn_InputPort[portNum];
464 static_cast<FwAssertArgType>(portNum)
467 return &this->m_run_InputPort[portNum];
482 static_cast<FwAssertArgType>(portNum)
485 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
496 static_cast<FwAssertArgType>(portNum)
499 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
510 static_cast<FwAssertArgType>(portNum)
516 #if FW_ENABLE_TEXT_LOGGING == 1 518 void ComQueueComponentBase ::
519 set_LogText_OutputPort(
525 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
526 static_cast<FwAssertArgType>(portNum)
529 this->m_LogText_OutputPort[portNum].addCallPort(port);
542 static_cast<FwAssertArgType>(portNum)
545 this->m_Time_OutputPort[portNum].
addCallPort(port);
556 static_cast<FwAssertArgType>(portNum)
574 static_cast<FwAssertArgType>(portNum)
577 this->m_bufferReturnOut_OutputPort[portNum].
addCallPort(port);
588 static_cast<FwAssertArgType>(portNum)
591 this->m_dataOut_OutputPort[portNum].
addCallPort(port);
594 #if FW_PORT_SERIALIZATION 603 Fw::InputSerializePort* port
608 static_cast<FwAssertArgType>(portNum)
611 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
617 Fw::InputSerializePort* port
622 static_cast<FwAssertArgType>(portNum)
625 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
631 Fw::InputSerializePort* port
636 static_cast<FwAssertArgType>(portNum)
639 this->m_Log_OutputPort[portNum].registerSerialPort(port);
642 #if FW_ENABLE_TEXT_LOGGING == 1 644 void ComQueueComponentBase ::
645 set_LogText_OutputPort(
647 Fw::InputSerializePort* port
651 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
652 static_cast<FwAssertArgType>(portNum)
655 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
663 Fw::InputSerializePort* port
668 static_cast<FwAssertArgType>(portNum)
671 this->m_Time_OutputPort[portNum].registerSerialPort(port);
677 Fw::InputSerializePort* port
682 static_cast<FwAssertArgType>(portNum)
685 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
690 #if FW_PORT_SERIALIZATION 699 Fw::InputSerializePort* port
704 static_cast<FwAssertArgType>(portNum)
707 this->m_bufferReturnOut_OutputPort[portNum].registerSerialPort(port);
713 Fw::InputSerializePort* port
718 static_cast<FwAssertArgType>(portNum)
721 this->m_dataOut_OutputPort[portNum].registerSerialPort(port);
733 FW_ASSERT(this->m_CmdReg_OutputPort[0].isConnected());
735 this->m_CmdReg_OutputPort[0].
invoke(
739 this->m_CmdReg_OutputPort[0].
invoke(
743 this->m_CmdReg_OutputPort[0].
invoke(
754 Fw::ActiveComponentBase(compName)
774 static_cast<FwAssertArgType>(portNum)
777 return this->m_CmdReg_OutputPort[portNum].
isConnected();
785 static_cast<FwAssertArgType>(portNum)
788 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
796 static_cast<FwAssertArgType>(portNum)
799 return this->m_Log_OutputPort[portNum].
isConnected();
802 #if FW_ENABLE_TEXT_LOGGING == 1 804 bool ComQueueComponentBase ::
805 isConnected_LogText_OutputPort(
FwIndexType portNum)
808 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
809 static_cast<FwAssertArgType>(portNum)
812 return this->m_LogText_OutputPort[portNum].isConnected();
822 static_cast<FwAssertArgType>(portNum)
825 return this->m_Time_OutputPort[portNum].
isConnected();
833 static_cast<FwAssertArgType>(portNum)
836 return this->m_Tlm_OutputPort[portNum].
isConnected();
848 static_cast<FwAssertArgType>(portNum)
851 return this->m_bufferReturnOut_OutputPort[portNum].
isConnected();
859 static_cast<FwAssertArgType>(portNum)
862 return this->m_dataOut_OutputPort[portNum].
isConnected();
880 static_cast<FwAssertArgType>(portNum)
888 ComponentIpcSerializableBuffer msg;
892 _status = msg.serializeFrom(
893 static_cast<FwEnumStoreType>(BUFFERQUEUEIN_BUFFERSEND)
897 static_cast<FwAssertArgType>(_status)
901 _status = msg.serializeFrom(portNum);
904 static_cast<FwAssertArgType>(_status)
908 _status = msg.serializeFrom(fwBuffer);
911 static_cast<FwAssertArgType>(_status)
918 if (qStatus == Os::Queue::Status::FULL) {
925 static_cast<FwAssertArgType>(qStatus)
939 static_cast<FwAssertArgType>(portNum)
948 ComponentIpcSerializableBuffer msg;
952 _status = msg.serializeFrom(
953 static_cast<FwEnumStoreType>(COMPACKETQUEUEIN_COM)
957 static_cast<FwAssertArgType>(_status)
961 _status = msg.serializeFrom(portNum);
964 static_cast<FwAssertArgType>(_status)
968 _status = msg.serializeFrom(data);
971 static_cast<FwAssertArgType>(_status)
975 _status = msg.serializeFrom(context);
978 static_cast<FwAssertArgType>(_status)
985 if (qStatus == Os::Queue::Status::FULL) {
992 static_cast<FwAssertArgType>(qStatus)
1005 static_cast<FwAssertArgType>(portNum)
1013 ComponentIpcSerializableBuffer msg;
1017 _status = msg.serializeFrom(
1018 static_cast<FwEnumStoreType>(COMSTATUSIN_SUCCESSCONDITION)
1022 static_cast<FwAssertArgType>(_status)
1026 _status = msg.serializeFrom(portNum);
1029 static_cast<FwAssertArgType>(_status)
1033 _status = msg.serializeFrom(condition);
1036 static_cast<FwAssertArgType>(_status)
1045 static_cast<FwAssertArgType>(qStatus)
1059 static_cast<FwAssertArgType>(portNum)
1079 static_cast<FwAssertArgType>(portNum)
1087 ComponentIpcSerializableBuffer msg;
1091 _status = msg.serializeFrom(
1092 static_cast<FwEnumStoreType>(RUN_SCHED)
1096 static_cast<FwAssertArgType>(_status)
1100 _status = msg.serializeFrom(portNum);
1103 static_cast<FwAssertArgType>(_status)
1107 _status = msg.serializeFrom(context);
1110 static_cast<FwAssertArgType>(_status)
1117 if (qStatus == Os::Queue::Status::FULL) {
1124 static_cast<FwAssertArgType>(qStatus)
1185 static_cast<FwAssertArgType>(portNum)
1189 this->m_bufferReturnOut_OutputPort[portNum].isConnected(),
1190 static_cast<FwAssertArgType>(portNum)
1192 this->m_bufferReturnOut_OutputPort[portNum].
invoke(
1206 static_cast<FwAssertArgType>(portNum)
1210 this->m_dataOut_OutputPort[portNum].isConnected(),
1211 static_cast<FwAssertArgType>(portNum)
1213 this->m_dataOut_OutputPort[portNum].
invoke(
1230 FW_ASSERT(this->m_CmdStatus_OutputPort[0].isConnected());
1231 this->m_CmdStatus_OutputPort[0].
invoke(opCode, cmdSeq, response);
1252 ComponentIpcSerializableBuffer msg;
1256 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_FLUSH_QUEUE));
1259 static_cast<FwAssertArgType>(_status)
1265 _status = msg.serializeFrom(port);
1268 static_cast<FwAssertArgType>(_status)
1271 _status = msg.serializeFrom(opCode);
1274 static_cast<FwAssertArgType>(_status)
1277 _status = msg.serializeFrom(cmdSeq);
1280 static_cast<FwAssertArgType>(_status)
1283 _status = msg.serializeFrom(args);
1286 static_cast<FwAssertArgType>(_status)
1295 static_cast<FwAssertArgType>(qStatus)
1311 ComponentIpcSerializableBuffer msg;
1315 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_FLUSH_ALL_QUEUES));
1318 static_cast<FwAssertArgType>(_status)
1324 _status = msg.serializeFrom(port);
1327 static_cast<FwAssertArgType>(_status)
1330 _status = msg.serializeFrom(opCode);
1333 static_cast<FwAssertArgType>(_status)
1336 _status = msg.serializeFrom(cmdSeq);
1339 static_cast<FwAssertArgType>(_status)
1342 _status = msg.serializeFrom(args);
1345 static_cast<FwAssertArgType>(_status)
1354 static_cast<FwAssertArgType>(qStatus)
1370 ComponentIpcSerializableBuffer msg;
1374 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SET_QUEUE_PRIORITY));
1377 static_cast<FwAssertArgType>(_status)
1383 _status = msg.serializeFrom(port);
1386 static_cast<FwAssertArgType>(_status)
1389 _status = msg.serializeFrom(opCode);
1392 static_cast<FwAssertArgType>(_status)
1395 _status = msg.serializeFrom(cmdSeq);
1398 static_cast<FwAssertArgType>(_status)
1401 _status = msg.serializeFrom(args);
1404 static_cast<FwAssertArgType>(_status)
1413 static_cast<FwAssertArgType>(qStatus)
1470 if (this->m_Time_OutputPort[0].isConnected()) {
1471 this->m_Time_OutputPort[0].
invoke(_logTime);
1479 if (this->m_Log_OutputPort[0].isConnected()) {
1483 #if FW_AMPCS_COMPATIBLE 1488 static_cast<FwAssertArgType>(_status)
1492 #if FW_AMPCS_COMPATIBLE 1499 static_cast<FwAssertArgType>(_status)
1505 static_cast<FwAssertArgType>(_status)
1508 #if FW_AMPCS_COMPATIBLE 1515 static_cast<FwAssertArgType>(_status)
1521 static_cast<FwAssertArgType>(_status)
1524 this->m_Log_OutputPort[0].
invoke(
1533 #if FW_ENABLE_TEXT_LOGGING 1534 if (this->m_LogText_OutputPort[0].isConnected()) {
1535 #if FW_OBJECT_NAMES == 1 1536 const char* _formatString =
1537 "(%s) %s: The %s queue at index %" PRIi16
" overflowed";
1539 const char* _formatString =
1540 "%s: The %s queue at index %" PRIi16
" overflowed";
1544 queueType.toString(queueTypeStr);
1550 this->m_objName.toChar(),
1557 this->m_LogText_OutputPort[0].invoke(
1576 if (this->m_Time_OutputPort[0].isConnected()) {
1577 this->m_Time_OutputPort[0].
invoke(_logTime);
1585 if (this->m_Log_OutputPort[0].isConnected()) {
1589 #if FW_AMPCS_COMPATIBLE 1594 static_cast<FwAssertArgType>(_status)
1598 #if FW_AMPCS_COMPATIBLE 1605 static_cast<FwAssertArgType>(_status)
1611 static_cast<FwAssertArgType>(_status)
1614 #if FW_AMPCS_COMPATIBLE 1621 static_cast<FwAssertArgType>(_status)
1627 static_cast<FwAssertArgType>(_status)
1630 #if FW_AMPCS_COMPATIBLE 1637 static_cast<FwAssertArgType>(_status)
1643 static_cast<FwAssertArgType>(_status)
1646 this->m_Log_OutputPort[0].
invoke(
1655 #if FW_ENABLE_TEXT_LOGGING 1656 if (this->m_LogText_OutputPort[0].isConnected()) {
1657 #if FW_OBJECT_NAMES == 1 1658 const char* _formatString =
1659 "(%s) %s: %s %" PRIi16
" priority changed to %" PRIi16
"";
1661 const char* _formatString =
1662 "%s: %s %" PRIi16
" priority changed to %" PRIi16
"";
1666 queueType.toString(queueTypeStr);
1672 this->m_objName.toChar(),
1674 "QueuePriorityChanged ",
1680 this->m_LogText_OutputPort[0].invoke(
1700 if (this->m_Tlm_OutputPort[0].isConnected()) {
1702 this->m_Time_OutputPort[0].isConnected() &&
1705 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1712 static_cast<FwAssertArgType>(_stat)
1719 this->m_Tlm_OutputPort[0].
invoke(
1733 if (this->m_Tlm_OutputPort[0].isConnected()) {
1735 this->m_Time_OutputPort[0].isConnected() &&
1738 this->m_Time_OutputPort[0].
invoke(_tlmTime);
1745 static_cast<FwAssertArgType>(_stat)
1752 this->m_Tlm_OutputPort[0].
invoke(
1767 if (this->m_Time_OutputPort[0].isConnected()) {
1769 this->m_Time_OutputPort[0].
invoke(_time);
1784 ComponentIpcSerializableBuffer _msg;
1794 static_cast<FwAssertArgType>(_msgStatus)
1804 static_cast<FwAssertArgType>(_deserStatus)
1807 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
1809 if (_msgType == COMQUEUE_COMPONENT_EXIT) {
1814 _deserStatus = _msg.deserializeTo(portNum);
1817 static_cast<FwAssertArgType>(_deserStatus)
1822 case BUFFERQUEUEIN_BUFFERSEND: {
1825 _deserStatus = _msg.deserializeTo(fwBuffer);
1828 static_cast<FwAssertArgType>(_deserStatus)
1840 case COMPACKETQUEUEIN_COM: {
1843 _deserStatus = _msg.deserializeTo(data);
1846 static_cast<FwAssertArgType>(_deserStatus)
1851 _deserStatus = _msg.deserializeTo(context);
1854 static_cast<FwAssertArgType>(_deserStatus)
1867 case COMSTATUSIN_SUCCESSCONDITION: {
1870 _deserStatus = _msg.deserializeTo(condition);
1873 static_cast<FwAssertArgType>(_deserStatus)
1888 _deserStatus = _msg.deserializeTo(context);
1891 static_cast<FwAssertArgType>(_deserStatus)
1903 case CMD_FLUSH_QUEUE: {
1906 _deserStatus = _msg.deserializeTo(_opCode);
1909 static_cast<FwAssertArgType>(_deserStatus)
1914 _deserStatus = _msg.deserializeTo(_cmdSeq);
1917 static_cast<FwAssertArgType>(_deserStatus)
1922 _deserStatus = _msg.deserializeTo(args);
1925 static_cast<FwAssertArgType>(_deserStatus)
1935 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
1950 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
1963 #if FW_CMD_CHECK_RESIDUAL 1965 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
1984 case CMD_FLUSH_ALL_QUEUES: {
1987 _deserStatus = _msg.deserializeTo(_opCode);
1990 static_cast<FwAssertArgType>(_deserStatus)
1995 _deserStatus = _msg.deserializeTo(_cmdSeq);
1998 static_cast<FwAssertArgType>(_deserStatus)
2003 _deserStatus = _msg.deserializeTo(args);
2006 static_cast<FwAssertArgType>(_deserStatus)
2014 #if FW_CMD_CHECK_RESIDUAL 2016 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2031 case CMD_SET_QUEUE_PRIORITY: {
2034 _deserStatus = _msg.deserializeTo(_opCode);
2037 static_cast<FwAssertArgType>(_deserStatus)
2042 _deserStatus = _msg.deserializeTo(_cmdSeq);
2045 static_cast<FwAssertArgType>(_deserStatus)
2050 _deserStatus = _msg.deserializeTo(args);
2053 static_cast<FwAssertArgType>(_deserStatus)
2063 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2078 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2093 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2106 #if FW_CMD_CHECK_RESIDUAL 2108 if (this->m_CmdStatus_OutputPort[0].isConnected()) {
2138 void ComQueueComponentBase ::
2150 const U32 idBase = callComp->
getIdBase();
2151 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2154 switch (opCode - idBase) {
2156 compPtr->FLUSH_QUEUE_cmdHandlerBase(
2165 compPtr->FLUSH_ALL_QUEUES_cmdHandlerBase(
2174 compPtr->SET_QUEUE_PRIORITY_cmdHandlerBase(
2188 void ComQueueComponentBase ::
2189 m_p_bufferQueueIn_in(
2197 compPtr->bufferQueueIn_handlerBase(
2203 void ComQueueComponentBase ::
2204 m_p_comPacketQueueIn_in(
2213 compPtr->comPacketQueueIn_handlerBase(
2220 void ComQueueComponentBase ::
2229 compPtr->comStatusIn_handlerBase(
2235 void ComQueueComponentBase ::
2236 m_p_dataReturnIn_in(
2245 compPtr->dataReturnIn_handlerBase(
2252 void ComQueueComponentBase ::
2261 compPtr->run_handlerBase(
Serialization/Deserialization operation was successful.
virtual void comStatusIn_handler(FwIndexType portNum, Fw::Success &condition)=0
Handler for input port comStatusIn.
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.
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()
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
static constexpr FwIndexType getNum_bufferReturnOut_OutputPorts()
message to exit active component task
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].
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()
const char * toChar() const
Convert to a C-style char*.
virtual void FLUSH_QUEUE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::QueueType queueType, FwIndexType indexType)=0
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)=0
Handler for input port dataReturnIn.
void dataOut_out(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)
Invoke output port dataOut.
virtual void SET_QUEUE_PRIORITY_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::QueueType queueType, FwIndexType indexType, FwIndexType newPriority)=0
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(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()
void set_bufferReturnOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferReturnOut[portNum].
bool isConnected_bufferReturnOut_OutputPort(FwIndexType 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)
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
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.
bool isConnected_Log_OutputPort(FwIndexType portNum)
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
Message will block until space is available.
void log_WARNING_HI_QueueOverflow(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 interface.
Channel ID for buffQueueDepth.
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.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
bool isConnected_Time_OutputPort(FwIndexType portNum)
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port interface.
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.
Queue priority changed event.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
void invoke(Fw::Time &time) const
Invoke a port interface.
static constexpr FwIndexType getNum_bufferQueueIn_InputPorts()
Array of queue depths for Fw::Buffer types.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
virtual void run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run.
const char * toChar() const
Convert to a C-style char*.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port interface.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void invoke(Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke a port interface.
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 interface.
virtual void bufferQueueIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferQueueIn.
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.
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)
Set the priority of a specific queue at runtime.
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.
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum)
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 interface.
A message was sent requesting an exit of the loop.
bool isConnected_Tlm_OutputPort(FwIndexType portNum)
ComQueueComponentBase(const char *compName="")
Construct ComQueueComponentBase object.
PlatformIndexType FwIndexType
Channel ID for comQueueDepth.
void addCallPort(InputLogPort *callPort)
Register an input port.
The size of the serial representation.
void init()
Initialization function.
Type used to pass context info between components during framing/deframing.
void incNumMsgDropped()
increment the number of messages dropped
void tlmWrite_comQueueDepth(const Svc::ComQueueDepth &arg, Fw::Time _tlmTime=Fw::Time()) const
RateGroupDivider component implementation.
message sent/received okay
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
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].
virtual void bufferQueueIn_overflowHook(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Overflow hook for async input port bufferQueueIn.
void init()
Initialization function.
bool isConnected_dataOut_OutputPort(FwIndexType portNum)
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
bool isConnected_CmdReg_OutputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_run_InputPorts()
void bufferQueueIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferQueueIn.
void bufferReturnOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferReturnOut.