9 #if FW_ENABLE_TEXT_LOGGING 19 BUFFERQUEUEIN_BUFFERSEND,
21 COMSTATUSIN_SUCCESSCONDITION,
24 CMD_SET_QUEUE_PRIORITY,
39 class ComponentIpcSerializableBuffer :
49 MAX_DATA_SIZE =
sizeof(BuffUnion),
51 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
54 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
60 U8 m_buff[SERIALIZATION_SIZE];
78 #if !FW_DIRECT_PORT_CALLS 85 this->m_CmdDisp_InputPort[port].
init();
90 this->m_CmdDisp_InputPort[port].
setPortNum(port);
92 #if FW_OBJECT_NAMES == 1 96 this->m_objName.toChar(),
99 this->m_CmdDisp_InputPort[port].setObjName(portName.
toChar());
104 #if !FW_DIRECT_PORT_CALLS 111 this->m_bufferQueueIn_InputPort[port].
init();
116 this->m_bufferQueueIn_InputPort[port].
setPortNum(port);
118 #if FW_OBJECT_NAMES == 1 122 this->m_objName.toChar(),
125 this->m_bufferQueueIn_InputPort[port].setObjName(portName.
toChar());
130 #if !FW_DIRECT_PORT_CALLS 137 this->m_comPacketQueueIn_InputPort[port].
init();
138 this->m_comPacketQueueIn_InputPort[port].
addCallComp(
140 m_p_comPacketQueueIn_in
142 this->m_comPacketQueueIn_InputPort[port].
setPortNum(port);
144 #if FW_OBJECT_NAMES == 1 148 this->m_objName.toChar(),
151 this->m_comPacketQueueIn_InputPort[port].setObjName(portName.
toChar());
156 #if !FW_DIRECT_PORT_CALLS 163 this->m_comStatusIn_InputPort[port].
init();
168 this->m_comStatusIn_InputPort[port].
setPortNum(port);
170 #if FW_OBJECT_NAMES == 1 174 this->m_objName.toChar(),
177 this->m_comStatusIn_InputPort[port].setObjName(portName.
toChar());
182 #if !FW_DIRECT_PORT_CALLS 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());
208 #if !FW_DIRECT_PORT_CALLS 215 this->m_run_InputPort[port].
init();
222 #if FW_OBJECT_NAMES == 1 226 this->m_objName.toChar(),
229 this->m_run_InputPort[port].setObjName(portName.
toChar());
234 #if !FW_DIRECT_PORT_CALLS 241 this->m_CmdReg_OutputPort[port].
init();
243 #if FW_OBJECT_NAMES == 1 247 this->m_objName.toChar(),
250 this->m_CmdReg_OutputPort[port].setObjName(portName.
toChar());
255 #if !FW_DIRECT_PORT_CALLS 262 this->m_CmdStatus_OutputPort[port].
init();
264 #if FW_OBJECT_NAMES == 1 268 this->m_objName.toChar(),
271 this->m_CmdStatus_OutputPort[port].setObjName(portName.
toChar());
276 #if !FW_DIRECT_PORT_CALLS 283 this->m_Log_OutputPort[port].
init();
285 #if FW_OBJECT_NAMES == 1 289 this->m_objName.toChar(),
292 this->m_Log_OutputPort[port].setObjName(portName.
toChar());
297 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 301 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
304 this->m_LogText_OutputPort[port].
init();
306 #if FW_OBJECT_NAMES == 1 310 this->m_objName.toChar(),
313 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
318 #if !FW_DIRECT_PORT_CALLS 325 this->m_Time_OutputPort[port].
init();
327 #if FW_OBJECT_NAMES == 1 331 this->m_objName.toChar(),
334 this->m_Time_OutputPort[port].setObjName(portName.
toChar());
339 #if !FW_DIRECT_PORT_CALLS 346 this->m_Tlm_OutputPort[port].
init();
348 #if FW_OBJECT_NAMES == 1 352 this->m_objName.toChar(),
355 this->m_Tlm_OutputPort[port].setObjName(portName.
toChar());
360 #if !FW_DIRECT_PORT_CALLS 367 this->m_bufferReturnOut_OutputPort[port].
init();
369 #if FW_OBJECT_NAMES == 1 373 this->m_objName.toChar(),
376 this->m_bufferReturnOut_OutputPort[port].setObjName(portName.
toChar());
381 #if !FW_DIRECT_PORT_CALLS 388 this->m_dataOut_OutputPort[port].
init();
390 #if FW_OBJECT_NAMES == 1 394 this->m_objName.toChar(),
397 this->m_dataOut_OutputPort[port].setObjName(portName.
toChar());
405 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
409 static_cast<FwAssertArgType>(qStat)
413 #if !FW_DIRECT_PORT_CALLS 424 static_cast<FwAssertArgType>(portNum)
427 return &this->m_CmdDisp_InputPort[portNum];
432 #if !FW_DIRECT_PORT_CALLS 443 static_cast<FwAssertArgType>(portNum)
446 return &this->m_bufferQueueIn_InputPort[portNum];
454 static_cast<FwAssertArgType>(portNum)
457 return &this->m_comPacketQueueIn_InputPort[portNum];
465 static_cast<FwAssertArgType>(portNum)
468 return &this->m_comStatusIn_InputPort[portNum];
476 static_cast<FwAssertArgType>(portNum)
479 return &this->m_dataReturnIn_InputPort[portNum];
487 static_cast<FwAssertArgType>(portNum)
490 return &this->m_run_InputPort[portNum];
495 #if !FW_DIRECT_PORT_CALLS 509 static_cast<FwAssertArgType>(portNum)
512 this->m_CmdReg_OutputPort[portNum].
addCallPort(port);
523 static_cast<FwAssertArgType>(portNum)
526 this->m_CmdStatus_OutputPort[portNum].
addCallPort(port);
537 static_cast<FwAssertArgType>(portNum)
543 #if FW_ENABLE_TEXT_LOGGING == 1 545 void ComQueueComponentBase ::
546 set_LogText_OutputPort(
552 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
553 static_cast<FwAssertArgType>(portNum)
556 this->m_LogText_OutputPort[portNum].addCallPort(port);
569 static_cast<FwAssertArgType>(portNum)
572 this->m_Time_OutputPort[portNum].
addCallPort(port);
583 static_cast<FwAssertArgType>(portNum)
591 #if !FW_DIRECT_PORT_CALLS 605 static_cast<FwAssertArgType>(portNum)
608 this->m_bufferReturnOut_OutputPort[portNum].
addCallPort(port);
619 static_cast<FwAssertArgType>(portNum)
622 this->m_dataOut_OutputPort[portNum].
addCallPort(port);
627 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 636 Fw::InputSerializePort* port
641 static_cast<FwAssertArgType>(portNum)
644 this->m_CmdReg_OutputPort[portNum].registerSerialPort(port);
650 Fw::InputSerializePort* port
655 static_cast<FwAssertArgType>(portNum)
658 this->m_CmdStatus_OutputPort[portNum].registerSerialPort(port);
664 Fw::InputSerializePort* port
669 static_cast<FwAssertArgType>(portNum)
672 this->m_Log_OutputPort[portNum].registerSerialPort(port);
675 #if FW_ENABLE_TEXT_LOGGING == 1 677 void ComQueueComponentBase ::
678 set_LogText_OutputPort(
680 Fw::InputSerializePort* port
684 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
685 static_cast<FwAssertArgType>(portNum)
688 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
696 Fw::InputSerializePort* port
701 static_cast<FwAssertArgType>(portNum)
704 this->m_Time_OutputPort[portNum].registerSerialPort(port);
710 Fw::InputSerializePort* port
715 static_cast<FwAssertArgType>(portNum)
718 this->m_Tlm_OutputPort[portNum].registerSerialPort(port);
723 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 732 Fw::InputSerializePort* port
737 static_cast<FwAssertArgType>(portNum)
740 this->m_bufferReturnOut_OutputPort[portNum].registerSerialPort(port);
746 Fw::InputSerializePort* port
751 static_cast<FwAssertArgType>(portNum)
754 this->m_dataOut_OutputPort[portNum].registerSerialPort(port);
790 Fw::ActiveComponentBase(compName)
801 #if !FW_DIRECT_PORT_CALLS 812 static_cast<FwAssertArgType>(portNum)
815 return this->m_CmdReg_OutputPort[portNum].
isConnected();
823 static_cast<FwAssertArgType>(portNum)
826 return this->m_CmdStatus_OutputPort[portNum].
isConnected();
834 static_cast<FwAssertArgType>(portNum)
837 return this->m_Log_OutputPort[portNum].
isConnected();
840 #if FW_ENABLE_TEXT_LOGGING == 1 842 bool ComQueueComponentBase ::
843 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 846 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
847 static_cast<FwAssertArgType>(portNum)
850 return this->m_LogText_OutputPort[portNum].isConnected();
860 static_cast<FwAssertArgType>(portNum)
863 return this->m_Time_OutputPort[portNum].
isConnected();
871 static_cast<FwAssertArgType>(portNum)
874 return this->m_Tlm_OutputPort[portNum].
isConnected();
879 #if !FW_DIRECT_PORT_CALLS 890 static_cast<FwAssertArgType>(portNum)
893 return this->m_bufferReturnOut_OutputPort[portNum].
isConnected();
901 static_cast<FwAssertArgType>(portNum)
904 return this->m_dataOut_OutputPort[portNum].
isConnected();
925 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
928 switch (opCode - idBase) {
976 static_cast<FwAssertArgType>(portNum)
984 ComponentIpcSerializableBuffer msg;
988 _status = msg.serializeFrom(
989 static_cast<FwEnumStoreType>(BUFFERQUEUEIN_BUFFERSEND)
993 static_cast<FwAssertArgType>(_status)
997 _status = msg.serializeFrom(portNum);
1000 static_cast<FwAssertArgType>(_status)
1004 _status = msg.serializeFrom(fwBuffer);
1007 static_cast<FwAssertArgType>(_status)
1014 if (qStatus == Os::Queue::Status::FULL) {
1021 static_cast<FwAssertArgType>(qStatus)
1035 static_cast<FwAssertArgType>(portNum)
1044 ComponentIpcSerializableBuffer msg;
1048 _status = msg.serializeFrom(
1049 static_cast<FwEnumStoreType>(COMPACKETQUEUEIN_COM)
1053 static_cast<FwAssertArgType>(_status)
1057 _status = msg.serializeFrom(portNum);
1060 static_cast<FwAssertArgType>(_status)
1064 _status = msg.serializeFrom(data);
1067 static_cast<FwAssertArgType>(_status)
1071 _status = msg.serializeFrom(context);
1074 static_cast<FwAssertArgType>(_status)
1081 if (qStatus == Os::Queue::Status::FULL) {
1088 static_cast<FwAssertArgType>(qStatus)
1101 static_cast<FwAssertArgType>(portNum)
1109 ComponentIpcSerializableBuffer msg;
1113 _status = msg.serializeFrom(
1114 static_cast<FwEnumStoreType>(COMSTATUSIN_SUCCESSCONDITION)
1118 static_cast<FwAssertArgType>(_status)
1122 _status = msg.serializeFrom(portNum);
1125 static_cast<FwAssertArgType>(_status)
1129 _status = msg.serializeFrom(condition);
1132 static_cast<FwAssertArgType>(_status)
1141 static_cast<FwAssertArgType>(qStatus)
1155 static_cast<FwAssertArgType>(portNum)
1175 static_cast<FwAssertArgType>(portNum)
1221 #if !FW_DIRECT_PORT_CALLS 1235 static_cast<FwAssertArgType>(portNum)
1239 this->m_bufferReturnOut_OutputPort[portNum].isConnected(),
1240 static_cast<FwAssertArgType>(portNum)
1242 this->m_bufferReturnOut_OutputPort[portNum].
invoke(
1256 static_cast<FwAssertArgType>(portNum)
1260 this->m_dataOut_OutputPort[portNum].isConnected(),
1261 static_cast<FwAssertArgType>(portNum)
1263 this->m_dataOut_OutputPort[portNum].
invoke(
1286 ComponentIpcSerializableBuffer msg;
1290 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(INT_IF_RUNINTERNAL));
1293 static_cast<FwAssertArgType>(_status)
1297 _status = msg.serializeFrom(static_cast<FwIndexType>(0));
1300 static_cast<FwAssertArgType>(_status)
1307 if (qStatus == Os::Queue::Status::FULL) {
1314 static_cast<FwAssertArgType>(qStatus)
1330 this->CmdStatus_out(0, opCode, cmdSeq, response);
1351 ComponentIpcSerializableBuffer msg;
1355 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_FLUSH_QUEUE));
1358 static_cast<FwAssertArgType>(_status)
1364 _status = msg.serializeFrom(port);
1367 static_cast<FwAssertArgType>(_status)
1370 _status = msg.serializeFrom(opCode);
1373 static_cast<FwAssertArgType>(_status)
1376 _status = msg.serializeFrom(cmdSeq);
1379 static_cast<FwAssertArgType>(_status)
1382 _status = msg.serializeFrom(args);
1385 static_cast<FwAssertArgType>(_status)
1394 static_cast<FwAssertArgType>(qStatus)
1410 ComponentIpcSerializableBuffer msg;
1414 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_FLUSH_ALL_QUEUES));
1417 static_cast<FwAssertArgType>(_status)
1423 _status = msg.serializeFrom(port);
1426 static_cast<FwAssertArgType>(_status)
1429 _status = msg.serializeFrom(opCode);
1432 static_cast<FwAssertArgType>(_status)
1435 _status = msg.serializeFrom(cmdSeq);
1438 static_cast<FwAssertArgType>(_status)
1441 _status = msg.serializeFrom(args);
1444 static_cast<FwAssertArgType>(_status)
1453 static_cast<FwAssertArgType>(qStatus)
1469 ComponentIpcSerializableBuffer msg;
1473 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SET_QUEUE_PRIORITY));
1476 static_cast<FwAssertArgType>(_status)
1482 _status = msg.serializeFrom(port);
1485 static_cast<FwAssertArgType>(_status)
1488 _status = msg.serializeFrom(opCode);
1491 static_cast<FwAssertArgType>(_status)
1494 _status = msg.serializeFrom(cmdSeq);
1497 static_cast<FwAssertArgType>(_status)
1500 _status = msg.serializeFrom(args);
1503 static_cast<FwAssertArgType>(_status)
1512 static_cast<FwAssertArgType>(qStatus)
1570 this->Time_out(0, _logTime);
1580 #if FW_AMPCS_COMPATIBLE 1585 static_cast<FwAssertArgType>(_status)
1589 #if FW_AMPCS_COMPATIBLE 1596 static_cast<FwAssertArgType>(_status)
1602 static_cast<FwAssertArgType>(_status)
1605 #if FW_AMPCS_COMPATIBLE 1612 static_cast<FwAssertArgType>(_status)
1618 static_cast<FwAssertArgType>(_status)
1631 #if FW_ENABLE_TEXT_LOGGING 1632 if (this->isConnected_LogText_OutputPort(0)) {
1633 #if FW_OBJECT_NAMES == 1 1634 const char* _formatString =
1635 "(%s) %s: The %s queue at index %" PRIi16
" overflowed";
1637 const char* _formatString =
1638 "%s: The %s queue at index %" PRIi16
" overflowed";
1642 queueType.toString(queueTypeStr);
1645 (void) _logString.
format(
1648 this->m_objName.toChar(),
1676 this->Time_out(0, _logTime);
1686 #if FW_AMPCS_COMPATIBLE 1691 static_cast<FwAssertArgType>(_status)
1695 #if FW_AMPCS_COMPATIBLE 1702 static_cast<FwAssertArgType>(_status)
1708 static_cast<FwAssertArgType>(_status)
1711 #if FW_AMPCS_COMPATIBLE 1718 static_cast<FwAssertArgType>(_status)
1724 static_cast<FwAssertArgType>(_status)
1727 #if FW_AMPCS_COMPATIBLE 1734 static_cast<FwAssertArgType>(_status)
1740 static_cast<FwAssertArgType>(_status)
1753 #if FW_ENABLE_TEXT_LOGGING 1754 if (this->isConnected_LogText_OutputPort(0)) {
1755 #if FW_OBJECT_NAMES == 1 1756 const char* _formatString =
1757 "(%s) %s: %s %" PRIi16
" priority changed to %" PRIi16
"";
1759 const char* _formatString =
1760 "%s: %s %" PRIi16
" priority changed to %" PRIi16
"";
1764 queueType.toString(queueTypeStr);
1767 (void) _logString.
format(
1770 this->m_objName.toChar(),
1772 "QueuePriorityChanged ",
1805 this->Time_out(0, _tlmTime);
1835 static_cast<FwAssertArgType>(_stat)
1857 static_cast<FwAssertArgType>(_stat)
1875 if (not this->m_first_update_comIngressDropped) {
1877 if (arg == this->m_last_comIngressDropped) {
1881 this->m_last_comIngressDropped = arg;
1885 this->m_first_update_comIngressDropped =
false;
1886 this->m_last_comIngressDropped = arg;
1894 static_cast<FwAssertArgType>(_stat)
1912 if (not this->m_first_update_buffIngressDropped) {
1914 if (arg == this->m_last_buffIngressDropped) {
1918 this->m_last_buffIngressDropped = arg;
1922 this->m_first_update_buffIngressDropped =
false;
1923 this->m_last_buffIngressDropped = arg;
1931 static_cast<FwAssertArgType>(_stat)
1949 if (not this->m_first_update_comManagedDropped) {
1951 if (arg == this->m_last_comManagedDropped) {
1955 this->m_last_comManagedDropped = arg;
1959 this->m_first_update_comManagedDropped =
false;
1960 this->m_last_comManagedDropped = arg;
1968 static_cast<FwAssertArgType>(_stat)
1986 if (not this->m_first_update_buffManagedDropped) {
1988 if (arg == this->m_last_buffManagedDropped) {
1992 this->m_last_buffManagedDropped = arg;
1996 this->m_first_update_buffManagedDropped =
false;
1997 this->m_last_buffManagedDropped = arg;
2005 static_cast<FwAssertArgType>(_stat)
2025 this->Time_out(0, _time);
2040 ComponentIpcSerializableBuffer _msg;
2050 static_cast<FwAssertArgType>(_msgStatus)
2060 static_cast<FwAssertArgType>(_deserStatus)
2063 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2065 if (_msgType == COMQUEUE_COMPONENT_EXIT) {
2070 _deserStatus = _msg.deserializeTo(portNum);
2073 static_cast<FwAssertArgType>(_deserStatus)
2078 case BUFFERQUEUEIN_BUFFERSEND: {
2081 _deserStatus = _msg.deserializeTo(fwBuffer);
2084 static_cast<FwAssertArgType>(_deserStatus)
2096 case COMPACKETQUEUEIN_COM: {
2099 _deserStatus = _msg.deserializeTo(data);
2102 static_cast<FwAssertArgType>(_deserStatus)
2107 _deserStatus = _msg.deserializeTo(context);
2110 static_cast<FwAssertArgType>(_deserStatus)
2123 case COMSTATUSIN_SUCCESSCONDITION: {
2126 _deserStatus = _msg.deserializeTo(condition);
2129 static_cast<FwAssertArgType>(_deserStatus)
2141 case CMD_FLUSH_QUEUE: {
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)
2201 #if FW_CMD_CHECK_RESIDUAL 2222 case CMD_FLUSH_ALL_QUEUES: {
2225 _deserStatus = _msg.deserializeTo(_opCode);
2228 static_cast<FwAssertArgType>(_deserStatus)
2233 _deserStatus = _msg.deserializeTo(_cmdSeq);
2236 static_cast<FwAssertArgType>(_deserStatus)
2241 _deserStatus = _msg.deserializeTo(args);
2244 static_cast<FwAssertArgType>(_deserStatus)
2252 #if FW_CMD_CHECK_RESIDUAL 2269 case CMD_SET_QUEUE_PRIORITY: {
2272 _deserStatus = _msg.deserializeTo(_opCode);
2275 static_cast<FwAssertArgType>(_deserStatus)
2280 _deserStatus = _msg.deserializeTo(_cmdSeq);
2283 static_cast<FwAssertArgType>(_deserStatus)
2288 _deserStatus = _msg.deserializeTo(args);
2291 static_cast<FwAssertArgType>(_deserStatus)
2344 #if FW_CMD_CHECK_RESIDUAL 2366 case INT_IF_RUNINTERNAL: {
2370 _msg.getDeserializeSizeLeft() == 0,
2391 void ComQueueComponentBase ::
2402 compPtr->CmdDisp_handlerBase(
2414 void ComQueueComponentBase ::
2415 m_p_bufferQueueIn_in(
2423 compPtr->bufferQueueIn_handlerBase(
2429 void ComQueueComponentBase ::
2430 m_p_comPacketQueueIn_in(
2439 compPtr->comPacketQueueIn_handlerBase(
2446 void ComQueueComponentBase ::
2455 compPtr->comStatusIn_handlerBase(
2461 void ComQueueComponentBase ::
2462 m_p_dataReturnIn_in(
2471 compPtr->dataReturnIn_handlerBase(
2478 void ComQueueComponentBase ::
2487 compPtr->run_handlerBase(
2493 #if !FW_DIRECT_PORT_CALLS 2499 void ComQueueComponentBase ::
2507 static_cast<FwAssertArgType>(portNum)
2511 this->m_CmdReg_OutputPort[portNum].isConnected(),
2512 static_cast<FwAssertArgType>(portNum)
2514 this->m_CmdReg_OutputPort[portNum].
invoke(
2519 void ComQueueComponentBase ::
2529 static_cast<FwAssertArgType>(portNum)
2533 this->m_CmdStatus_OutputPort[portNum].isConnected(),
2534 static_cast<FwAssertArgType>(portNum)
2536 this->m_CmdStatus_OutputPort[portNum].
invoke(
2543 void ComQueueComponentBase ::
2554 static_cast<FwAssertArgType>(portNum)
2558 this->m_Log_OutputPort[portNum].isConnected(),
2559 static_cast<FwAssertArgType>(portNum)
2561 this->m_Log_OutputPort[portNum].
invoke(
2569 #if FW_ENABLE_TEXT_LOGGING 2571 void ComQueueComponentBase ::
2581 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
2582 static_cast<FwAssertArgType>(portNum)
2586 this->m_LogText_OutputPort[portNum].isConnected(),
2587 static_cast<FwAssertArgType>(portNum)
2589 this->m_LogText_OutputPort[portNum].invoke(
2599 void ComQueueComponentBase ::
2607 static_cast<FwAssertArgType>(portNum)
2611 this->m_Time_OutputPort[portNum].isConnected(),
2612 static_cast<FwAssertArgType>(portNum)
2614 this->m_Time_OutputPort[portNum].
invoke(
2619 void ComQueueComponentBase ::
2629 static_cast<FwAssertArgType>(portNum)
2633 this->m_Tlm_OutputPort[portNum].isConnected(),
2634 static_cast<FwAssertArgType>(portNum)
2636 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.
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()
Channel ID for comIngressDropped.
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()
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)=0
Handler for input port dataReturnIn.
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.
Per-port counts of async ingress drops for Fw::Buffer.
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
Set the priority of a specific queue at runtime.
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.
virtual void runInternal_overflowHook()=0
Overflow hook for async input port runInternal.
void init()
Object initializer.
message to exit active component task
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.
void tlmWrite_comManagedDropped(const Svc::ComQueueManagedDrops &arg, Fw::Time _tlmTime=Fw::Time())
SerializeStatus
forward declaration for string
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.
void tlmWrite_buffManagedDropped(const Svc::BuffQueueManagedDrops &arg, Fw::Time _tlmTime=Fw::Time())
Channel ID for buffQueueDepth.
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
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.
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].
virtual void comPacketQueueIn_overflowHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Overflow hook for async input port comPacketQueueIn.
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.
Channel ID for buffManagedDropped.
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.
Per-port counts of async ingress drops for Fw::ComBuffer.
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)
void tlmWrite_comIngressDropped(const Svc::ComQueueIngressDrops &arg, Fw::Time _tlmTime=Fw::Time())
virtual void runInternal_internalInterfaceHandler()=0
Internal interface handler for runInternal.
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.
Channel ID for buffIngressDropped.
virtual void SET_QUEUE_PRIORITY_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::QueueType &queueType, FwIndexType indexType, FwIndexType newPriority)=0
Channel ID for comQueueDepth.
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.
Channel ID for comManagedDropped.
void init()
Initialization function.
Type used to pass context info between components during framing/deframing.
void tlmWrite_buffIngressDropped(const Svc::BuffQueueIngressDrops &arg, Fw::Time _tlmTime=Fw::Time())
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.
Per-port counts of managed queue overflow drops for Fw::Buffer.
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.
Per-port counts of managed queue overflow drops for Fw::ComBuffer.
void init()
Initialization function.
Queue priority changed event.
The size of the serial representation.
void runInternal_internalInterfaceInvoke()
Internal interface base-class function for runInternal.
PlatformAssertArgType FwAssertArgType
The type of arguments to assert functions.
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.