4#include <QtCore/QObject>
5#include <QtNetwork/QHttpPart>
6#include <QtQmlIntegration/QtQmlIntegration>
9class QNetworkAccessManager;
17 Q_PROPERTY(QString
name READ
name CONSTANT)
29 QString
name()
const {
return _name; }
35 quint32
size()
const {
return _size; }
53 bool _selected =
false;
54 bool _uploaded =
false;
55 bool _uploading =
false;
56 bool _writing =
false;
71 bool valid()
const {
return ((_file.exists()) && (_record !=
nullptr)); }
75 bool processStreamData(uint16_t _sequence, uint8_t first_message,
const QByteArray &in);
78 bool _checkSequence(uint16_t seq,
int &num_drops);
79 QByteArray _writeUlogMessage(QByteArray &data);
80 void _writeData(
const void* data,
int len);
83 bool _gotHeader =
false;
87 QByteArray _ulogMessage;
92 static constexpr int kUlogMessageHeader = 3;
93 static constexpr int kSequenceSize = 1 << 15;
103 Q_MOC_INCLUDE(
"QmlObjectListModel.h")
141 bool uploading()
const {
return (_currentLogfile !=
nullptr); }
147 QString
rating()
const {
return _rating; }
187 void _uploadFinished();
188 void _dataAvailable();
189 void _uploadProgress(qint64 bytesSent, qint64 bytesTotal);
190 void _mavlinkLogData(
Vehicle *vehicle, uint8_t target_system, uint8_t target_component, uint16_t sequence, uint8_t first_message,
const QByteArray &data,
bool acked);
191 void _armedChanged(
bool armed);
192 void _mavCommandResult(
int vehicleId,
int component,
int command,
int result,
int failureCode);
195 bool _sendLog(
const QString &logFile);
196 bool _processUploadResponse(
int http_code,
const QByteArray &data);
197 bool _createNewLog();
198 int _getFirstSelected()
const;
202 QString _makeFilename(
const QString &baseName)
const;
204 static QHttpPart _createFormPart(QStringView name, QStringView value);
207 QNetworkAccessManager *_networkManager =
nullptr;
209 QString _ulogExtension;
212 bool _deleteAfterUpload =
false;
213 bool _enableAutoStart =
false;
214 bool _enableAutoUpload =
true;
215 bool _loggingDisabled =
false;
216 bool _loggingDenied =
false;
217 bool _logRunning =
false;
218 bool _publicLog =
false;
222 QString _description;
223 QString _emailAddress;
229 static constexpr const char *kMAVLinkLogGroup =
"MAVLinkLogGroup";
230 static constexpr const char *kEmailAddressKey =
"Email";
231 static constexpr const char *kDescriptionsKey =
"Description";
232 static constexpr const char *kDefaultDescr =
"QGroundControl Session";
233 static constexpr const char *kPx4URLKey =
"LogURL";
234 static constexpr const char *kDefaultPx4URL =
"https://logs.px4.io/upload";
235 static constexpr const char *kEnableAutoUploadKey =
"EnableAutoUpload";
236 static constexpr const char *kEnableAutoStartKey =
"EnableAutoStart";
237 static constexpr const char *kEnableDeletetKey =
"EnableDelete";
238 static constexpr const char *kVideoURLKey =
"VideoURL";
239 static constexpr const char *kWindSpeedKey =
"WindSpeed";
240 static constexpr const char *kRateKey =
"RateKey";
241 static constexpr const char *kPublicLogKey =
"PublicLog";
242 static constexpr const char *kFeedback =
"feedback";
243 static constexpr const char *kVideoURL =
"videoUrl";
void setSize(quint32 size)
void setUploading(bool uploading)
void setSelected(bool selected)
void setProgress(qreal progress)
void setWriting(bool writing)
void setUploaded(bool uploaded)
QString uploadURL() const
void setDeleteAfterUpload(bool enable)
Q_INVOKABLE void stopLogging()
void enableAutoUploadChanged()
Q_INVOKABLE void uploadLog()
void canStartLogChanged()
bool enableAutoUpload() const
void selectedCountChanged()
void setEmailAddress(const QString &email)
void setDescription(const QString &description)
void setPublicLog(bool publicLog)
bool deleteAfterUpload() const
Q_INVOKABLE void deleteLog()
void setEnableAutoUpload(bool enable)
void setWindSpeed(int speed)
bool enableAutoStart() const
QmlObjectListModel * logFiles()
QString emailAddress() const
void readyRead(const QByteArray &data)
QString description() const
void setRating(const QString &rate)
void setVideoURL(const QString &url)
~MAVLinkLogManager()
Destructor for the MAVLinkLogManager class.
void emailAddressChanged()
void descriptionChanged()
void deleteAfterUploadChanged()
Q_INVOKABLE void cancelUpload()
QString logExtension() const
void enableAutoStartChanged()
void setFeedback(const QString &feedback)
Q_INVOKABLE void startLogging()
void setEnableAutoStart(bool enable)
void setUploadURL(const QString &url)
bool create(MAVLinkLogManager *manager, QStringView path, uint8_t id)
bool processStreamData(uint16_t _sequence, uint8_t first_message, const QByteArray &in)
MAVLinkLogFiles * record()