13 #ifndef Svc_FileUplink_HPP 14 #define Svc_FileUplink_HPP 32 typedef enum { START, DATA } ReceiveMode;
61 void getChecksum(::
CFDP::Checksum& checksum) { checksum = this->m_checksum; }
70 FilesReceived(
FileUplink*
const fileUplink) : m_received_files_counter(0), m_fileUplink(fileUplink) {}
75 ++this->m_received_files_counter;
76 this->m_fileUplink->tlmWrite_FilesReceived(m_received_files_counter);
81 U32 m_received_files_counter;
88 class FilesReceivedFailed {
93 FilesReceivedFailed(
FileUplink*
const fileUplink) : m_failed_files_counter(0), m_fileUplink(fileUplink) {}
97 void fileReceivedFailed() {
98 ++this->m_failed_files_counter;
99 this->m_fileUplink->tlmWrite_FilesReceivedFailed(m_failed_files_counter);
104 U32 m_failed_files_counter;
111 class PacketsReceived {
116 PacketsReceived(
FileUplink*
const fileUplink) : m_received_packet_count(0), m_fileUplink(fileUplink) {}
120 void packetReceived() {
121 ++this->m_received_packet_count;
122 this->m_fileUplink->tlmWrite_PacketsReceived(m_received_packet_count);
127 U32 m_received_packet_count;
139 Warnings(
FileUplink*
const fileUplink) : m_warning_count(0), m_fileUplink(fileUplink) {}
149 void packetOutOfBounds(
const U32 sequenceIndex,
Fw::LogStringArg& fileName);
152 void packetOutOfOrder(
const U32 sequenceIndex,
const U32 lastSequenceIndex);
155 void packetDuplicate(
const U32 sequenceIndex);
161 void badChecksum(
const U32 computed,
const U32 read);
166 ++this->m_warning_count;
167 this->m_fileUplink->tlmWrite_Warnings(m_warning_count);
210 void bufferSendIn_handler(
const FwIndexType portNum,
235 void handleCancelPacket();
238 void checkSequenceIndex(
const U32 sequenceIndex);
241 bool checkDuplicatedPacket(
const U32 sequenceIndex);
247 void goToStartMode();
258 ReceiveMode m_receiveMode;
261 U32 m_lastSequenceIndex;
270 FilesReceived m_filesReceived;
273 FilesReceivedFailed m_filesReceivedFailed;
276 PacketsReceived m_packetsReceived;
The type of a data packet.
A wrapper around Os::File that restricts file access to an allowed directory.
Class representing a 32-bit checksum as mandated by the CCSDS File Delivery Protocol.
friend class FileUplinkTester
The type of a start packet.
uint8_t U8
8-bit unsigned integer
FileUplink(const char *const name)
Auto-generated base for FileUplink component.
PlatformIndexType FwIndexType
void configure(const char *directory)
RateGroupDivider component implementation.
The type of an end packet.