9 #if FW_ENABLE_TEXT_LOGGING 19 BUFFERSENDINFILL_BUFFERSEND,
20 BUFFERSENDINRETURN_BUFFERSEND,
37 class ComponentIpcSerializableBuffer :
47 MAX_DATA_SIZE =
sizeof(BuffUnion),
49 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
53 return sizeof(m_buff);
60 const U8* getBuffAddr()
const {
66 U8 m_buff[SERIALIZATION_SIZE];
90 this->m_cmdIn_InputPort[port].
init();
95 this->m_cmdIn_InputPort[port].
setPortNum(port);
97 #if FW_OBJECT_NAMES == 1 101 this->m_objName.toChar(),
104 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
114 this->m_bufferSendInFill_InputPort[port].
init();
115 this->m_bufferSendInFill_InputPort[port].
addCallComp(
117 m_p_bufferSendInFill_in
119 this->m_bufferSendInFill_InputPort[port].
setPortNum(port);
121 #if FW_OBJECT_NAMES == 1 125 this->m_objName.toChar(),
128 this->m_bufferSendInFill_InputPort[port].setObjName(portName.
toChar());
138 this->m_bufferSendInReturn_InputPort[port].
init();
139 this->m_bufferSendInReturn_InputPort[port].
addCallComp(
141 m_p_bufferSendInReturn_in
143 this->m_bufferSendInReturn_InputPort[port].
setPortNum(port);
145 #if FW_OBJECT_NAMES == 1 149 this->m_objName.toChar(),
152 this->m_bufferSendInReturn_InputPort[port].setObjName(portName.
toChar());
162 this->m_pingIn_InputPort[port].
init();
167 this->m_pingIn_InputPort[port].
setPortNum(port);
169 #if FW_OBJECT_NAMES == 1 173 this->m_objName.toChar(),
176 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
186 this->m_cmdRegOut_OutputPort[port].
init();
188 #if FW_OBJECT_NAMES == 1 192 this->m_objName.toChar(),
195 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
205 this->m_cmdResponseOut_OutputPort[port].
init();
207 #if FW_OBJECT_NAMES == 1 211 this->m_objName.toChar(),
214 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
224 this->m_eventOut_OutputPort[port].
init();
226 #if FW_OBJECT_NAMES == 1 230 this->m_objName.toChar(),
233 this->m_eventOut_OutputPort[port].setObjName(portName.
toChar());
237 #if FW_ENABLE_TEXT_LOGGING == 1 241 port < static_cast<FwIndexType>(this->getNum_eventOutText_OutputPorts());
244 this->m_eventOutText_OutputPort[port].
init();
246 #if FW_OBJECT_NAMES == 1 250 this->m_objName.toChar(),
253 this->m_eventOutText_OutputPort[port].setObjName(portName.
toChar());
264 this->m_timeCaller_OutputPort[port].
init();
266 #if FW_OBJECT_NAMES == 1 270 this->m_objName.toChar(),
273 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
283 this->m_tlmOut_OutputPort[port].
init();
285 #if FW_OBJECT_NAMES == 1 289 this->m_objName.toChar(),
292 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
302 this->m_bufferSendOutDrain_OutputPort[port].
init();
304 #if FW_OBJECT_NAMES == 1 308 this->m_objName.toChar(),
311 this->m_bufferSendOutDrain_OutputPort[port].setObjName(portName.
toChar());
321 this->m_bufferSendOutReturn_OutputPort[port].
init();
323 #if FW_OBJECT_NAMES == 1 327 this->m_objName.toChar(),
330 this->m_bufferSendOutReturn_OutputPort[port].setObjName(portName.
toChar());
340 this->m_pingOut_OutputPort[port].
init();
342 #if FW_OBJECT_NAMES == 1 346 this->m_objName.toChar(),
349 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
356 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
360 static_cast<FwAssertArgType>(qStat)
373 static_cast<FwAssertArgType>(portNum)
376 return &this->m_cmdIn_InputPort[portNum];
388 static_cast<FwAssertArgType>(portNum)
391 return &this->m_bufferSendInFill_InputPort[portNum];
399 static_cast<FwAssertArgType>(portNum)
402 return &this->m_bufferSendInReturn_InputPort[portNum];
410 static_cast<FwAssertArgType>(portNum)
413 return &this->m_pingIn_InputPort[portNum];
428 static_cast<FwAssertArgType>(portNum)
431 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
442 static_cast<FwAssertArgType>(portNum)
445 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
456 static_cast<FwAssertArgType>(portNum)
459 this->m_eventOut_OutputPort[portNum].
addCallPort(port);
462 #if FW_ENABLE_TEXT_LOGGING == 1 464 void BufferAccumulatorComponentBase ::
465 set_eventOutText_OutputPort(
471 (0 <= portNum) && (portNum < this->getNum_eventOutText_OutputPorts()),
472 static_cast<FwAssertArgType>(portNum)
475 this->m_eventOutText_OutputPort[portNum].addCallPort(port);
488 static_cast<FwAssertArgType>(portNum)
491 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
502 static_cast<FwAssertArgType>(portNum)
505 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
520 static_cast<FwAssertArgType>(portNum)
523 this->m_bufferSendOutDrain_OutputPort[portNum].
addCallPort(port);
534 static_cast<FwAssertArgType>(portNum)
537 this->m_bufferSendOutReturn_OutputPort[portNum].
addCallPort(port);
548 static_cast<FwAssertArgType>(portNum)
551 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
554 #if FW_PORT_SERIALIZATION 563 Fw::InputSerializePort* port
568 static_cast<FwAssertArgType>(portNum)
571 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
577 Fw::InputSerializePort* port
582 static_cast<FwAssertArgType>(portNum)
585 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
591 Fw::InputSerializePort* port
596 static_cast<FwAssertArgType>(portNum)
599 this->m_eventOut_OutputPort[portNum].registerSerialPort(port);
602 #if FW_ENABLE_TEXT_LOGGING == 1 604 void BufferAccumulatorComponentBase ::
605 set_eventOutText_OutputPort(
607 Fw::InputSerializePort* port
611 (0 <= portNum) && (portNum < this->getNum_eventOutText_OutputPorts()),
612 static_cast<FwAssertArgType>(portNum)
615 this->m_eventOutText_OutputPort[portNum].registerSerialPort(port);
623 Fw::InputSerializePort* port
628 static_cast<FwAssertArgType>(portNum)
631 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
637 Fw::InputSerializePort* port
642 static_cast<FwAssertArgType>(portNum)
645 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
650 #if FW_PORT_SERIALIZATION 659 Fw::InputSerializePort* port
664 static_cast<FwAssertArgType>(portNum)
667 this->m_bufferSendOutDrain_OutputPort[portNum].registerSerialPort(port);
673 Fw::InputSerializePort* port
678 static_cast<FwAssertArgType>(portNum)
681 this->m_bufferSendOutReturn_OutputPort[portNum].registerSerialPort(port);
687 Fw::InputSerializePort* port
692 static_cast<FwAssertArgType>(portNum)
695 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
707 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
709 this->m_cmdRegOut_OutputPort[0].
invoke(
713 this->m_cmdRegOut_OutputPort[0].
invoke(
724 Fw::ActiveComponentBase(compName)
744 static_cast<FwAssertArgType>(portNum)
747 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
755 static_cast<FwAssertArgType>(portNum)
758 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
766 static_cast<FwAssertArgType>(portNum)
769 return this->m_eventOut_OutputPort[portNum].
isConnected();
772 #if FW_ENABLE_TEXT_LOGGING == 1 774 bool BufferAccumulatorComponentBase ::
775 isConnected_eventOutText_OutputPort(
FwIndexType portNum)
778 (0 <= portNum) && (portNum < this->getNum_eventOutText_OutputPorts()),
779 static_cast<FwAssertArgType>(portNum)
782 return this->m_eventOutText_OutputPort[portNum].isConnected();
792 static_cast<FwAssertArgType>(portNum)
795 return this->m_timeCaller_OutputPort[portNum].
isConnected();
803 static_cast<FwAssertArgType>(portNum)
806 return this->m_tlmOut_OutputPort[portNum].
isConnected();
818 static_cast<FwAssertArgType>(portNum)
821 return this->m_bufferSendOutDrain_OutputPort[portNum].
isConnected();
829 static_cast<FwAssertArgType>(portNum)
832 return this->m_bufferSendOutReturn_OutputPort[portNum].
isConnected();
840 static_cast<FwAssertArgType>(portNum)
843 return this->m_pingOut_OutputPort[portNum].
isConnected();
861 static_cast<FwAssertArgType>(portNum)
869 ComponentIpcSerializableBuffer msg;
873 _status = msg.serializeFrom(
874 static_cast<FwEnumStoreType>(BUFFERSENDINFILL_BUFFERSEND)
878 static_cast<FwAssertArgType>(_status)
882 _status = msg.serializeFrom(portNum);
885 static_cast<FwAssertArgType>(_status)
889 _status = msg.serializeFrom(fwBuffer);
892 static_cast<FwAssertArgType>(_status)
901 static_cast<FwAssertArgType>(qStatus)
914 static_cast<FwAssertArgType>(portNum)
922 ComponentIpcSerializableBuffer msg;
926 _status = msg.serializeFrom(
927 static_cast<FwEnumStoreType>(BUFFERSENDINRETURN_BUFFERSEND)
931 static_cast<FwAssertArgType>(_status)
935 _status = msg.serializeFrom(portNum);
938 static_cast<FwAssertArgType>(_status)
942 _status = msg.serializeFrom(fwBuffer);
945 static_cast<FwAssertArgType>(_status)
954 static_cast<FwAssertArgType>(qStatus)
967 static_cast<FwAssertArgType>(portNum)
975 ComponentIpcSerializableBuffer msg;
979 _status = msg.serializeFrom(
980 static_cast<FwEnumStoreType>(PINGIN_PING)
984 static_cast<FwAssertArgType>(_status)
988 _status = msg.serializeFrom(portNum);
991 static_cast<FwAssertArgType>(_status)
995 _status = msg.serializeFrom(key);
998 static_cast<FwAssertArgType>(_status)
1007 static_cast<FwAssertArgType>(qStatus)
1058 static_cast<FwAssertArgType>(portNum)
1062 this->m_bufferSendOutDrain_OutputPort[portNum].isConnected(),
1063 static_cast<FwAssertArgType>(portNum)
1065 this->m_bufferSendOutDrain_OutputPort[portNum].
invoke(
1078 static_cast<FwAssertArgType>(portNum)
1082 this->m_bufferSendOutReturn_OutputPort[portNum].isConnected(),
1083 static_cast<FwAssertArgType>(portNum)
1085 this->m_bufferSendOutReturn_OutputPort[portNum].
invoke(
1098 static_cast<FwAssertArgType>(portNum)
1102 this->m_pingOut_OutputPort[portNum].isConnected(),
1103 static_cast<FwAssertArgType>(portNum)
1105 this->m_pingOut_OutputPort[portNum].
invoke(
1121 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1122 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1143 ComponentIpcSerializableBuffer msg;
1147 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_BA_SETMODE));
1150 static_cast<FwAssertArgType>(_status)
1156 _status = msg.serializeFrom(port);
1159 static_cast<FwAssertArgType>(_status)
1162 _status = msg.serializeFrom(opCode);
1165 static_cast<FwAssertArgType>(_status)
1168 _status = msg.serializeFrom(cmdSeq);
1171 static_cast<FwAssertArgType>(_status)
1174 _status = msg.serializeFrom(args);
1177 static_cast<FwAssertArgType>(_status)
1186 static_cast<FwAssertArgType>(qStatus)
1202 ComponentIpcSerializableBuffer msg;
1206 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_BA_DRAINBUFFERS));
1209 static_cast<FwAssertArgType>(_status)
1215 _status = msg.serializeFrom(port);
1218 static_cast<FwAssertArgType>(_status)
1221 _status = msg.serializeFrom(opCode);
1224 static_cast<FwAssertArgType>(_status)
1227 _status = msg.serializeFrom(cmdSeq);
1230 static_cast<FwAssertArgType>(_status)
1233 _status = msg.serializeFrom(args);
1236 static_cast<FwAssertArgType>(_status)
1245 static_cast<FwAssertArgType>(qStatus)
1288 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1289 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1297 if (this->m_eventOut_OutputPort[0].isConnected()) {
1300 #if FW_AMPCS_COMPATIBLE 1306 static_cast<FwAssertArgType>(_status)
1310 this->m_eventOut_OutputPort[0].
invoke(
1319 #if FW_ENABLE_TEXT_LOGGING 1320 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1321 #if FW_OBJECT_NAMES == 1 1322 const char* _formatString =
1323 "(%s) %s: Buffer accepted";
1325 const char* _formatString =
1326 "%s: Buffer accepted";
1333 this->m_objName.toChar(),
1335 "BA_BufferAccepted " 1338 this->m_eventOutText_OutputPort[0].invoke(
1353 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1354 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1362 if (this->m_eventOut_OutputPort[0].isConnected()) {
1365 #if FW_AMPCS_COMPATIBLE 1371 static_cast<FwAssertArgType>(_status)
1375 this->m_eventOut_OutputPort[0].
invoke(
1384 #if FW_ENABLE_TEXT_LOGGING 1385 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1386 #if FW_OBJECT_NAMES == 1 1387 const char* _formatString =
1388 "(%s) %s: Queue full";
1390 const char* _formatString =
1398 this->m_objName.toChar(),
1403 this->m_eventOutText_OutputPort[0].invoke(
1421 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1422 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1430 if (this->m_eventOut_OutputPort[0].isConnected()) {
1434 #if FW_AMPCS_COMPATIBLE 1439 static_cast<FwAssertArgType>(_status)
1443 #if FW_AMPCS_COMPATIBLE 1446 static_cast<U8>(
sizeof(U32))
1450 static_cast<FwAssertArgType>(_status)
1456 static_cast<FwAssertArgType>(_status)
1459 #if FW_AMPCS_COMPATIBLE 1462 static_cast<U8>(
sizeof(U32))
1466 static_cast<FwAssertArgType>(_status)
1472 static_cast<FwAssertArgType>(_status)
1475 this->m_eventOut_OutputPort[0].
invoke(
1484 #if FW_ENABLE_TEXT_LOGGING 1485 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1486 #if FW_OBJECT_NAMES == 1 1487 const char* _formatString =
1488 "(%s) %s: Still draining %" PRIu32
" of %" PRIu32
"";
1490 const char* _formatString =
1491 "%s: Still draining %" PRIu32
" of %" PRIu32
"";
1498 this->m_objName.toChar(),
1500 "BA_StillDraining ",
1505 this->m_eventOutText_OutputPort[0].invoke(
1520 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1521 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1529 if (this->m_eventOut_OutputPort[0].isConnected()) {
1532 #if FW_AMPCS_COMPATIBLE 1538 static_cast<FwAssertArgType>(_status)
1542 this->m_eventOut_OutputPort[0].
invoke(
1551 #if FW_ENABLE_TEXT_LOGGING 1552 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1553 #if FW_OBJECT_NAMES == 1 1554 const char* _formatString =
1555 "(%s) %s: Already in DRAIN mode";
1557 const char* _formatString =
1558 "%s: Already in DRAIN mode";
1565 this->m_objName.toChar(),
1567 "BA_AlreadyDraining " 1570 this->m_eventOutText_OutputPort[0].invoke(
1588 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1589 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1597 if (this->m_eventOut_OutputPort[0].isConnected()) {
1601 #if FW_AMPCS_COMPATIBLE 1606 static_cast<FwAssertArgType>(_status)
1610 #if FW_AMPCS_COMPATIBLE 1613 static_cast<U8>(
sizeof(U32))
1617 static_cast<FwAssertArgType>(_status)
1623 static_cast<FwAssertArgType>(_status)
1626 #if FW_AMPCS_COMPATIBLE 1629 static_cast<U8>(
sizeof(U32))
1633 static_cast<FwAssertArgType>(_status)
1639 static_cast<FwAssertArgType>(_status)
1642 this->m_eventOut_OutputPort[0].
invoke(
1651 #if FW_ENABLE_TEXT_LOGGING 1652 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1653 #if FW_OBJECT_NAMES == 1 1654 const char* _formatString =
1655 "(%s) %s: Drain stalling - only drained %" PRIu32
" of %" PRIu32
"";
1657 const char* _formatString =
1658 "%s: Drain stalling - only drained %" PRIu32
" of %" PRIu32
"";
1665 this->m_objName.toChar(),
1672 this->m_eventOutText_OutputPort[0].invoke(
1687 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1688 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1696 if (this->m_eventOut_OutputPort[0].isConnected()) {
1700 #if FW_AMPCS_COMPATIBLE 1705 static_cast<FwAssertArgType>(_status)
1709 #if FW_AMPCS_COMPATIBLE 1712 static_cast<U8>(
sizeof(U32))
1716 static_cast<FwAssertArgType>(_status)
1722 static_cast<FwAssertArgType>(_status)
1725 this->m_eventOut_OutputPort[0].
invoke(
1734 #if FW_ENABLE_TEXT_LOGGING 1735 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1736 #if FW_OBJECT_NAMES == 1 1737 const char* _formatString =
1738 "(%s) %s: Partial drain of %" PRIu32
" finished";
1740 const char* _formatString =
1741 "%s: Partial drain of %" PRIu32
" finished";
1748 this->m_objName.toChar(),
1750 "BA_PartialDrainDone ",
1754 this->m_eventOutText_OutputPort[0].invoke(
1772 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1773 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1781 if (this->m_eventOut_OutputPort[0].isConnected()) {
1785 #if FW_AMPCS_COMPATIBLE 1790 static_cast<FwAssertArgType>(_status)
1794 #if FW_AMPCS_COMPATIBLE 1797 static_cast<U8>(
sizeof(U32))
1801 static_cast<FwAssertArgType>(_status)
1807 static_cast<FwAssertArgType>(_status)
1810 #if FW_AMPCS_COMPATIBLE 1813 static_cast<U8>(
sizeof(U32))
1817 static_cast<FwAssertArgType>(_status)
1823 static_cast<FwAssertArgType>(_status)
1826 this->m_eventOut_OutputPort[0].
invoke(
1835 #if FW_ENABLE_TEXT_LOGGING 1836 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1837 #if FW_OBJECT_NAMES == 1 1838 const char* _formatString =
1839 "(%s) %s: Only have %" PRIu32
"; requested drain of %" PRIu32
"";
1841 const char* _formatString =
1842 "%s: Only have %" PRIu32
"; requested drain of %" PRIu32
"";
1849 this->m_objName.toChar(),
1851 "BA_NonBlockDrain ",
1856 this->m_eventOutText_OutputPort[0].invoke(
1876 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1878 this->m_timeCaller_OutputPort[0].isConnected() &&
1881 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
1888 static_cast<FwAssertArgType>(_stat)
1895 this->m_tlmOut_OutputPort[0].
invoke(
1910 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1912 this->m_timeCaller_OutputPort[0].
invoke(_time);
1927 ComponentIpcSerializableBuffer _msg;
1937 static_cast<FwAssertArgType>(_msgStatus)
1947 static_cast<FwAssertArgType>(_deserStatus)
1950 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
1952 if (_msgType == BUFFERACCUMULATOR_COMPONENT_EXIT) {
1957 _deserStatus = _msg.deserializeTo(portNum);
1960 static_cast<FwAssertArgType>(_deserStatus)
1965 case BUFFERSENDINFILL_BUFFERSEND: {
1968 _deserStatus = _msg.deserializeTo(fwBuffer);
1971 static_cast<FwAssertArgType>(_deserStatus)
1983 case BUFFERSENDINRETURN_BUFFERSEND: {
1986 _deserStatus = _msg.deserializeTo(fwBuffer);
1989 static_cast<FwAssertArgType>(_deserStatus)
2004 _deserStatus = _msg.deserializeTo(key);
2007 static_cast<FwAssertArgType>(_deserStatus)
2019 case CMD_BA_SETMODE: {
2022 _deserStatus = _msg.deserializeTo(_opCode);
2025 static_cast<FwAssertArgType>(_deserStatus)
2030 _deserStatus = _msg.deserializeTo(_cmdSeq);
2033 static_cast<FwAssertArgType>(_deserStatus)
2038 _deserStatus = _msg.deserializeTo(args);
2041 static_cast<FwAssertArgType>(_deserStatus)
2051 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2064 #if FW_CMD_CHECK_RESIDUAL 2066 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2084 case CMD_BA_DRAINBUFFERS: {
2087 _deserStatus = _msg.deserializeTo(_opCode);
2090 static_cast<FwAssertArgType>(_deserStatus)
2095 _deserStatus = _msg.deserializeTo(_cmdSeq);
2098 static_cast<FwAssertArgType>(_deserStatus)
2103 _deserStatus = _msg.deserializeTo(args);
2106 static_cast<FwAssertArgType>(_deserStatus)
2116 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2131 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2144 #if FW_CMD_CHECK_RESIDUAL 2146 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2175 void BufferAccumulatorComponentBase ::
2187 const U32 idBase = callComp->
getIdBase();
2188 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2191 switch (opCode - idBase) {
2193 compPtr->BA_SetMode_cmdHandlerBase(
2202 compPtr->BA_DrainBuffers_cmdHandlerBase(
2216 void BufferAccumulatorComponentBase ::
2217 m_p_bufferSendInFill_in(
2225 compPtr->bufferSendInFill_handlerBase(
2231 void BufferAccumulatorComponentBase ::
2232 m_p_bufferSendInReturn_in(
2240 compPtr->bufferSendInReturn_handlerBase(
2246 void BufferAccumulatorComponentBase ::
2255 compPtr->pingIn_handlerBase(
Serialization/Deserialization operation was successful.
void addCallPort(InputTimePort *callPort)
Register an input port.
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
void bufferSendOutReturn_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferSendOutReturn.
virtual void BA_SetMode_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::BufferAccumulator_OpState mode)=0
static constexpr FwIndexType getNum_pingIn_InputPorts()
bool isConnected_bufferSendOutDrain_OutputPort(FwIndexType portNum)
FwIdType FwOpcodeType
The type of a command opcode.
virtual void bufferSendInReturn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendInReturn.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
FwIdType getIdBase() const
PlatformSizeType FwSizeType
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
Status
status returned from the queue send function
Drain the commanded number of buffers.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual ~BufferAccumulatorComponentBase()
Destroy BufferAccumulatorComponentBase object.
Channel ID for BA_NumQueuedBuffers.
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_bufferSendInReturn_InputPorts()
Got DrainBuffers command while executing DrainBuffers command.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
void invoke(U32 key) const
Invoke a port interface.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
static constexpr FwIndexType getNum_bufferSendInFill_InputPorts()
void init()
Initialization function.
void log_ACTIVITY_HI_BA_PartialDrainDone(U32 numDrained) const
Enum representing a command response.
void log_ACTIVITY_HI_BA_BufferAccepted() const
No time base has been established (Required)
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
BufferAccumulatorComponentBase(const char *compName="")
Construct BufferAccumulatorComponentBase object.
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
Os::Queue m_queue
queue object for active component
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Object initializer.
bool isConnected_eventOut_OutputPort(FwIndexType portNum)
SerializeStatus
forward declaration for string
void log_WARNING_LO_BA_NonBlockDrain(U32 numWillDrain, U32 numReqDrain) const
Message will block until space is available.
static constexpr FwIndexType getNum_bufferSendOutDrain_OutputPorts()
FwIdType FwEventIdType
The type of an event identifier.
void invoke(FwOpcodeType opCode) const
Invoke a port interface.
void set_bufferSendOutReturn_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOutReturn[portNum].
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
Ran out of buffers while executing DrainBuffers command.
#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 set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void log_WARNING_HI_BA_StillDraining(U32 numDrained, U32 numToDrain) const
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
void tlmWrite_BA_NumQueuedBuffers(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
A less serious but recoverable event.
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
virtual void bufferSendInFill_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendInFill.
The Buffer Accumulator instance received a buffer when its queue was full. To avoid uncontrolled send...
void invoke(Fw::Time &time) const
Invoke a port interface.
void BA_DrainBuffers_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
Finished DrainBuffers command.
message to exit active component task
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.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
void regCommands()
Register commands with the Command Dispatcher.
void addCallPort(InputPingPort *callPort)
Register an input port.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
A serious but recoverable event.
void BA_SetMode_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Errors dispatching messages.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port interface.
Got DrainBuffers command while in DRAIN mode.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
virtual void BA_DrainBuffers_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BA_DrainBuffers.
uint8_t U8
8-bit unsigned integer
bool isConnected_bufferSendOutReturn_OutputPort(FwIndexType portNum)
Command failed to deserialize.
Not enough buffers to complete requested drain, and NOBLOCK was set; will only drain what we have...
void set_bufferSendOutDrain_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOutDrain[portNum].
The Buffer Accumulator instance accepted and enqueued a buffer. To avoid uncontrolled sending of even...
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Important informational events.
void init()
Initialization function.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
Fw::InputBufferSendPort * get_bufferSendInReturn_InputPort(FwIndexType portNum)
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port interface.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
virtual void bufferSendInFill_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendInFill.
A message was sent requesting an exit of the loop.
void log_WARNING_HI_BA_AlreadyDraining() const
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
PlatformIndexType FwIndexType
static constexpr FwIndexType getNum_bufferSendOutReturn_OutputPorts()
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void addCallPort(InputLogPort *callPort)
Register an input port.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
Fw::InputBufferSendPort * get_bufferSendInFill_InputPort(FwIndexType portNum)
void init()
Initialization function.
void log_WARNING_HI_BA_DrainStalled(U32 numDrained, U32 numToDrain) const
void log_WARNING_HI_BA_QueueFull() const
RateGroupDivider component implementation.
message sent/received okay
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
void bufferSendOutDrain_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferSendOutDrain.
virtual void bufferSendInReturn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendInReturn.
void bufferSendInFill_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendInFill.
Message will return with status when space is unavailable.
Implementation of malloc based allocator.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void init()
Initialization function.
void bufferSendInReturn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendInReturn.
virtual void BA_DrainBuffers_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U32 numToDrain, Svc::BufferAccumulator_BlockMode blockMode)=0
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
virtual void BA_SetMode_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BA_SetMode.