9 #if FW_ENABLE_TEXT_LOGGING 19 BUFFERSENDIN_BUFFERSEND,
32 class ComponentIpcSerializableBuffer :
42 MAX_DATA_SIZE =
sizeof(BuffUnion),
44 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
47 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
53 U8 m_buff[SERIALIZATION_SIZE];
71 #if !FW_DIRECT_PORT_CALLS 78 this->m_bufferSendIn_InputPort[port].
init();
83 this->m_bufferSendIn_InputPort[port].
setPortNum(port);
85 #if FW_OBJECT_NAMES == 1 89 this->m_objName.toChar(),
92 this->m_bufferSendIn_InputPort[port].setObjName(portName.
toChar());
97 #if !FW_DIRECT_PORT_CALLS 104 this->m_pingIn_InputPort[port].
init();
109 this->m_pingIn_InputPort[port].
setPortNum(port);
111 #if FW_OBJECT_NAMES == 1 115 this->m_objName.toChar(),
118 this->m_pingIn_InputPort[port].setObjName(portName.
toChar());
123 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 127 port < static_cast<FwIndexType>(this->getNum_LogText_OutputPorts());
130 this->m_LogText_OutputPort[port].
init();
132 #if FW_OBJECT_NAMES == 1 136 this->m_objName.toChar(),
139 this->m_LogText_OutputPort[port].setObjName(portName.
toChar());
144 #if !FW_DIRECT_PORT_CALLS 151 this->m_eventOut_OutputPort[port].
init();
153 #if FW_OBJECT_NAMES == 1 157 this->m_objName.toChar(),
160 this->m_eventOut_OutputPort[port].setObjName(portName.
toChar());
165 #if !FW_DIRECT_PORT_CALLS 172 this->m_timeCaller_OutputPort[port].
init();
174 #if FW_OBJECT_NAMES == 1 178 this->m_objName.toChar(),
181 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
186 #if !FW_DIRECT_PORT_CALLS 193 this->m_tlmOut_OutputPort[port].
init();
195 #if FW_OBJECT_NAMES == 1 199 this->m_objName.toChar(),
202 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
207 #if !FW_DIRECT_PORT_CALLS 214 this->m_bufferSendOut_OutputPort[port].
init();
216 #if FW_OBJECT_NAMES == 1 220 this->m_objName.toChar(),
223 this->m_bufferSendOut_OutputPort[port].setObjName(portName.
toChar());
228 #if !FW_DIRECT_PORT_CALLS 235 this->m_fileAnnounce_OutputPort[port].
init();
237 #if FW_OBJECT_NAMES == 1 241 this->m_objName.toChar(),
244 this->m_fileAnnounce_OutputPort[port].setObjName(portName.
toChar());
249 #if !FW_DIRECT_PORT_CALLS 256 this->m_pingOut_OutputPort[port].
init();
258 #if FW_OBJECT_NAMES == 1 262 this->m_objName.toChar(),
265 this->m_pingOut_OutputPort[port].setObjName(portName.
toChar());
273 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
277 static_cast<FwAssertArgType>(qStat)
281 #if !FW_DIRECT_PORT_CALLS 292 static_cast<FwAssertArgType>(portNum)
295 return &this->m_bufferSendIn_InputPort[portNum];
303 static_cast<FwAssertArgType>(portNum)
306 return &this->m_pingIn_InputPort[portNum];
311 #if !FW_DIRECT_PORT_CALLS 317 #if FW_ENABLE_TEXT_LOGGING == 1 319 void FileUplinkComponentBase ::
320 set_LogText_OutputPort(
326 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
327 static_cast<FwAssertArgType>(portNum)
330 this->m_LogText_OutputPort[portNum].addCallPort(port);
343 static_cast<FwAssertArgType>(portNum)
346 this->m_eventOut_OutputPort[portNum].
addCallPort(port);
357 static_cast<FwAssertArgType>(portNum)
360 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
371 static_cast<FwAssertArgType>(portNum)
374 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
379 #if !FW_DIRECT_PORT_CALLS 393 static_cast<FwAssertArgType>(portNum)
396 this->m_bufferSendOut_OutputPort[portNum].
addCallPort(port);
407 static_cast<FwAssertArgType>(portNum)
410 this->m_fileAnnounce_OutputPort[portNum].
addCallPort(port);
421 static_cast<FwAssertArgType>(portNum)
424 this->m_pingOut_OutputPort[portNum].
addCallPort(port);
429 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 435 #if FW_ENABLE_TEXT_LOGGING == 1 437 void FileUplinkComponentBase ::
438 set_LogText_OutputPort(
440 Fw::InputSerializePort* port
444 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
445 static_cast<FwAssertArgType>(portNum)
448 this->m_LogText_OutputPort[portNum].registerSerialPort(port);
456 Fw::InputSerializePort* port
461 static_cast<FwAssertArgType>(portNum)
464 this->m_eventOut_OutputPort[portNum].registerSerialPort(port);
470 Fw::InputSerializePort* port
475 static_cast<FwAssertArgType>(portNum)
478 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
484 Fw::InputSerializePort* port
489 static_cast<FwAssertArgType>(portNum)
492 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
497 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 506 Fw::InputSerializePort* port
511 static_cast<FwAssertArgType>(portNum)
514 this->m_bufferSendOut_OutputPort[portNum].registerSerialPort(port);
520 Fw::InputSerializePort* port
525 static_cast<FwAssertArgType>(portNum)
528 this->m_fileAnnounce_OutputPort[portNum].registerSerialPort(port);
534 Fw::InputSerializePort* port
539 static_cast<FwAssertArgType>(portNum)
542 this->m_pingOut_OutputPort[portNum].registerSerialPort(port);
553 Fw::ActiveComponentBase(compName)
555 this->m_FileWriteErrorThrottle = 0;
556 this->m_InvalidReceiveModeThrottle = 0;
557 this->m_PacketOutOfBoundsThrottle = 0;
558 this->m_PacketOutOfOrderThrottle = 0;
559 this->m_PacketDuplicateThrottle = 0;
568 #if !FW_DIRECT_PORT_CALLS 574 #if FW_ENABLE_TEXT_LOGGING == 1 576 bool FileUplinkComponentBase ::
577 isConnected_LogText_OutputPort(
FwIndexType portNum)
const 580 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
581 static_cast<FwAssertArgType>(portNum)
584 return this->m_LogText_OutputPort[portNum].isConnected();
594 static_cast<FwAssertArgType>(portNum)
597 return this->m_eventOut_OutputPort[portNum].
isConnected();
605 static_cast<FwAssertArgType>(portNum)
608 return this->m_timeCaller_OutputPort[portNum].
isConnected();
616 static_cast<FwAssertArgType>(portNum)
619 return this->m_tlmOut_OutputPort[portNum].
isConnected();
624 #if !FW_DIRECT_PORT_CALLS 635 static_cast<FwAssertArgType>(portNum)
638 return this->m_bufferSendOut_OutputPort[portNum].
isConnected();
646 static_cast<FwAssertArgType>(portNum)
649 return this->m_fileAnnounce_OutputPort[portNum].
isConnected();
657 static_cast<FwAssertArgType>(portNum)
660 return this->m_pingOut_OutputPort[portNum].
isConnected();
680 static_cast<FwAssertArgType>(portNum)
688 ComponentIpcSerializableBuffer msg;
692 _status = msg.serializeFrom(
693 static_cast<FwEnumStoreType>(BUFFERSENDIN_BUFFERSEND)
697 static_cast<FwAssertArgType>(_status)
701 _status = msg.serializeFrom(portNum);
704 static_cast<FwAssertArgType>(_status)
708 _status = msg.serializeFrom(fwBuffer);
711 static_cast<FwAssertArgType>(_status)
720 static_cast<FwAssertArgType>(qStatus)
733 static_cast<FwAssertArgType>(portNum)
741 ComponentIpcSerializableBuffer msg;
745 _status = msg.serializeFrom(
746 static_cast<FwEnumStoreType>(PINGIN_PING)
750 static_cast<FwAssertArgType>(_status)
754 _status = msg.serializeFrom(portNum);
757 static_cast<FwAssertArgType>(_status)
761 _status = msg.serializeFrom(key);
764 static_cast<FwAssertArgType>(_status)
771 if (qStatus == Os::Queue::Status::FULL) {
778 static_cast<FwAssertArgType>(qStatus)
808 #if !FW_DIRECT_PORT_CALLS 822 static_cast<FwAssertArgType>(portNum)
826 this->m_bufferSendOut_OutputPort[portNum].isConnected(),
827 static_cast<FwAssertArgType>(portNum)
829 this->m_bufferSendOut_OutputPort[portNum].
invoke(
842 static_cast<FwAssertArgType>(portNum)
846 this->m_fileAnnounce_OutputPort[portNum].isConnected(),
847 static_cast<FwAssertArgType>(portNum)
849 this->m_fileAnnounce_OutputPort[portNum].
invoke(
862 static_cast<FwAssertArgType>(portNum)
866 this->m_pingOut_OutputPort[portNum].isConnected(),
867 static_cast<FwAssertArgType>(portNum)
869 this->m_pingOut_OutputPort[portNum].
invoke(
890 this->timeCaller_out(0, _logTime);
900 #if FW_AMPCS_COMPATIBLE 905 static_cast<FwAssertArgType>(_status)
915 static_cast<FwAssertArgType>(_status)
918 #if FW_AMPCS_COMPATIBLE 921 static_cast<U8>(
sizeof(U32))
925 static_cast<FwAssertArgType>(_status)
931 static_cast<FwAssertArgType>(_status)
934 #if FW_AMPCS_COMPATIBLE 937 static_cast<U8>(
sizeof(U32))
941 static_cast<FwAssertArgType>(_status)
947 static_cast<FwAssertArgType>(_status)
960 #if FW_ENABLE_TEXT_LOGGING 961 if (this->isConnected_LogText_OutputPort(0)) {
962 #if FW_OBJECT_NAMES == 1 963 const char* _formatString =
964 "(%s) %s: Bad checksum value during receipt of file %s: computed 0x%" PRIx32
", read 0x%" PRIx32
"";
966 const char* _formatString =
967 "%s: Bad checksum value during receipt of file %s: computed 0x%" PRIx32
", read 0x%" PRIx32
"";
974 this->m_objName.toChar(),
999 this->timeCaller_out(0, _logTime);
1009 #if FW_AMPCS_COMPATIBLE 1014 static_cast<FwAssertArgType>(_status)
1024 static_cast<FwAssertArgType>(_status)
1037 #if FW_ENABLE_TEXT_LOGGING 1038 if (this->isConnected_LogText_OutputPort(0)) {
1039 #if FW_OBJECT_NAMES == 1 1040 const char* _formatString =
1041 "(%s) %s: Could not open file %s";
1043 const char* _formatString =
1044 "%s: Could not open file %s";
1048 (void) _logString.
format(
1051 this->m_objName.toChar(),
1074 this->timeCaller_out(0, _logTime);
1084 #if FW_AMPCS_COMPATIBLE 1089 static_cast<FwAssertArgType>(_status)
1099 static_cast<FwAssertArgType>(_status)
1112 #if FW_ENABLE_TEXT_LOGGING 1113 if (this->isConnected_LogText_OutputPort(0)) {
1114 #if FW_OBJECT_NAMES == 1 1115 const char* _formatString =
1116 "(%s) %s: Received file %s";
1118 const char* _formatString =
1119 "%s: Received file %s";
1123 (void) _logString.
format(
1126 this->m_objName.toChar(),
1151 this->m_FileWriteErrorThrottle++;
1157 this->timeCaller_out(0, _logTime);
1167 #if FW_AMPCS_COMPATIBLE 1172 static_cast<FwAssertArgType>(_status)
1182 static_cast<FwAssertArgType>(_status)
1195 #if FW_ENABLE_TEXT_LOGGING 1196 if (this->isConnected_LogText_OutputPort(0)) {
1197 #if FW_OBJECT_NAMES == 1 1198 const char* _formatString =
1199 "(%s) %s: Could not write to file %s";
1201 const char* _formatString =
1202 "%s: Could not write to file %s";
1206 (void) _logString.
format(
1209 this->m_objName.toChar(),
1237 this->m_InvalidReceiveModeThrottle++;
1243 this->timeCaller_out(0, _logTime);
1253 #if FW_AMPCS_COMPATIBLE 1258 static_cast<FwAssertArgType>(_status)
1262 #if FW_AMPCS_COMPATIBLE 1269 static_cast<FwAssertArgType>(_status)
1275 static_cast<FwAssertArgType>(_status)
1278 #if FW_AMPCS_COMPATIBLE 1281 static_cast<U8>(
sizeof(U32))
1285 static_cast<FwAssertArgType>(_status)
1291 static_cast<FwAssertArgType>(_status)
1304 #if FW_ENABLE_TEXT_LOGGING 1305 if (this->isConnected_LogText_OutputPort(0)) {
1306 #if FW_OBJECT_NAMES == 1 1307 const char* _formatString =
1308 "(%s) %s: Packet type %" PRIu16
" received in mode %" PRIu32
"";
1310 const char* _formatString =
1311 "%s: Packet type %" PRIu16
" received in mode %" PRIu32
"";
1315 (void) _logString.
format(
1318 this->m_objName.toChar(),
1320 "InvalidReceiveMode ",
1347 this->m_PacketOutOfBoundsThrottle++;
1353 this->timeCaller_out(0, _logTime);
1363 #if FW_AMPCS_COMPATIBLE 1368 static_cast<FwAssertArgType>(_status)
1372 #if FW_AMPCS_COMPATIBLE 1375 static_cast<U8>(
sizeof(U32))
1379 static_cast<FwAssertArgType>(_status)
1385 static_cast<FwAssertArgType>(_status)
1394 static_cast<FwAssertArgType>(_status)
1407 #if FW_ENABLE_TEXT_LOGGING 1408 if (this->isConnected_LogText_OutputPort(0)) {
1409 #if FW_OBJECT_NAMES == 1 1410 const char* _formatString =
1411 "(%s) %s: Packet %" PRIu32
" out of bounds for file %s";
1413 const char* _formatString =
1414 "%s: Packet %" PRIu32
" out of bounds for file %s";
1418 (void) _logString.
format(
1421 this->m_objName.toChar(),
1423 "PacketOutOfBounds ",
1450 this->m_PacketOutOfOrderThrottle++;
1456 this->timeCaller_out(0, _logTime);
1466 #if FW_AMPCS_COMPATIBLE 1471 static_cast<FwAssertArgType>(_status)
1475 #if FW_AMPCS_COMPATIBLE 1478 static_cast<U8>(
sizeof(U32))
1482 static_cast<FwAssertArgType>(_status)
1488 static_cast<FwAssertArgType>(_status)
1491 #if FW_AMPCS_COMPATIBLE 1494 static_cast<U8>(
sizeof(U32))
1498 static_cast<FwAssertArgType>(_status)
1504 static_cast<FwAssertArgType>(_status)
1517 #if FW_ENABLE_TEXT_LOGGING 1518 if (this->isConnected_LogText_OutputPort(0)) {
1519 #if FW_OBJECT_NAMES == 1 1520 const char* _formatString =
1521 "(%s) %s: Received packet %" PRIu32
" after packet %" PRIu32
"";
1523 const char* _formatString =
1524 "%s: Received packet %" PRIu32
" after packet %" PRIu32
"";
1528 (void) _logString.
format(
1531 this->m_objName.toChar(),
1533 "PacketOutOfOrder ",
1557 this->m_PacketDuplicateThrottle++;
1563 this->timeCaller_out(0, _logTime);
1573 #if FW_AMPCS_COMPATIBLE 1578 static_cast<FwAssertArgType>(_status)
1582 #if FW_AMPCS_COMPATIBLE 1585 static_cast<U8>(
sizeof(U32))
1589 static_cast<FwAssertArgType>(_status)
1595 static_cast<FwAssertArgType>(_status)
1608 #if FW_ENABLE_TEXT_LOGGING 1609 if (this->isConnected_LogText_OutputPort(0)) {
1610 #if FW_OBJECT_NAMES == 1 1611 const char* _formatString =
1612 "(%s) %s: Received a duplicate of packet %" PRIu32
"";
1614 const char* _formatString =
1615 "%s: Received a duplicate of packet %" PRIu32
"";
1619 (void) _logString.
format(
1622 this->m_objName.toChar(),
1645 this->timeCaller_out(0, _logTime);
1654 #if FW_AMPCS_COMPATIBLE 1660 static_cast<FwAssertArgType>(_status)
1674 #if FW_ENABLE_TEXT_LOGGING 1675 if (this->isConnected_LogText_OutputPort(0)) {
1676 #if FW_OBJECT_NAMES == 1 1677 const char* _formatString =
1678 "(%s) %s: Received CANCEL packet";
1680 const char* _formatString =
1681 "%s: Received CANCEL packet";
1685 (void) _logString.
format(
1688 this->m_objName.toChar(),
1710 this->timeCaller_out(0, _logTime);
1720 #if FW_AMPCS_COMPATIBLE 1725 static_cast<FwAssertArgType>(_status)
1729 #if FW_AMPCS_COMPATIBLE 1732 static_cast<U8>(
sizeof(I32))
1736 static_cast<FwAssertArgType>(_status)
1742 static_cast<FwAssertArgType>(_status)
1755 #if FW_ENABLE_TEXT_LOGGING 1756 if (this->isConnected_LogText_OutputPort(0)) {
1757 #if FW_OBJECT_NAMES == 1 1758 const char* _formatString =
1759 "(%s) %s: Unable to decode file packet. Status: %" PRIi32
"";
1761 const char* _formatString =
1762 "%s: Unable to decode file packet. Status: %" PRIi32
"";
1766 (void) _logString.
format(
1769 this->m_objName.toChar(),
1792 this->timeCaller_out(0, _logTime);
1802 #if FW_AMPCS_COMPATIBLE 1807 static_cast<FwAssertArgType>(_status)
1811 #if FW_AMPCS_COMPATIBLE 1818 static_cast<FwAssertArgType>(_status)
1824 static_cast<FwAssertArgType>(_status)
1837 #if FW_ENABLE_TEXT_LOGGING 1838 if (this->isConnected_LogText_OutputPort(0)) {
1839 #if FW_OBJECT_NAMES == 1 1840 const char* _formatString =
1841 "(%s) %s: Invalid packet received. Wrong packet type: %" PRIu16
"";
1843 const char* _formatString =
1844 "%s: Invalid packet received. Wrong packet type: %" PRIu16
"";
1848 (void) _logString.
format(
1851 this->m_objName.toChar(),
1853 "InvalidPacketReceived ",
1876 this->m_FileWriteErrorThrottle = 0;
1883 this->m_InvalidReceiveModeThrottle = 0;
1890 this->m_PacketOutOfBoundsThrottle = 0;
1897 this->m_PacketOutOfOrderThrottle = 0;
1904 this->m_PacketDuplicateThrottle = 0;
1923 this->timeCaller_out(0, _tlmTime);
1953 static_cast<FwAssertArgType>(_stat)
1975 static_cast<FwAssertArgType>(_stat)
1997 static_cast<FwAssertArgType>(_stat)
2019 static_cast<FwAssertArgType>(_stat)
2039 this->timeCaller_out(0, _time);
2054 ComponentIpcSerializableBuffer _msg;
2064 static_cast<FwAssertArgType>(_msgStatus)
2074 static_cast<FwAssertArgType>(_deserStatus)
2077 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
2079 if (_msgType == FILEUPLINK_COMPONENT_EXIT) {
2084 _deserStatus = _msg.deserializeTo(portNum);
2087 static_cast<FwAssertArgType>(_deserStatus)
2092 case BUFFERSENDIN_BUFFERSEND: {
2095 _deserStatus = _msg.deserializeTo(fwBuffer);
2098 static_cast<FwAssertArgType>(_deserStatus)
2113 _deserStatus = _msg.deserializeTo(key);
2116 static_cast<FwAssertArgType>(_deserStatus)
2138 void FileUplinkComponentBase ::
2139 m_p_bufferSendIn_in(
2147 compPtr->bufferSendIn_handlerBase(
2153 void FileUplinkComponentBase ::
2162 compPtr->pingIn_handlerBase(
2168 #if !FW_DIRECT_PORT_CALLS 2174 #if FW_ENABLE_TEXT_LOGGING 2176 void FileUplinkComponentBase ::
2186 (0 <= portNum) && (portNum < this->getNum_LogText_OutputPorts()),
2187 static_cast<FwAssertArgType>(portNum)
2191 this->m_LogText_OutputPort[portNum].isConnected(),
2192 static_cast<FwAssertArgType>(portNum)
2194 this->m_LogText_OutputPort[portNum].invoke(
2204 void FileUplinkComponentBase ::
2215 static_cast<FwAssertArgType>(portNum)
2219 this->m_eventOut_OutputPort[portNum].isConnected(),
2220 static_cast<FwAssertArgType>(portNum)
2222 this->m_eventOut_OutputPort[portNum].
invoke(
2230 void FileUplinkComponentBase ::
2238 static_cast<FwAssertArgType>(portNum)
2242 this->m_timeCaller_OutputPort[portNum].isConnected(),
2243 static_cast<FwAssertArgType>(portNum)
2245 this->m_timeCaller_OutputPort[portNum].
invoke(
2250 void FileUplinkComponentBase ::
2260 static_cast<FwAssertArgType>(portNum)
2264 this->m_tlmOut_OutputPort[portNum].isConnected(),
2265 static_cast<FwAssertArgType>(portNum)
2267 this->m_tlmOut_OutputPort[portNum].
invoke(
The File Uplink component encountered an out-of-order packet during file receipt. ...
Serialization/Deserialization operation was successful.
void tlmWrite_FilesReceived(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
void addCallPort(InputTimePort *callPort)
Register an input port.
U16 FwPacketDescriptorType
The width of packet descriptors when they are serialized by the framework.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
void set_bufferSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOut[portNum].
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
void log_ACTIVITY_HI_UplinkCanceled() const
Status
status returned from the queue send function
void log_WARNING_HI_BadChecksum(const Fw::StringBase &fileName, U32 computed, U32 read) const
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
void bufferSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferSendOut.
static constexpr FwIndexType getNum_bufferSendOut_OutputPorts()
BYTE pingInPortSize[Svc::PingPortBuffer::CAPACITY]
During receipt of a file, the File Uplink component encountered a packet with offset and size out of ...
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
void log_WARNING_HI_InvalidReceiveMode_ThrottleClear()
Reset throttle value for InvalidReceiveMode.
static constexpr FwSizeType CAPACITY
An error occurred opening a file.
static constexpr FwIndexType getNum_pingIn_InputPorts()
void invoke(U32 key) const
Invoke a port connection.
virtual const CHAR * toChar() const =0
Convert to a C-style char*.
void init()
Initialization function.
No time base has been established (Required)
void addCallPort(InputFileAnnouncePort *callPort)
Register an input port.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
virtual void bufferSendIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendIn.
Throttle reset count for PacketOutOfOrder.
Os::Queue m_queue
queue object for active component
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Object initializer.
void log_WARNING_HI_DecodeError(I32 status) const
An error occurred writing to a file.
SerializeStatus
forward declaration for string
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
Message will block until space is available.
void log_WARNING_HI_PacketDuplicate(U32 packetIndex)
The File Uplink component received a packet with a type that was invalid for the current receive mode...
FwIdType FwEventIdType
The type of an event identifier.
Error decoding file packet.
static constexpr FwIndexType getNum_fileAnnounce_OutputPorts()
void log_ACTIVITY_HI_FileReceived(const Fw::StringBase &fileName) const
static constexpr FwIndexType getNum_bufferSendIn_InputPorts()
void log_WARNING_HI_PacketOutOfOrder_ThrottleClear()
Reset throttle value for PacketOutOfOrder.
static constexpr FwSizeType CAPACITY
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void log_WARNING_HI_InvalidReceiveMode(FwPacketDescriptorType packetType, U32 mode)
void log_WARNING_HI_PacketOutOfBounds(U32 packetIndex, const Fw::StringBase &fileName)
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
void tlmWrite_FilesReceivedFailed(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
Fw::InputBufferSendPort * get_bufferSendIn_InputPort(FwIndexType portNum)
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
static constexpr FwIndexType getNum_eventOut_OutputPorts()
void log_WARNING_HI_PacketDuplicate_ThrottleClear()
Reset throttle value for PacketDuplicate.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
#define FW_MIN(a, b)
MIN macro (deprecated in C++, use std::min)
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port connection.
void bufferSendIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendIn.
void init()
Initialization function.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
void invoke(Fw::Time &time) const
Invoke a port connection.
void log_WARNING_HI_FileWriteError(const Fw::StringBase &fileName)
The File Uplink component encountered a duplicate packet during file receipt.
The File Uplink component successfully received a file.
The File Uplink component received a CANCEL packet.
bool isConnected_fileAnnounce_OutputPort(FwIndexType portNum) const
FileUplinkComponentBase(const char *compName="")
Construct FileUplinkComponentBase object.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void set_fileAnnounce_OutputPort(FwIndexType portNum, Svc::InputFileAnnouncePort *port)
Connect port to fileAnnounce[portNum].
void tlmWrite_Warnings(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
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
A serious but recoverable event.
Errors dispatching messages.
void log_WARNING_HI_FileWriteError_ThrottleClear()
Reset throttle value for FileWriteError.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port connection.
const char * toChar() const
Convert to a C-style char*.
void log_WARNING_HI_FileOpenError(const Fw::StringBase &fileName) const
Enum representing event severity.
Throttle reset count for PacketDuplicate.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
bool isConnected_bufferSendOut_OutputPort(FwIndexType portNum) const
virtual ~FileUplinkComponentBase()
Destroy FileUplinkComponentBase object.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
uint8_t U8
8-bit unsigned integer
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
void log_WARNING_HI_InvalidPacketReceived(FwPacketDescriptorType packetType) const
Important informational events.
void init()
Initialization function.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
virtual void bufferSendIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendIn.
message to exit active component task
A message was sent requesting an exit of the loop.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void tlmWrite_PacketsReceived(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
PlatformIndexType FwIndexType
void fileAnnounce_out(FwIndexType portNum, Fw::StringBase &file_name) const
Invoke output port fileAnnounce.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void addCallPort(InputLogPort *callPort)
Register an input port.
void invoke(Fw::StringBase &file_name) const
Invoke a port connection.
void incNumMsgDropped()
increment the number of messages dropped
RateGroupDivider component implementation.
message sent/received okay
Channel ID for FilesReceived.
Throttle reset count for InvalidReceiveMode.
Channel ID for PacketsReceived.
Message will return with status when space is unavailable.
Implementation of malloc based allocator.
Throttle reset count for FileWriteError.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void log_WARNING_HI_PacketOutOfBounds_ThrottleClear()
Reset throttle value for PacketOutOfBounds.
void log_WARNING_HI_PacketOutOfOrder(U32 packetIndex, U32 lastPacketIndex)
Throttle reset count for PacketOutOfBounds.
During receipt of a file, the computed checksum value did not match the stored value.
Channel ID for FilesReceivedFailed.
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
SerializeStatus serializeTo(SerialBufferBase &buffer, Endianness mode=Endianness::BIG) const override
Serialize the contents of this object to a buffer.
void init()
Initialization function.