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)
789 #if FW_ENABLE_TEXT_LOGGING == 1 792 getNum_eventOutText_OutputPorts()
const 842 static_cast<FwAssertArgType>(portNum)
845 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
853 static_cast<FwAssertArgType>(portNum)
856 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
864 static_cast<FwAssertArgType>(portNum)
867 return this->m_eventOut_OutputPort[portNum].
isConnected();
870 #if FW_ENABLE_TEXT_LOGGING == 1 872 bool BufferAccumulatorComponentBase ::
873 isConnected_eventOutText_OutputPort(
FwIndexType portNum)
876 (0 <= portNum) && (portNum < this->getNum_eventOutText_OutputPorts()),
877 static_cast<FwAssertArgType>(portNum)
880 return this->m_eventOutText_OutputPort[portNum].isConnected();
890 static_cast<FwAssertArgType>(portNum)
893 return this->m_timeCaller_OutputPort[portNum].
isConnected();
901 static_cast<FwAssertArgType>(portNum)
904 return this->m_tlmOut_OutputPort[portNum].
isConnected();
916 static_cast<FwAssertArgType>(portNum)
919 return this->m_bufferSendOutDrain_OutputPort[portNum].
isConnected();
927 static_cast<FwAssertArgType>(portNum)
930 return this->m_bufferSendOutReturn_OutputPort[portNum].
isConnected();
938 static_cast<FwAssertArgType>(portNum)
941 return this->m_pingOut_OutputPort[portNum].
isConnected();
959 static_cast<FwAssertArgType>(portNum)
967 ComponentIpcSerializableBuffer msg;
971 _status = msg.serialize(
972 static_cast<FwEnumStoreType>(BUFFERSENDINFILL_BUFFERSEND)
976 static_cast<FwAssertArgType>(_status)
980 _status = msg.serialize(portNum);
983 static_cast<FwAssertArgType>(_status)
987 _status = msg.serialize(fwBuffer);
990 static_cast<FwAssertArgType>(_status)
999 static_cast<FwAssertArgType>(qStatus)
1012 static_cast<FwAssertArgType>(portNum)
1020 ComponentIpcSerializableBuffer msg;
1024 _status = msg.serialize(
1025 static_cast<FwEnumStoreType>(BUFFERSENDINRETURN_BUFFERSEND)
1029 static_cast<FwAssertArgType>(_status)
1033 _status = msg.serialize(portNum);
1036 static_cast<FwAssertArgType>(_status)
1040 _status = msg.serialize(fwBuffer);
1043 static_cast<FwAssertArgType>(_status)
1052 static_cast<FwAssertArgType>(qStatus)
1065 static_cast<FwAssertArgType>(portNum)
1073 ComponentIpcSerializableBuffer msg;
1077 _status = msg.serialize(
1078 static_cast<FwEnumStoreType>(PINGIN_PING)
1082 static_cast<FwAssertArgType>(_status)
1086 _status = msg.serialize(portNum);
1089 static_cast<FwAssertArgType>(_status)
1093 _status = msg.serialize(key);
1096 static_cast<FwAssertArgType>(_status)
1105 static_cast<FwAssertArgType>(qStatus)
1156 static_cast<FwAssertArgType>(portNum)
1160 this->m_bufferSendOutDrain_OutputPort[portNum].isConnected(),
1161 static_cast<FwAssertArgType>(portNum)
1163 this->m_bufferSendOutDrain_OutputPort[portNum].
invoke(
1176 static_cast<FwAssertArgType>(portNum)
1180 this->m_bufferSendOutReturn_OutputPort[portNum].isConnected(),
1181 static_cast<FwAssertArgType>(portNum)
1183 this->m_bufferSendOutReturn_OutputPort[portNum].
invoke(
1196 static_cast<FwAssertArgType>(portNum)
1200 this->m_pingOut_OutputPort[portNum].isConnected(),
1201 static_cast<FwAssertArgType>(portNum)
1203 this->m_pingOut_OutputPort[portNum].
invoke(
1219 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1220 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1241 ComponentIpcSerializableBuffer msg;
1245 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_BA_SETMODE));
1248 static_cast<FwAssertArgType>(_status)
1254 _status = msg.serialize(port);
1257 static_cast<FwAssertArgType>(_status)
1260 _status = msg.serialize(opCode);
1263 static_cast<FwAssertArgType>(_status)
1266 _status = msg.serialize(cmdSeq);
1269 static_cast<FwAssertArgType>(_status)
1272 _status = msg.serialize(args);
1275 static_cast<FwAssertArgType>(_status)
1284 static_cast<FwAssertArgType>(qStatus)
1300 ComponentIpcSerializableBuffer msg;
1304 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_BA_DRAINBUFFERS));
1307 static_cast<FwAssertArgType>(_status)
1313 _status = msg.serialize(port);
1316 static_cast<FwAssertArgType>(_status)
1319 _status = msg.serialize(opCode);
1322 static_cast<FwAssertArgType>(_status)
1325 _status = msg.serialize(cmdSeq);
1328 static_cast<FwAssertArgType>(_status)
1331 _status = msg.serialize(args);
1334 static_cast<FwAssertArgType>(_status)
1343 static_cast<FwAssertArgType>(qStatus)
1386 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1387 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1395 if (this->m_eventOut_OutputPort[0].isConnected()) {
1398 #if FW_AMPCS_COMPATIBLE 1401 _status = _logBuff.
serialize(static_cast<U8>(0));
1404 static_cast<FwAssertArgType>(_status)
1408 this->m_eventOut_OutputPort[0].
invoke(
1417 #if FW_ENABLE_TEXT_LOGGING 1418 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1419 #if FW_OBJECT_NAMES == 1 1420 const char* _formatString =
1421 "(%s) %s: Buffer accepted";
1423 const char* _formatString =
1424 "%s: Buffer accepted";
1431 this->m_objName.toChar(),
1433 "BA_BufferAccepted " 1436 this->m_eventOutText_OutputPort[0].invoke(
1451 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1452 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1460 if (this->m_eventOut_OutputPort[0].isConnected()) {
1463 #if FW_AMPCS_COMPATIBLE 1466 _status = _logBuff.
serialize(static_cast<U8>(0));
1469 static_cast<FwAssertArgType>(_status)
1473 this->m_eventOut_OutputPort[0].
invoke(
1482 #if FW_ENABLE_TEXT_LOGGING 1483 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1484 #if FW_OBJECT_NAMES == 1 1485 const char* _formatString =
1486 "(%s) %s: Queue full";
1488 const char* _formatString =
1496 this->m_objName.toChar(),
1501 this->m_eventOutText_OutputPort[0].invoke(
1519 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1520 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1528 if (this->m_eventOut_OutputPort[0].isConnected()) {
1532 #if FW_AMPCS_COMPATIBLE 1534 _status = _logBuff.
serialize(static_cast<U8>(2));
1537 static_cast<FwAssertArgType>(_status)
1541 #if FW_AMPCS_COMPATIBLE 1544 static_cast<U8>(
sizeof(U32))
1548 static_cast<FwAssertArgType>(_status)
1551 _status = _logBuff.
serialize(numDrained);
1554 static_cast<FwAssertArgType>(_status)
1557 #if FW_AMPCS_COMPATIBLE 1560 static_cast<U8>(
sizeof(U32))
1564 static_cast<FwAssertArgType>(_status)
1567 _status = _logBuff.
serialize(numToDrain);
1570 static_cast<FwAssertArgType>(_status)
1573 this->m_eventOut_OutputPort[0].
invoke(
1582 #if FW_ENABLE_TEXT_LOGGING 1583 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1584 #if FW_OBJECT_NAMES == 1 1585 const char* _formatString =
1586 "(%s) %s: Still draining %" PRIu32
" of %" PRIu32
"";
1588 const char* _formatString =
1589 "%s: Still draining %" PRIu32
" of %" PRIu32
"";
1596 this->m_objName.toChar(),
1598 "BA_StillDraining ",
1603 this->m_eventOutText_OutputPort[0].invoke(
1618 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1619 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1627 if (this->m_eventOut_OutputPort[0].isConnected()) {
1630 #if FW_AMPCS_COMPATIBLE 1633 _status = _logBuff.
serialize(static_cast<U8>(0));
1636 static_cast<FwAssertArgType>(_status)
1640 this->m_eventOut_OutputPort[0].
invoke(
1649 #if FW_ENABLE_TEXT_LOGGING 1650 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1651 #if FW_OBJECT_NAMES == 1 1652 const char* _formatString =
1653 "(%s) %s: Already in DRAIN mode";
1655 const char* _formatString =
1656 "%s: Already in DRAIN mode";
1663 this->m_objName.toChar(),
1665 "BA_AlreadyDraining " 1668 this->m_eventOutText_OutputPort[0].invoke(
1686 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1687 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1695 if (this->m_eventOut_OutputPort[0].isConnected()) {
1699 #if FW_AMPCS_COMPATIBLE 1701 _status = _logBuff.
serialize(static_cast<U8>(2));
1704 static_cast<FwAssertArgType>(_status)
1708 #if FW_AMPCS_COMPATIBLE 1711 static_cast<U8>(
sizeof(U32))
1715 static_cast<FwAssertArgType>(_status)
1718 _status = _logBuff.
serialize(numDrained);
1721 static_cast<FwAssertArgType>(_status)
1724 #if FW_AMPCS_COMPATIBLE 1727 static_cast<U8>(
sizeof(U32))
1731 static_cast<FwAssertArgType>(_status)
1734 _status = _logBuff.
serialize(numToDrain);
1737 static_cast<FwAssertArgType>(_status)
1740 this->m_eventOut_OutputPort[0].
invoke(
1749 #if FW_ENABLE_TEXT_LOGGING 1750 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1751 #if FW_OBJECT_NAMES == 1 1752 const char* _formatString =
1753 "(%s) %s: Drain stalling - only drained %" PRIu32
" of %" PRIu32
"";
1755 const char* _formatString =
1756 "%s: Drain stalling - only drained %" PRIu32
" of %" PRIu32
"";
1763 this->m_objName.toChar(),
1770 this->m_eventOutText_OutputPort[0].invoke(
1785 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1786 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1794 if (this->m_eventOut_OutputPort[0].isConnected()) {
1798 #if FW_AMPCS_COMPATIBLE 1800 _status = _logBuff.
serialize(static_cast<U8>(1));
1803 static_cast<FwAssertArgType>(_status)
1807 #if FW_AMPCS_COMPATIBLE 1810 static_cast<U8>(
sizeof(U32))
1814 static_cast<FwAssertArgType>(_status)
1817 _status = _logBuff.
serialize(numDrained);
1820 static_cast<FwAssertArgType>(_status)
1823 this->m_eventOut_OutputPort[0].
invoke(
1832 #if FW_ENABLE_TEXT_LOGGING 1833 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1834 #if FW_OBJECT_NAMES == 1 1835 const char* _formatString =
1836 "(%s) %s: Partial drain of %" PRIu32
" finished";
1838 const char* _formatString =
1839 "%s: Partial drain of %" PRIu32
" finished";
1846 this->m_objName.toChar(),
1848 "BA_PartialDrainDone ",
1852 this->m_eventOutText_OutputPort[0].invoke(
1870 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1871 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1879 if (this->m_eventOut_OutputPort[0].isConnected()) {
1883 #if FW_AMPCS_COMPATIBLE 1885 _status = _logBuff.
serialize(static_cast<U8>(2));
1888 static_cast<FwAssertArgType>(_status)
1892 #if FW_AMPCS_COMPATIBLE 1895 static_cast<U8>(
sizeof(U32))
1899 static_cast<FwAssertArgType>(_status)
1902 _status = _logBuff.
serialize(numWillDrain);
1905 static_cast<FwAssertArgType>(_status)
1908 #if FW_AMPCS_COMPATIBLE 1911 static_cast<U8>(
sizeof(U32))
1915 static_cast<FwAssertArgType>(_status)
1918 _status = _logBuff.
serialize(numReqDrain);
1921 static_cast<FwAssertArgType>(_status)
1924 this->m_eventOut_OutputPort[0].
invoke(
1933 #if FW_ENABLE_TEXT_LOGGING 1934 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1935 #if FW_OBJECT_NAMES == 1 1936 const char* _formatString =
1937 "(%s) %s: Only have %" PRIu32
"; requested drain of %" PRIu32
"";
1939 const char* _formatString =
1940 "%s: Only have %" PRIu32
"; requested drain of %" PRIu32
"";
1947 this->m_objName.toChar(),
1949 "BA_NonBlockDrain ",
1954 this->m_eventOutText_OutputPort[0].invoke(
1974 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1976 this->m_timeCaller_OutputPort[0].isConnected() &&
1979 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
1986 static_cast<FwAssertArgType>(_stat)
1993 this->m_tlmOut_OutputPort[0].
invoke(
2008 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2010 this->m_timeCaller_OutputPort[0].
invoke(_time);
2025 ComponentIpcSerializableBuffer _msg;
2035 static_cast<FwAssertArgType>(_msgStatus)
2045 static_cast<FwAssertArgType>(_deserStatus)
2048 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2050 if (_msgType == BUFFERACCUMULATOR_COMPONENT_EXIT) {
2055 _deserStatus = _msg.deserialize(portNum);
2058 static_cast<FwAssertArgType>(_deserStatus)
2063 case BUFFERSENDINFILL_BUFFERSEND: {
2066 _deserStatus = _msg.deserialize(fwBuffer);
2069 static_cast<FwAssertArgType>(_deserStatus)
2081 case BUFFERSENDINRETURN_BUFFERSEND: {
2084 _deserStatus = _msg.deserialize(fwBuffer);
2087 static_cast<FwAssertArgType>(_deserStatus)
2102 _deserStatus = _msg.deserialize(key);
2105 static_cast<FwAssertArgType>(_deserStatus)
2117 case CMD_BA_SETMODE: {
2120 _deserStatus = _msg.deserialize(_opCode);
2123 static_cast<FwAssertArgType>(_deserStatus)
2128 _deserStatus = _msg.deserialize(_cmdSeq);
2131 static_cast<FwAssertArgType>(_deserStatus)
2136 _deserStatus = _msg.deserialize(args);
2139 static_cast<FwAssertArgType>(_deserStatus)
2149 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2162 #if FW_CMD_CHECK_RESIDUAL 2164 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2182 case CMD_BA_DRAINBUFFERS: {
2185 _deserStatus = _msg.deserialize(_opCode);
2188 static_cast<FwAssertArgType>(_deserStatus)
2193 _deserStatus = _msg.deserialize(_cmdSeq);
2196 static_cast<FwAssertArgType>(_deserStatus)
2201 _deserStatus = _msg.deserialize(args);
2204 static_cast<FwAssertArgType>(_deserStatus)
2214 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2229 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2242 #if FW_CMD_CHECK_RESIDUAL 2244 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2273 void BufferAccumulatorComponentBase ::
2285 const U32 idBase = callComp->
getIdBase();
2286 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2289 switch (opCode - idBase) {
2291 compPtr->BA_SetMode_cmdHandlerBase(
2300 compPtr->BA_DrainBuffers_cmdHandlerBase(
2314 void BufferAccumulatorComponentBase ::
2315 m_p_bufferSendInFill_in(
2323 compPtr->bufferSendInFill_handlerBase(
2329 void BufferAccumulatorComponentBase ::
2330 m_p_bufferSendInReturn_in(
2338 compPtr->bufferSendInReturn_handlerBase(
2344 void BufferAccumulatorComponentBase ::
2353 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
FwIndexType getNum_cmdRegOut_OutputPorts() const
bool isConnected_bufferSendOutDrain_OutputPort(FwIndexType portNum)
virtual void bufferSendInReturn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendInReturn.
Drain the commanded number of buffers.
PlatformSizeType FwSizeType
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
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual ~BufferAccumulatorComponentBase()
Destroy BufferAccumulatorComponentBase object.
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
U32 FwChanIdType
The type of a telemetry channel identifier.
void invoke(U32 key) const
Invoke a port interface.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
FwIndexType getNum_bufferSendInReturn_InputPorts() const
FwIndexType getNum_cmdResponseOut_OutputPorts() const
void init()
Initialization function.
FwIndexType getNum_eventOut_OutputPorts() const
void log_ACTIVITY_HI_BA_PartialDrainDone(U32 numDrained) const
Enum representing a command response.
void log_ACTIVITY_HI_BA_BufferAccepted() const
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.
FwIndexType getNum_tlmOut_OutputPorts() const
Not enough buffers to complete requested drain, and NOBLOCK was set; will only drain what we have...
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)
U32 FwEventIdType
The type of an event identifier.
SerializeStatus
forward declaration for string
Got DrainBuffers command while in DRAIN mode.
void log_WARNING_LO_BA_NonBlockDrain(U32 numWillDrain, U32 numReqDrain) const
Message will block until space is available.
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.
U32 FwOpcodeType
The type of a command opcode.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left
void init()
Initialization function.
FwIndexType getNum_pingOut_OutputPorts() const
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.
void invoke(Fw::Time &time) const
Invoke a port interface.
void BA_DrainBuffers_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
const char * toChar() const
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port interface.
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
void resetDeser()
reset deserialization to beginning
message to exit active component task
A serious but recoverable event.
void BA_SetMode_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Errors dispatching messages.
FwIndexType getNum_cmdIn_InputPorts() const
FwIndexType getNum_timeCaller_OutputPorts() const
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port interface.
FwIndexType getNum_bufferSendInFill_InputPorts() const
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.
void set_bufferSendOutDrain_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOutDrain[portNum].
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
Channel ID for BA_NumQueuedBuffers.
Important informational events.
void init()
Initialization function.
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].
No time base has been established.
FwIndexType getNum_bufferSendOutDrain_OutputPorts() const
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
PlatformIndexType FwIndexType
The Buffer Accumulator instance accepted and enqueued a buffer. To avoid uncontrolled sending of even...
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
void addCallPort(InputLogPort *callPort)
Register an input port.
FwIndexType getNum_pingIn_InputPorts() const
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.
FwIndexType getNum_bufferSendOutReturn_OutputPorts() const
message sent/received okay
Got DrainBuffers command while executing DrainBuffers command.
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.
The Buffer Accumulator instance received a buffer when its queue was full. To avoid uncontrolled send...
Message will return with status when space is unavailable.
Ran out of buffers while executing DrainBuffers command.
Finished DrainBuffers command.
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.