10 #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 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 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 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)
1158 this->m_bufferSendOutDrain_OutputPort[portNum].
invoke(
1171 static_cast<FwAssertArgType>(portNum)
1173 this->m_bufferSendOutReturn_OutputPort[portNum].
invoke(
1186 static_cast<FwAssertArgType>(portNum)
1188 this->m_pingOut_OutputPort[portNum].
invoke(
1204 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1205 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1226 ComponentIpcSerializableBuffer msg;
1230 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_BA_SETMODE));
1233 static_cast<FwAssertArgType>(_status)
1239 _status = msg.serialize(port);
1242 static_cast<FwAssertArgType>(_status)
1245 _status = msg.serialize(opCode);
1248 static_cast<FwAssertArgType>(_status)
1251 _status = msg.serialize(cmdSeq);
1254 static_cast<FwAssertArgType>(_status)
1257 _status = msg.serialize(args);
1260 static_cast<FwAssertArgType>(_status)
1269 static_cast<FwAssertArgType>(qStatus)
1285 ComponentIpcSerializableBuffer msg;
1289 _status = msg.serialize(static_cast<FwEnumStoreType>(CMD_BA_DRAINBUFFERS));
1292 static_cast<FwAssertArgType>(_status)
1298 _status = msg.serialize(port);
1301 static_cast<FwAssertArgType>(_status)
1304 _status = msg.serialize(opCode);
1307 static_cast<FwAssertArgType>(_status)
1310 _status = msg.serialize(cmdSeq);
1313 static_cast<FwAssertArgType>(_status)
1316 _status = msg.serialize(args);
1319 static_cast<FwAssertArgType>(_status)
1328 static_cast<FwAssertArgType>(qStatus)
1371 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1372 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1380 if (this->m_eventOut_OutputPort[0].isConnected()) {
1383 #if FW_AMPCS_COMPATIBLE 1386 _status = _logBuff.
serialize(static_cast<U8>(0));
1389 static_cast<FwAssertArgType>(_status)
1393 this->m_eventOut_OutputPort[0].
invoke(
1402 #if FW_ENABLE_TEXT_LOGGING 1403 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1404 #if FW_OBJECT_NAMES == 1 1405 const char* _formatString =
1406 "(%s) %s: Buffer accepted";
1408 const char* _formatString =
1409 "%s: Buffer accepted";
1416 this->m_objName.toChar(),
1418 "BA_BufferAccepted " 1421 this->m_eventOutText_OutputPort[0].invoke(
1436 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1437 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1445 if (this->m_eventOut_OutputPort[0].isConnected()) {
1448 #if FW_AMPCS_COMPATIBLE 1451 _status = _logBuff.
serialize(static_cast<U8>(0));
1454 static_cast<FwAssertArgType>(_status)
1458 this->m_eventOut_OutputPort[0].
invoke(
1467 #if FW_ENABLE_TEXT_LOGGING 1468 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1469 #if FW_OBJECT_NAMES == 1 1470 const char* _formatString =
1471 "(%s) %s: Queue full";
1473 const char* _formatString =
1481 this->m_objName.toChar(),
1486 this->m_eventOutText_OutputPort[0].invoke(
1504 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1505 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1513 if (this->m_eventOut_OutputPort[0].isConnected()) {
1517 #if FW_AMPCS_COMPATIBLE 1519 _status = _logBuff.
serialize(static_cast<U8>(2));
1522 static_cast<FwAssertArgType>(_status)
1526 #if FW_AMPCS_COMPATIBLE 1529 static_cast<U8>(
sizeof(U32))
1533 static_cast<FwAssertArgType>(_status)
1536 _status = _logBuff.
serialize(numDrained);
1539 static_cast<FwAssertArgType>(_status)
1542 #if FW_AMPCS_COMPATIBLE 1545 static_cast<U8>(
sizeof(U32))
1549 static_cast<FwAssertArgType>(_status)
1552 _status = _logBuff.
serialize(numToDrain);
1555 static_cast<FwAssertArgType>(_status)
1558 this->m_eventOut_OutputPort[0].
invoke(
1567 #if FW_ENABLE_TEXT_LOGGING 1568 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1569 #if FW_OBJECT_NAMES == 1 1570 const char* _formatString =
1571 "(%s) %s: Still draining %" PRIu32
" of %" PRIu32
"";
1573 const char* _formatString =
1574 "%s: Still draining %" PRIu32
" of %" PRIu32
"";
1581 this->m_objName.toChar(),
1583 "BA_StillDraining ",
1588 this->m_eventOutText_OutputPort[0].invoke(
1603 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1604 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1612 if (this->m_eventOut_OutputPort[0].isConnected()) {
1615 #if FW_AMPCS_COMPATIBLE 1618 _status = _logBuff.
serialize(static_cast<U8>(0));
1621 static_cast<FwAssertArgType>(_status)
1625 this->m_eventOut_OutputPort[0].
invoke(
1634 #if FW_ENABLE_TEXT_LOGGING 1635 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1636 #if FW_OBJECT_NAMES == 1 1637 const char* _formatString =
1638 "(%s) %s: Already in DRAIN mode";
1640 const char* _formatString =
1641 "%s: Already in DRAIN mode";
1648 this->m_objName.toChar(),
1650 "BA_AlreadyDraining " 1653 this->m_eventOutText_OutputPort[0].invoke(
1671 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1672 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1680 if (this->m_eventOut_OutputPort[0].isConnected()) {
1684 #if FW_AMPCS_COMPATIBLE 1686 _status = _logBuff.
serialize(static_cast<U8>(2));
1689 static_cast<FwAssertArgType>(_status)
1693 #if FW_AMPCS_COMPATIBLE 1696 static_cast<U8>(
sizeof(U32))
1700 static_cast<FwAssertArgType>(_status)
1703 _status = _logBuff.
serialize(numDrained);
1706 static_cast<FwAssertArgType>(_status)
1709 #if FW_AMPCS_COMPATIBLE 1712 static_cast<U8>(
sizeof(U32))
1716 static_cast<FwAssertArgType>(_status)
1719 _status = _logBuff.
serialize(numToDrain);
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: Drain stalling - only drained %" PRIu32
" of %" PRIu32
"";
1740 const char* _formatString =
1741 "%s: Drain stalling - only drained %" PRIu32
" of %" PRIu32
"";
1748 this->m_objName.toChar(),
1755 this->m_eventOutText_OutputPort[0].invoke(
1770 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1771 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1779 if (this->m_eventOut_OutputPort[0].isConnected()) {
1783 #if FW_AMPCS_COMPATIBLE 1785 _status = _logBuff.
serialize(static_cast<U8>(1));
1788 static_cast<FwAssertArgType>(_status)
1792 #if FW_AMPCS_COMPATIBLE 1795 static_cast<U8>(
sizeof(U32))
1799 static_cast<FwAssertArgType>(_status)
1802 _status = _logBuff.
serialize(numDrained);
1805 static_cast<FwAssertArgType>(_status)
1808 this->m_eventOut_OutputPort[0].
invoke(
1817 #if FW_ENABLE_TEXT_LOGGING 1818 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1819 #if FW_OBJECT_NAMES == 1 1820 const char* _formatString =
1821 "(%s) %s: Partial drain of %" PRIu32
" finished";
1823 const char* _formatString =
1824 "%s: Partial drain of %" PRIu32
" finished";
1831 this->m_objName.toChar(),
1833 "BA_PartialDrainDone ",
1837 this->m_eventOutText_OutputPort[0].invoke(
1855 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1856 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1864 if (this->m_eventOut_OutputPort[0].isConnected()) {
1868 #if FW_AMPCS_COMPATIBLE 1870 _status = _logBuff.
serialize(static_cast<U8>(2));
1873 static_cast<FwAssertArgType>(_status)
1877 #if FW_AMPCS_COMPATIBLE 1880 static_cast<U8>(
sizeof(U32))
1884 static_cast<FwAssertArgType>(_status)
1887 _status = _logBuff.
serialize(numWillDrain);
1890 static_cast<FwAssertArgType>(_status)
1893 #if FW_AMPCS_COMPATIBLE 1896 static_cast<U8>(
sizeof(U32))
1900 static_cast<FwAssertArgType>(_status)
1903 _status = _logBuff.
serialize(numReqDrain);
1906 static_cast<FwAssertArgType>(_status)
1909 this->m_eventOut_OutputPort[0].
invoke(
1918 #if FW_ENABLE_TEXT_LOGGING 1919 if (this->m_eventOutText_OutputPort[0].isConnected()) {
1920 #if FW_OBJECT_NAMES == 1 1921 const char* _formatString =
1922 "(%s) %s: Only have %" PRIu32
"; requested drain of %" PRIu32
"";
1924 const char* _formatString =
1925 "%s: Only have %" PRIu32
"; requested drain of %" PRIu32
"";
1932 this->m_objName.toChar(),
1934 "BA_NonBlockDrain ",
1939 this->m_eventOutText_OutputPort[0].invoke(
1959 if (this->m_tlmOut_OutputPort[0].isConnected()) {
1961 this->m_timeCaller_OutputPort[0].isConnected() &&
1964 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
1971 static_cast<FwAssertArgType>(_stat)
1978 this->m_tlmOut_OutputPort[0].
invoke(
1993 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1995 this->m_timeCaller_OutputPort[0].
invoke(_time);
2010 ComponentIpcSerializableBuffer msg;
2020 static_cast<FwAssertArgType>(msgStatus)
2030 static_cast<FwAssertArgType>(deserStatus)
2033 MsgTypeEnum msgType =
static_cast<MsgTypeEnum
>(desMsg);
2035 if (msgType == BUFFERACCUMULATOR_COMPONENT_EXIT) {
2040 deserStatus = msg.deserialize(portNum);
2043 static_cast<FwAssertArgType>(deserStatus)
2048 case BUFFERSENDINFILL_BUFFERSEND: {
2051 deserStatus = msg.deserialize(fwBuffer);
2054 static_cast<FwAssertArgType>(deserStatus)
2066 case BUFFERSENDINRETURN_BUFFERSEND: {
2069 deserStatus = msg.deserialize(fwBuffer);
2072 static_cast<FwAssertArgType>(deserStatus)
2087 deserStatus = msg.deserialize(key);
2090 static_cast<FwAssertArgType>(deserStatus)
2102 case CMD_BA_SETMODE: {
2105 deserStatus = msg.deserialize(opCode);
2108 static_cast<FwAssertArgType>(deserStatus)
2113 deserStatus = msg.deserialize(cmdSeq);
2116 static_cast<FwAssertArgType>(deserStatus)
2121 deserStatus = msg.deserialize(args);
2124 static_cast<FwAssertArgType>(deserStatus)
2134 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2147 #if FW_CMD_CHECK_RESIDUAL 2149 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2167 case CMD_BA_DRAINBUFFERS: {
2170 deserStatus = msg.deserialize(opCode);
2173 static_cast<FwAssertArgType>(deserStatus)
2178 deserStatus = msg.deserialize(cmdSeq);
2181 static_cast<FwAssertArgType>(deserStatus)
2186 deserStatus = msg.deserialize(args);
2189 static_cast<FwAssertArgType>(deserStatus)
2199 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2214 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2227 #if FW_CMD_CHECK_RESIDUAL 2229 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2258 void BufferAccumulatorComponentBase ::
2270 const U32 idBase = callComp->
getIdBase();
2271 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2274 switch (opCode - idBase) {
2276 compPtr->BA_SetMode_cmdHandlerBase(
2285 compPtr->BA_DrainBuffers_cmdHandlerBase(
2299 void BufferAccumulatorComponentBase ::
2300 m_p_bufferSendInFill_in(
2308 compPtr->bufferSendInFill_handlerBase(
2314 void BufferAccumulatorComponentBase ::
2315 m_p_bufferSendInReturn_in(
2323 compPtr->bufferSendInReturn_handlerBase(
2329 void BufferAccumulatorComponentBase ::
2338 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.
NATIVE_UINT_TYPE SizeType
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)
Channel ID for BA_NumQueuedBuffers.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
PlatformSizeType FwSizeType
void invoke(U32 key) const
Invoke a port interface.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
The Buffer Accumulator instance accepted and enqueued a buffer. To avoid uncontrolled sending of even...
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.
PlatformIndexType FwIndexType
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
Drain the commanded number of buffers.
FwIndexType getNum_tlmOut_OutputPorts() const
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.
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.
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)
Not enough buffers to complete requested drain, and NOBLOCK was set; will only drain what we have...
const char * toChar() const
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port interface.
No time base has been established.
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
Ran out of buffers while executing DrainBuffers command.
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
#define PRI_PlatformIntType
bool isConnected_bufferSendOutReturn_OutputPort(FwIndexType portNum)
Command failed to deserialize.
void set_bufferSendOutDrain_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOutDrain[portNum].
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].
PlatformQueuePriorityType FwQueuePriorityType
message to exit active component task
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].
FwIndexType getNum_bufferSendOutDrain_OutputPorts() const
Got DrainBuffers command while executing DrainBuffers command.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Got DrainBuffers command while in DRAIN mode.
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
The Buffer Accumulator instance received a buffer when its queue was full. To avoid uncontrolled send...
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
FwIndexType getNum_bufferSendOutReturn_OutputPorts() const
message sent/received okay
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.
Finished DrainBuffers command.
Message will return with status when space is unavailable.
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
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.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
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.