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()
Cancel the downlink in progress, if any. 
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. 
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()
Status
status returned from the queue send function 
#define FW_LOG_STRING_MAX_SIZE
Max size of log string parameter type. 
The File Downlink component has detected a timeout. Downlink has been canceled. 
The File Downlink component has detected a timeout. Downlink has been canceled. 
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]. 
Read a named file off the disk from a starting position. Divide it into packets and send the packets ...
bool isConnected_bufferSendOut_OutputPort(FwIndexType portNum)
Svc::InputSendFileRequestPort * get_SendFile_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_bufferReturn_InputPorts()
void unLock()
unlock the mutex and assert success 
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)
deserialize 8-bit unsigned int 
void invoke(U32 key) const
Invoke a port interface. 
virtual void unLock()
Unlock the guarded mutex. 
The File Downlink component successfully sent a file. 
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut. 
The File Downlink component has detected a timeout. Downlink has been canceled. 
void init()
Initialization function. 
The File Downlink component canceled downlink of a file. 
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. 
An error occurred reading a file. 
The File Downlink component started a file download. 
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 
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) ...
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left 
void init()
Initialization function. 
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. 
void SendFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
const char * toChar() const
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()
reset deserialization to beginning 
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum]. 
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. 
Channel ID for FilesSent. 
virtual ~FileDownlinkComponentBase()
Destroy FileDownlinkComponentBase object. 
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. 
Channel ID for PacketsSent. 
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)
serialize 8-bit unsigned int 
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer 
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 
message to exit active component task 
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. 
SerializeStatus serializeTo(SerializeBufferBase &buffer, Endianness mode=Endianness::BIG) const override
serialize contents to buffer 
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 
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)
An error occurred opening a file. 
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. 
The File Downlink component generated an error when trying to send a data packet. ...
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. 
Read a named file off the disk. Divide it into packets and send the packets for transmission to the g...
virtual const CHAR * toChar() const =0
void addCallPort(InputCmdResponsePort *callPort)
Register an input port. 
void lock()
lock the mutex and assert success 
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()