9 #if FW_ENABLE_TEXT_LOGGING 20 BUFFERRETURN_BUFFERSEND,
38 class ComponentIpcSerializableBuffer :
48 MAX_DATA_SIZE =
sizeof(BuffUnion),
50 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
54 return sizeof(m_buff);
61 const U8* getBuffAddr()
const {
67 U8 m_buff[SERIALIZATION_SIZE];
91 this->m_cmdIn_InputPort[port].
init();
96 this->m_cmdIn_InputPort[port].
setPortNum(port);
98 #if FW_OBJECT_NAMES == 1 102 this->m_objName.toChar(),
105 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
115 this->m_Run_InputPort[port].
init();
122 #if FW_OBJECT_NAMES == 1 126 this->m_objName.toChar(),
129 this->m_Run_InputPort[port].setObjName(portName.
toChar());
139 this->m_SendFile_InputPort[port].
init();
144 this->m_SendFile_InputPort[port].
setPortNum(port);
146 #if FW_OBJECT_NAMES == 1 150 this->m_objName.toChar(),
153 this->m_SendFile_InputPort[port].setObjName(portName.
toChar());
163 this->m_bufferReturn_InputPort[port].
init();
168 this->m_bufferReturn_InputPort[port].
setPortNum(port);
170 #if FW_OBJECT_NAMES == 1 174 this->m_objName.toChar(),
177 this->m_bufferReturn_InputPort[port].setObjName(portName.
toChar());
187 this->m_pingIn_InputPort[port].
init();
192 this->m_pingIn_InputPort[port].
setPortNum(port);
194 #if FW_OBJECT_NAMES == 1 198 this->m_objName.toChar(),
201 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
211 this->m_cmdRegOut_OutputPort[port].
init();
213 #if FW_OBJECT_NAMES == 1 217 this->m_objName.toChar(),
220 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
230 this->m_cmdResponseOut_OutputPort[port].
init();
232 #if FW_OBJECT_NAMES == 1 236 this->m_objName.toChar(),
239 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
249 this->m_eventOut_OutputPort[port].
init();
251 #if FW_OBJECT_NAMES == 1 255 this->m_objName.toChar(),
258 this->m_eventOut_OutputPort[port].setObjName(portName.
toChar());
262 #if FW_ENABLE_TEXT_LOGGING == 1 266 port < static_cast<FwIndexType>(this->getNum_textEventOut_OutputPorts());
269 this->m_textEventOut_OutputPort[port].
init();
271 #if FW_OBJECT_NAMES == 1 275 this->m_objName.toChar(),
278 this->m_textEventOut_OutputPort[port].setObjName(portName.
toChar());
289 this->m_timeCaller_OutputPort[port].
init();
291 #if FW_OBJECT_NAMES == 1 295 this->m_objName.toChar(),
298 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
308 this->m_tlmOut_OutputPort[port].
init();
310 #if FW_OBJECT_NAMES == 1 314 this->m_objName.toChar(),
317 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
327 this->m_FileComplete_OutputPort[port].
init();
329 #if FW_OBJECT_NAMES == 1 333 this->m_objName.toChar(),
336 this->m_FileComplete_OutputPort[port].setObjName(portName.
toChar());
346 this->m_bufferSendOut_OutputPort[port].
init();
348 #if FW_OBJECT_NAMES == 1 352 this->m_objName.toChar(),
355 this->m_bufferSendOut_OutputPort[port].setObjName(portName.
toChar());
365 this->m_pingOut_OutputPort[port].
init();
367 #if FW_OBJECT_NAMES == 1 371 this->m_objName.toChar(),
374 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
381 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
385 static_cast<FwAssertArgType>(qStat)
398 static_cast<FwAssertArgType>(portNum)
401 return &this->m_cmdIn_InputPort[portNum];
413 static_cast<FwAssertArgType>(portNum)
416 return &this->m_Run_InputPort[portNum];
424 static_cast<FwAssertArgType>(portNum)
427 return &this->m_SendFile_InputPort[portNum];
435 static_cast<FwAssertArgType>(portNum)
438 return &this->m_bufferReturn_InputPort[portNum];
446 static_cast<FwAssertArgType>(portNum)
449 return &this->m_pingIn_InputPort[portNum];
464 static_cast<FwAssertArgType>(portNum)
467 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
478 static_cast<FwAssertArgType>(portNum)
481 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
492 static_cast<FwAssertArgType>(portNum)
495 this->m_eventOut_OutputPort[portNum].
addCallPort(port);
498 #if FW_ENABLE_TEXT_LOGGING == 1 500 void FileDownlinkComponentBase ::
501 set_textEventOut_OutputPort(
507 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
508 static_cast<FwAssertArgType>(portNum)
511 this->m_textEventOut_OutputPort[portNum].addCallPort(port);
524 static_cast<FwAssertArgType>(portNum)
527 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
538 static_cast<FwAssertArgType>(portNum)
541 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
556 static_cast<FwAssertArgType>(portNum)
559 this->m_FileComplete_OutputPort[portNum].
addCallPort(port);
570 static_cast<FwAssertArgType>(portNum)
573 this->m_bufferSendOut_OutputPort[portNum].
addCallPort(port);
584 static_cast<FwAssertArgType>(portNum)
587 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
590 #if FW_PORT_SERIALIZATION 599 Fw::InputSerializePort* port
604 static_cast<FwAssertArgType>(portNum)
607 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
613 Fw::InputSerializePort* port
618 static_cast<FwAssertArgType>(portNum)
621 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
627 Fw::InputSerializePort* port
632 static_cast<FwAssertArgType>(portNum)
635 this->m_eventOut_OutputPort[portNum].registerSerialPort(port);
638 #if FW_ENABLE_TEXT_LOGGING == 1 640 void FileDownlinkComponentBase ::
641 set_textEventOut_OutputPort(
643 Fw::InputSerializePort* port
647 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
648 static_cast<FwAssertArgType>(portNum)
651 this->m_textEventOut_OutputPort[portNum].registerSerialPort(port);
659 Fw::InputSerializePort* port
664 static_cast<FwAssertArgType>(portNum)
667 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
673 Fw::InputSerializePort* port
678 static_cast<FwAssertArgType>(portNum)
681 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
686 #if FW_PORT_SERIALIZATION 695 Fw::InputSerializePort* port
700 static_cast<FwAssertArgType>(portNum)
703 this->m_FileComplete_OutputPort[portNum].registerSerialPort(port);
709 Fw::InputSerializePort* port
714 static_cast<FwAssertArgType>(portNum)
717 this->m_bufferSendOut_OutputPort[portNum].registerSerialPort(port);
723 Fw::InputSerializePort* port
728 static_cast<FwAssertArgType>(portNum)
731 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
743 FW_ASSERT(this->m_cmdRegOut_OutputPort[0].isConnected());
745 this->m_cmdRegOut_OutputPort[0].
invoke(
749 this->m_cmdRegOut_OutputPort[0].
invoke(
753 this->m_cmdRegOut_OutputPort[0].
invoke(
764 Fw::ActiveComponentBase(compName)
784 static_cast<FwAssertArgType>(portNum)
787 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
795 static_cast<FwAssertArgType>(portNum)
798 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
806 static_cast<FwAssertArgType>(portNum)
809 return this->m_eventOut_OutputPort[portNum].
isConnected();
812 #if FW_ENABLE_TEXT_LOGGING == 1 814 bool FileDownlinkComponentBase ::
815 isConnected_textEventOut_OutputPort(
FwIndexType portNum)
818 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
819 static_cast<FwAssertArgType>(portNum)
822 return this->m_textEventOut_OutputPort[portNum].isConnected();
832 static_cast<FwAssertArgType>(portNum)
835 return this->m_timeCaller_OutputPort[portNum].
isConnected();
843 static_cast<FwAssertArgType>(portNum)
846 return this->m_tlmOut_OutputPort[portNum].
isConnected();
858 static_cast<FwAssertArgType>(portNum)
861 return this->m_FileComplete_OutputPort[portNum].
isConnected();
869 static_cast<FwAssertArgType>(portNum)
872 return this->m_bufferSendOut_OutputPort[portNum].
isConnected();
880 static_cast<FwAssertArgType>(portNum)
883 return this->m_pingOut_OutputPort[portNum].
isConnected();
901 static_cast<FwAssertArgType>(portNum)
909 ComponentIpcSerializableBuffer msg;
913 _status = msg.serializeFrom(
914 static_cast<FwEnumStoreType>(RUN_SCHED)
918 static_cast<FwAssertArgType>(_status)
922 _status = msg.serializeFrom(portNum);
925 static_cast<FwAssertArgType>(_status)
929 _status = msg.serializeFrom(context);
932 static_cast<FwAssertArgType>(_status)
941 static_cast<FwAssertArgType>(qStatus)
957 static_cast<FwAssertArgType>(portNum)
989 static_cast<FwAssertArgType>(portNum)
997 ComponentIpcSerializableBuffer msg;
1001 _status = msg.serializeFrom(
1002 static_cast<FwEnumStoreType>(BUFFERRETURN_BUFFERSEND)
1006 static_cast<FwAssertArgType>(_status)
1010 _status = msg.serializeFrom(portNum);
1013 static_cast<FwAssertArgType>(_status)
1017 _status = msg.serializeFrom(fwBuffer);
1020 static_cast<FwAssertArgType>(_status)
1029 static_cast<FwAssertArgType>(qStatus)
1042 static_cast<FwAssertArgType>(portNum)
1050 ComponentIpcSerializableBuffer msg;
1054 _status = msg.serializeFrom(
1055 static_cast<FwEnumStoreType>(PINGIN_PING)
1059 static_cast<FwAssertArgType>(_status)
1063 _status = msg.serializeFrom(portNum);
1066 static_cast<FwAssertArgType>(_status)
1070 _status = msg.serializeFrom(key);
1073 static_cast<FwAssertArgType>(_status)
1082 static_cast<FwAssertArgType>(qStatus)
1133 static_cast<FwAssertArgType>(portNum)
1137 this->m_FileComplete_OutputPort[portNum].isConnected(),
1138 static_cast<FwAssertArgType>(portNum)
1140 this->m_FileComplete_OutputPort[portNum].
invoke(
1153 static_cast<FwAssertArgType>(portNum)
1157 this->m_bufferSendOut_OutputPort[portNum].isConnected(),
1158 static_cast<FwAssertArgType>(portNum)
1160 this->m_bufferSendOut_OutputPort[portNum].
invoke(
1173 static_cast<FwAssertArgType>(portNum)
1177 this->m_pingOut_OutputPort[portNum].isConnected(),
1178 static_cast<FwAssertArgType>(portNum)
1180 this->m_pingOut_OutputPort[portNum].
invoke(
1196 FW_ASSERT(this->m_cmdResponseOut_OutputPort[0].isConnected());
1197 this->m_cmdResponseOut_OutputPort[0].
invoke(opCode, cmdSeq, response);
1218 ComponentIpcSerializableBuffer msg;
1222 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SENDFILE));
1225 static_cast<FwAssertArgType>(_status)
1231 _status = msg.serializeFrom(port);
1234 static_cast<FwAssertArgType>(_status)
1237 _status = msg.serializeFrom(opCode);
1240 static_cast<FwAssertArgType>(_status)
1243 _status = msg.serializeFrom(cmdSeq);
1246 static_cast<FwAssertArgType>(_status)
1249 _status = msg.serializeFrom(args);
1252 static_cast<FwAssertArgType>(_status)
1261 static_cast<FwAssertArgType>(qStatus)
1277 ComponentIpcSerializableBuffer msg;
1281 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CANCEL));
1284 static_cast<FwAssertArgType>(_status)
1290 _status = msg.serializeFrom(port);
1293 static_cast<FwAssertArgType>(_status)
1296 _status = msg.serializeFrom(opCode);
1299 static_cast<FwAssertArgType>(_status)
1302 _status = msg.serializeFrom(cmdSeq);
1305 static_cast<FwAssertArgType>(_status)
1308 _status = msg.serializeFrom(args);
1311 static_cast<FwAssertArgType>(_status)
1320 static_cast<FwAssertArgType>(qStatus)
1336 ComponentIpcSerializableBuffer msg;
1340 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_SENDPARTIAL));
1343 static_cast<FwAssertArgType>(_status)
1349 _status = msg.serializeFrom(port);
1352 static_cast<FwAssertArgType>(_status)
1355 _status = msg.serializeFrom(opCode);
1358 static_cast<FwAssertArgType>(_status)
1361 _status = msg.serializeFrom(cmdSeq);
1364 static_cast<FwAssertArgType>(_status)
1367 _status = msg.serializeFrom(args);
1370 static_cast<FwAssertArgType>(_status)
1379 static_cast<FwAssertArgType>(qStatus)
1433 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1434 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1442 if (this->m_eventOut_OutputPort[0].isConnected()) {
1446 #if FW_AMPCS_COMPATIBLE 1451 static_cast<FwAssertArgType>(_status)
1458 static_cast<FwAssertArgType>(_status)
1461 this->m_eventOut_OutputPort[0].
invoke(
1470 #if FW_ENABLE_TEXT_LOGGING 1471 if (this->m_textEventOut_OutputPort[0].isConnected()) {
1472 #if FW_OBJECT_NAMES == 1 1473 const char* _formatString =
1474 "(%s) %s: Could not open file %s";
1476 const char* _formatString =
1477 "%s: Could not open file %s";
1484 this->m_objName.toChar(),
1490 this->m_textEventOut_OutputPort[0].invoke(
1508 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1509 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1517 if (this->m_eventOut_OutputPort[0].isConnected()) {
1521 #if FW_AMPCS_COMPATIBLE 1526 static_cast<FwAssertArgType>(_status)
1533 static_cast<FwAssertArgType>(_status)
1536 #if FW_AMPCS_COMPATIBLE 1539 static_cast<U8>(
sizeof(I32))
1543 static_cast<FwAssertArgType>(_status)
1549 static_cast<FwAssertArgType>(_status)
1552 this->m_eventOut_OutputPort[0].
invoke(
1561 #if FW_ENABLE_TEXT_LOGGING 1562 if (this->m_textEventOut_OutputPort[0].isConnected()) {
1563 #if FW_OBJECT_NAMES == 1 1564 const char* _formatString =
1565 "(%s) %s: Could not read file %s with status %" PRIi32
"";
1567 const char* _formatString =
1568 "%s: Could not read file %s with status %" PRIi32
"";
1575 this->m_objName.toChar(),
1582 this->m_textEventOut_OutputPort[0].invoke(
1600 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1601 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1609 if (this->m_eventOut_OutputPort[0].isConnected()) {
1613 #if FW_AMPCS_COMPATIBLE 1618 static_cast<FwAssertArgType>(_status)
1625 static_cast<FwAssertArgType>(_status)
1631 static_cast<FwAssertArgType>(_status)
1634 this->m_eventOut_OutputPort[0].
invoke(
1643 #if FW_ENABLE_TEXT_LOGGING 1644 if (this->m_textEventOut_OutputPort[0].isConnected()) {
1645 #if FW_OBJECT_NAMES == 1 1646 const char* _formatString =
1647 "(%s) %s: Sent file %s to file %s";
1649 const char* _formatString =
1650 "%s: Sent file %s to file %s";
1657 this->m_objName.toChar(),
1664 this->m_textEventOut_OutputPort[0].invoke(
1682 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1683 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1691 if (this->m_eventOut_OutputPort[0].isConnected()) {
1695 #if FW_AMPCS_COMPATIBLE 1700 static_cast<FwAssertArgType>(_status)
1707 static_cast<FwAssertArgType>(_status)
1713 static_cast<FwAssertArgType>(_status)
1716 this->m_eventOut_OutputPort[0].
invoke(
1725 #if FW_ENABLE_TEXT_LOGGING 1726 if (this->m_textEventOut_OutputPort[0].isConnected()) {
1727 #if FW_OBJECT_NAMES == 1 1728 const char* _formatString =
1729 "(%s) %s: Canceled downlink of file %s to file %s";
1731 const char* _formatString =
1732 "%s: Canceled downlink of file %s to file %s";
1739 this->m_objName.toChar(),
1741 "DownlinkCanceled ",
1746 this->m_textEventOut_OutputPort[0].invoke(
1764 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1765 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1773 if (this->m_eventOut_OutputPort[0].isConnected()) {
1777 #if FW_AMPCS_COMPATIBLE 1782 static_cast<FwAssertArgType>(_status)
1789 static_cast<FwAssertArgType>(_status)
1795 static_cast<FwAssertArgType>(_status)
1798 this->m_eventOut_OutputPort[0].
invoke(
1807 #if FW_ENABLE_TEXT_LOGGING 1808 if (this->m_textEventOut_OutputPort[0].isConnected()) {
1809 #if FW_OBJECT_NAMES == 1 1810 const char* _formatString =
1811 "(%s) %s: Timeout occurred during downlink of file %s to file %s. Downlink has been canceled.";
1813 const char* _formatString =
1814 "%s: Timeout occurred during downlink of file %s to file %s. Downlink has been canceled.";
1821 this->m_objName.toChar(),
1828 this->m_textEventOut_OutputPort[0].invoke(
1849 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1850 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1858 if (this->m_eventOut_OutputPort[0].isConnected()) {
1862 #if FW_AMPCS_COMPATIBLE 1867 static_cast<FwAssertArgType>(_status)
1871 #if FW_AMPCS_COMPATIBLE 1874 static_cast<U8>(
sizeof(U32))
1878 static_cast<FwAssertArgType>(_status)
1884 static_cast<FwAssertArgType>(_status)
1887 #if FW_AMPCS_COMPATIBLE 1890 static_cast<U8>(
sizeof(U32))
1894 static_cast<FwAssertArgType>(_status)
1900 static_cast<FwAssertArgType>(_status)
1903 #if FW_AMPCS_COMPATIBLE 1906 static_cast<U8>(
sizeof(U32))
1910 static_cast<FwAssertArgType>(_status)
1916 static_cast<FwAssertArgType>(_status)
1922 static_cast<FwAssertArgType>(_status)
1928 static_cast<FwAssertArgType>(_status)
1931 this->m_eventOut_OutputPort[0].
invoke(
1940 #if FW_ENABLE_TEXT_LOGGING 1941 if (this->m_textEventOut_OutputPort[0].isConnected()) {
1942 #if FW_OBJECT_NAMES == 1 1943 const char* _formatString =
1944 "(%s) %s: Offset %" PRIu32
" plus length %" PRIu32
" is greater than source size %" PRIu32
" for partial downlink of file %s to file %s. ";
1946 const char* _formatString =
1947 "%s: Offset %" PRIu32
" plus length %" PRIu32
" is greater than source size %" PRIu32
" for partial downlink of file %s to file %s. ";
1954 this->m_objName.toChar(),
1956 "DownlinkPartialWarning ",
1964 this->m_textEventOut_OutputPort[0].invoke(
1984 if (this->m_timeCaller_OutputPort[0].isConnected()) {
1985 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
1993 if (this->m_eventOut_OutputPort[0].isConnected()) {
1997 #if FW_AMPCS_COMPATIBLE 2002 static_cast<FwAssertArgType>(_status)
2009 static_cast<FwAssertArgType>(_status)
2015 static_cast<FwAssertArgType>(_status)
2018 #if FW_AMPCS_COMPATIBLE 2021 static_cast<U8>(
sizeof(U32))
2025 static_cast<FwAssertArgType>(_status)
2031 static_cast<FwAssertArgType>(_status)
2034 #if FW_AMPCS_COMPATIBLE 2037 static_cast<U8>(
sizeof(U32))
2041 static_cast<FwAssertArgType>(_status)
2047 static_cast<FwAssertArgType>(_status)
2050 this->m_eventOut_OutputPort[0].
invoke(
2059 #if FW_ENABLE_TEXT_LOGGING 2060 if (this->m_textEventOut_OutputPort[0].isConnected()) {
2061 #if FW_OBJECT_NAMES == 1 2062 const char* _formatString =
2063 "(%s) %s: Error occurred during partial downlink of file %s to file %s. Offset %" PRIu32
" greater than or equal to source filesize %" PRIu32
".";
2065 const char* _formatString =
2066 "%s: Error occurred during partial downlink of file %s to file %s. Offset %" PRIu32
" greater than or equal to source filesize %" PRIu32
".";
2073 this->m_objName.toChar(),
2075 "DownlinkPartialFail ",
2082 this->m_textEventOut_OutputPort[0].invoke(
2100 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2101 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2109 if (this->m_eventOut_OutputPort[0].isConnected()) {
2113 #if FW_AMPCS_COMPATIBLE 2118 static_cast<FwAssertArgType>(_status)
2125 static_cast<FwAssertArgType>(_status)
2128 #if FW_AMPCS_COMPATIBLE 2131 static_cast<U8>(
sizeof(U32))
2135 static_cast<FwAssertArgType>(_status)
2141 static_cast<FwAssertArgType>(_status)
2144 this->m_eventOut_OutputPort[0].
invoke(
2153 #if FW_ENABLE_TEXT_LOGGING 2154 if (this->m_textEventOut_OutputPort[0].isConnected()) {
2155 #if FW_OBJECT_NAMES == 1 2156 const char* _formatString =
2157 "(%s) %s: Failed to send data packet from file %s at byte offset %" PRIu32
".";
2159 const char* _formatString =
2160 "%s: Failed to send data packet from file %s at byte offset %" PRIu32
".";
2167 this->m_objName.toChar(),
2174 this->m_textEventOut_OutputPort[0].invoke(
2193 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2194 this->m_timeCaller_OutputPort[0].
invoke(_logTime);
2202 if (this->m_eventOut_OutputPort[0].isConnected()) {
2206 #if FW_AMPCS_COMPATIBLE 2211 static_cast<FwAssertArgType>(_status)
2215 #if FW_AMPCS_COMPATIBLE 2218 static_cast<U8>(
sizeof(U32))
2222 static_cast<FwAssertArgType>(_status)
2228 static_cast<FwAssertArgType>(_status)
2234 static_cast<FwAssertArgType>(_status)
2240 static_cast<FwAssertArgType>(_status)
2243 this->m_eventOut_OutputPort[0].
invoke(
2252 #if FW_ENABLE_TEXT_LOGGING 2253 if (this->m_textEventOut_OutputPort[0].isConnected()) {
2254 #if FW_OBJECT_NAMES == 1 2255 const char* _formatString =
2256 "(%s) %s: Downlink of %" PRIu32
" bytes started from %s to %s";
2258 const char* _formatString =
2259 "%s: Downlink of %" PRIu32
" bytes started from %s to %s";
2266 this->m_objName.toChar(),
2274 this->m_textEventOut_OutputPort[0].invoke(
2294 if (this->m_tlmOut_OutputPort[0].isConnected()) {
2296 this->m_timeCaller_OutputPort[0].isConnected() &&
2299 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
2306 static_cast<FwAssertArgType>(_stat)
2313 this->m_tlmOut_OutputPort[0].
invoke(
2327 if (this->m_tlmOut_OutputPort[0].isConnected()) {
2329 this->m_timeCaller_OutputPort[0].isConnected() &&
2332 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
2339 static_cast<FwAssertArgType>(_stat)
2346 this->m_tlmOut_OutputPort[0].
invoke(
2360 if (this->m_tlmOut_OutputPort[0].isConnected()) {
2362 this->m_timeCaller_OutputPort[0].isConnected() &&
2365 this->m_timeCaller_OutputPort[0].
invoke(_tlmTime);
2372 static_cast<FwAssertArgType>(_stat)
2379 this->m_tlmOut_OutputPort[0].
invoke(
2394 if (this->m_timeCaller_OutputPort[0].isConnected()) {
2396 this->m_timeCaller_OutputPort[0].
invoke(_time);
2414 this->m_guardedPortMutex.
lock();
2420 this->m_guardedPortMutex.
unLock();
2430 ComponentIpcSerializableBuffer _msg;
2440 static_cast<FwAssertArgType>(_msgStatus)
2450 static_cast<FwAssertArgType>(_deserStatus)
2453 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2455 if (_msgType == FILEDOWNLINK_COMPONENT_EXIT) {
2460 _deserStatus = _msg.deserializeTo(portNum);
2463 static_cast<FwAssertArgType>(_deserStatus)
2471 _deserStatus = _msg.deserializeTo(context);
2474 static_cast<FwAssertArgType>(_deserStatus)
2486 case BUFFERRETURN_BUFFERSEND: {
2489 _deserStatus = _msg.deserializeTo(fwBuffer);
2492 static_cast<FwAssertArgType>(_deserStatus)
2507 _deserStatus = _msg.deserializeTo(key);
2510 static_cast<FwAssertArgType>(_deserStatus)
2522 case CMD_SENDFILE: {
2525 _deserStatus = _msg.deserializeTo(_opCode);
2528 static_cast<FwAssertArgType>(_deserStatus)
2533 _deserStatus = _msg.deserializeTo(_cmdSeq);
2536 static_cast<FwAssertArgType>(_deserStatus)
2541 _deserStatus = _msg.deserializeTo(args);
2544 static_cast<FwAssertArgType>(_deserStatus)
2554 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2569 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2582 #if FW_CMD_CHECK_RESIDUAL 2584 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2606 _deserStatus = _msg.deserializeTo(_opCode);
2609 static_cast<FwAssertArgType>(_deserStatus)
2614 _deserStatus = _msg.deserializeTo(_cmdSeq);
2617 static_cast<FwAssertArgType>(_deserStatus)
2622 _deserStatus = _msg.deserializeTo(args);
2625 static_cast<FwAssertArgType>(_deserStatus)
2633 #if FW_CMD_CHECK_RESIDUAL 2635 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2650 case CMD_SENDPARTIAL: {
2653 _deserStatus = _msg.deserializeTo(_opCode);
2656 static_cast<FwAssertArgType>(_deserStatus)
2661 _deserStatus = _msg.deserializeTo(_cmdSeq);
2664 static_cast<FwAssertArgType>(_deserStatus)
2669 _deserStatus = _msg.deserializeTo(args);
2672 static_cast<FwAssertArgType>(_deserStatus)
2682 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2697 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2712 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2727 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2740 #if FW_CMD_CHECK_RESIDUAL 2742 if (this->m_cmdResponseOut_OutputPort[0].isConnected()) {
2773 void FileDownlinkComponentBase ::
2785 const U32 idBase = callComp->
getIdBase();
2786 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
2789 switch (opCode - idBase) {
2791 compPtr->SendFile_cmdHandlerBase(
2800 compPtr->Cancel_cmdHandlerBase(
2809 compPtr->SendPartial_cmdHandlerBase(
2823 void FileDownlinkComponentBase ::
2832 compPtr->Run_handlerBase(
2850 return compPtr->SendFile_handlerBase(
2859 void FileDownlinkComponentBase ::
2860 m_p_bufferReturn_in(
2868 compPtr->bufferReturn_handlerBase(
2874 void FileDownlinkComponentBase ::
2883 compPtr->pingIn_handlerBase(
Serialization/Deserialization operation was successful.
void addCallPort(InputTimePort *callPort)
Register an input port.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
Read a named file off the disk. Divide it into packets and send the packets for transmission to the g...
An error occurred opening a file.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
void Cancel_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
static constexpr FwIndexType getNum_SendFile_InputPorts()
void regCommands()
Register commands with the Command Dispatcher.
FwIdType FwOpcodeType
The type of a command opcode.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
The File Downlink component generated an error when trying to send a data packet. ...
FwIdType getIdBase() const
PlatformSizeType FwSizeType
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
static constexpr FwIndexType getNum_FileComplete_OutputPorts()
The File Downlink component successfully sent a file.
Status
status returned from the queue send function
void tlmWrite_PacketsSent(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
bool isConnected_bufferSendOut_OutputPort(FwIndexType portNum)
The File Downlink component has detected a timeout. Downlink has been canceled.
Svc::InputSendFileRequestPort * get_SendFile_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_bufferReturn_InputPorts()
void unLock()
unlock the mutex and assert success
void invoke(U32 key) const
Invoke a port interface.
virtual void unLock()
Unlock the guarded mutex.
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
void init()
Initialization function.
Enum representing a command response.
No time base has been established (Required)
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
virtual void SendPartial_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SendPartial.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
Os::Queue m_queue
queue object for active component
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Object initializer.
void log_ACTIVITY_HI_DownlinkCanceled(const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName) const
void log_WARNING_HI_DownlinkTimeout(const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName) const
SerializeStatus
forward declaration for string
Channel ID for PacketsSent.
Message will block until space is available.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void bufferReturn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferReturn.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
FwIdType FwEventIdType
The type of an event identifier.
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
void invoke(FwOpcodeType opCode) const
Invoke a port interface.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
The File Downlink component started a file download.
void log_WARNING_HI_FileOpenError(const Fw::StringBase &fileName) const
void log_WARNING_LO_DownlinkPartialWarning(U32 startOffset, U32 length, U32 filesize, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName) const
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
virtual void Cancel_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
#define FW_MIN(a, b)
MIN macro.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
A less serious but recoverable event.
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port interface.
virtual void Cancel_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command Cancel.
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
void init()
Initialization function.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
void invoke(Fw::Time &time) const
Invoke a port interface.
virtual void Run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port Run.
An error occurred reading a file.
void SendFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
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_eventOut_OutputPort(FwIndexType portNum)
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() override
Reset deserialization pointer to beginning of buffer.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
Read a named file off the disk from a starting position. Divide it into packets and send the packets ...
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void bufferSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferSendOut.
A serious but recoverable event.
Errors dispatching messages.
virtual ~FileDownlinkComponentBase()
Destroy FileDownlinkComponentBase object.
The File Downlink component has detected a timeout. Downlink has been canceled.
static constexpr FwIndexType getNum_bufferSendOut_OutputPorts()
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port interface.
The File Downlink component has detected a timeout. Downlink has been canceled.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Channel ID for FilesSent.
void init()
Initialization function.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
uint8_t U8
8-bit unsigned integer
void log_ACTIVITY_HI_FileSent(const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName) const
void init()
Initialization function.
Command failed to deserialize.
Svc::SendFileResponse SendFile_handlerBase(FwIndexType portNum, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 offset, U32 length)
Handler base-class function for input port SendFile.
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
virtual void lock()
Lock the guarded mutex.
Important informational events.
void tlmWrite_Warnings(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void init()
Initialization function.
void log_WARNING_HI_SendDataFail(const Fw::StringBase &sourceFileName, U32 byteOffset) const
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port interface.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
void log_WARNING_HI_FileReadError(const Fw::StringBase &fileName, I32 status) const
void set_bufferSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOut[portNum].
Fw::InputBufferSendPort * get_bufferReturn_InputPort(FwIndexType portNum)
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
A message was sent requesting an exit of the loop.
PlatformIndexType FwIndexType
FileDownlinkComponentBase(const char *compName="")
Construct FileDownlinkComponentBase object.
virtual void SendFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SendFile.
static constexpr FwIndexType getNum_Run_InputPorts()
virtual Svc::SendFileResponse SendFile_handler(FwIndexType portNum, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 offset, U32 length)=0
Handler for input port SendFile.
Send file response struct.
void addCallPort(InputLogPort *callPort)
Register an input port.
static constexpr FwIndexType getNum_pingIn_InputPorts()
void init()
Initialization function.
virtual void SendFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &sourceFileName, const Fw::CmdStringArg &destFileName)=0
RateGroupDivider component implementation.
virtual void SendPartial_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &sourceFileName, const Fw::CmdStringArg &destFileName, U32 startOffset, U32 length)=0
message sent/received okay
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
void tlmWrite_FilesSent(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void bufferReturn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferReturn.
void invoke(const Svc::SendFileResponse &resp) const
Invoke a port interface.
void SendPartial_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_FileComplete_OutputPort(FwIndexType portNum)
Message will return with status when space is unavailable.
void set_FileComplete_OutputPort(FwIndexType portNum, Svc::InputSendFileCompletePort *port)
Connect port to FileComplete[portNum].
Implementation of malloc based allocator.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
void log_ACTIVITY_HI_SendStarted(U32 fileSize, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName) const
void log_WARNING_HI_DownlinkPartialFail(const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 startOffset, U32 filesize) const
void Run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port Run.
void init()
Initialization function.
virtual void bufferReturn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferReturn.
virtual void Run_handler(FwIndexType portNum, U32 context)=0
Handler for input port Run.
void FileComplete_out(FwIndexType portNum, const Svc::SendFileResponse &resp)
Invoke output port FileComplete.
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
void addCallPort(InputSendFileCompletePort *callPort)
Register an input port.
Cancel the downlink in progress, if any.
The File Downlink component canceled downlink of a file.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void lock()
lock the mutex and assert success
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()