25 void setFileList(
const QStringList &fileList) { _fileList = fileList; }
39 QList<LogFile>
logFiles()
const {
return _logFiles; }
58 QByteArray
uploadedFileContents(
const QString& remotePath)
const {
return _uploadedFiles.value(remotePath); }
110 void _sendAck(uint8_t targetSystemId, uint8_t targetComponentId, uint16_t seqNumber,
MavlinkFTP::OpCode_t reqOpCode);
112 void _sendNakErrno(uint8_t targetSystemId, uint8_t targetComponentId, uint8_t nakErrno, uint16_t seqNumber,
MavlinkFTP::OpCode_t reqOpCode);
114 void _sendResponse(uint8_t targetSystemId, uint8_t targetComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
117 void _listCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber,
bool withTime);
118 void _openCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
119 void _createFileCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
120 void _openFileWOCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
121 void _readCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
122 void _burstReadCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
123 void _removeFileCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
124 void _terminateCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
125 void _resetCommand(uint8_t senderSystemId, uint8_t senderComponentId, uint16_t seqNumber);
126 void _writeCommand(uint8_t senderSystemId, uint8_t senderComponentId, MavlinkFTP::Request *request, uint16_t seqNumber);
127 void _finalizeActiveUpload();
130 uint16_t _nextSeqNumber(uint16_t seqNumber)
const;
131 static QString _createTestTempFile(
int size);
132 QString _generateParamPck(
bool withDefaults);
133 QString _logFileTempPath(
const QString &name);
134 static QByteArray _generateLogFileContents(
const QString &name,
int size);
137 static void ensureNullTemination(MavlinkFTP::Request *request);
139 const uint8_t _systemIdServer;
140 const uint8_t _componentIdServer;
143 bool _lastReplyValid =
false;
144 bool _randomDropsEnabled =
false;
145 int _burstReadDelayMs = 0;
147 bool _listDirectoryWithTimeSupported =
true;
150 QString _paramPckTempFile;
151 struct UploadSession {
162 UploadSession _uploadSession;
163 QHash<QString, QByteArray> _uploadedFiles;
164 QStringList _fileList;
165 QList<LogFile> _logFiles;
166 QHash<QString, QString> _logFileTempPaths;
167 uint16_t _lastReplySequence = 0;
169 static constexpr uint8_t _sessionId = 1;