20 Q_PROPERTY(QString name READ name CONSTANT)
21 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY
selectedChanged)
26 Q_PROPERTY(quint32 size READ size NOTIFY
sizeChanged)
32 QString name()
const {
return _name; }
33 bool selected()
const {
return _selected; }
34 bool uploaded()
const {
return _uploaded; }
35 bool uploading()
const {
return _uploading; }
36 bool writing()
const {
return _writing; }
37 qreal progress()
const {
return _progress; }
38 quint32 size()
const {
return _size; }
40 void setProgress(qreal progress);
41 void setSelected(
bool selected);
42 void setSize(quint32 size);
43 void setUploaded(
bool uploaded);
44 void setUploading(
bool uploading);
45 void setWriting(
bool writing);
56 bool _selected =
false;
57 bool _uploaded =
false;
58 bool _uploading =
false;
59 bool _writing =
false;
74 bool valid()
const {
return ((_file.exists()) && (_record !=
nullptr)); }
78 bool processStreamData(uint16_t _sequence, uint8_t first_message,
const QByteArray &in);
81 bool _checkSequence(uint16_t seq,
int &num_drops);
82 QByteArray _writeUlogMessage(QByteArray &data);
83 void _writeData(
const void* data,
int len);
86 bool _gotHeader =
false;
90 QByteArray _ulogMessage;
95 static constexpr int kUlogMessageHeader = 3;
96 static constexpr int kSequenceSize = 1 << 15;
107 Q_MOC_INCLUDE(
"QmlObjectListModel.h")
108 Q_PROPERTY(QString emailAddress READ emailAddress WRITE setEmailAddress NOTIFY
emailAddressChanged)
109 Q_PROPERTY(QString description READ description WRITE setDescription NOTIFY
descriptionChanged)
110 Q_PROPERTY(QString uploadURL READ uploadURL WRITE setUploadURL NOTIFY
uploadURLChanged)
111 Q_PROPERTY(QString feedback READ feedback WRITE setFeedback NOTIFY
feedbackChanged)
112 Q_PROPERTY(QString videoURL READ videoURL WRITE setVideoURL NOTIFY
videoURLChanged)
113 Q_PROPERTY(
bool enableAutoUpload READ enableAutoUpload WRITE setEnableAutoUpload NOTIFY
enableAutoUploadChanged)
114 Q_PROPERTY(
bool enableAutoStart READ enableAutoStart WRITE setEnableAutoStart NOTIFY
enableAutoStartChanged)
115 Q_PROPERTY(
bool deleteAfterUpload READ deleteAfterUpload WRITE setDeleteAfterUpload NOTIFY
deleteAfterUploadChanged)
116 Q_PROPERTY(
bool publicLog READ publicLog WRITE setPublicLog NOTIFY
publicLogChanged)
121 Q_PROPERTY(
int windSpeed READ windSpeed WRITE setWindSpeed NOTIFY
windSpeedChanged)
122 Q_PROPERTY(QString rating READ rating WRITE setRating NOTIFY
ratingChanged)
132 Q_INVOKABLE
void cancelUpload();
133 Q_INVOKABLE
void deleteLog();
134 Q_INVOKABLE
void startLogging();
135 Q_INVOKABLE
void stopLogging();
136 Q_INVOKABLE
void uploadLog();
138 QString emailAddress()
const {
return _emailAddress; }
139 QString description()
const {
return _description; }
140 QString uploadURL()
const {
return _uploadURL; }
141 QString feedback()
const {
return _feedback; }
142 QString videoURL()
const {
return _videoURL; }
143 bool enableAutoUpload()
const {
return _enableAutoUpload; }
144 bool enableAutoStart()
const {
return _enableAutoStart; }
145 bool uploading()
const {
return (_currentLogfile !=
nullptr); }
146 bool logRunning()
const {
return _logRunning; }
147 bool canStartLog()
const {
return !_loggingDenied; }
148 bool deleteAfterUpload()
const {
return _deleteAfterUpload; }
149 bool publicLog()
const {
return _publicLog; }
150 int windSpeed()
const {
return _windSpeed; }
151 QString rating()
const {
return _rating; }
152 QString logExtension()
const {
return _ulogExtension; }
156 void setDeleteAfterUpload(
bool enable);
157 void setDescription(
const QString &description);
158 void setEmailAddress(
const QString &email);
159 void setEnableAutoStart(
bool enable);
160 void setEnableAutoUpload(
bool enable);
161 void setFeedback(
const QString &feedback);
162 void setPublicLog(
bool publicLog);
163 void setRating(
const QString &rate);
164 void setUploadURL(
const QString &url);
165 void setVideoURL(
const QString &url);
166 void setWindSpeed(
int speed);
191 void _uploadFinished();
192 void _dataAvailable();
193 void _uploadProgress(qint64 bytesSent, qint64 bytesTotal);
194 void _mavlinkLogData(
Vehicle *vehicle, uint8_t target_system, uint8_t target_component, uint16_t sequence, uint8_t first_message,
const QByteArray &data,
bool acked);
195 void _armedChanged(
bool armed);
196 void _mavCommandResult(
int vehicleId,
int component,
int command,
int result,
int failureCode);
199 bool _sendLog(
const QString &logFile);
200 bool _processUploadResponse(
int http_code,
const QByteArray &data);
201 bool _createNewLog();
202 int _getFirstSelected()
const;
206 QString _makeFilename(
const QString &baseName)
const;
208 static QHttpPart _createFormPart(QStringView name, QStringView value);
211 QNetworkAccessManager *_networkManager =
nullptr;
213 QString _ulogExtension;
216 bool _deleteAfterUpload =
false;
217 bool _enableAutoStart =
false;
218 bool _enableAutoUpload =
true;
219 bool _loggingDisabled =
false;
220 bool _loggingDenied =
false;
221 bool _logRunning =
false;
222 bool _publicLog =
false;
226 QString _description;
227 QString _emailAddress;
233 static constexpr const char *kMAVLinkLogGroup =
"MAVLinkLogGroup";
234 static constexpr const char *kEmailAddressKey =
"Email";
235 static constexpr const char *kDescriptionsKey =
"Description";
236 static constexpr const char *kDefaultDescr =
"QGroundControl Session";
237 static constexpr const char *kPx4URLKey =
"LogURL";
238 static constexpr const char *kDefaultPx4URL =
"https://logs.px4.io/upload";
239 static constexpr const char *kEnableAutoUploadKey =
"EnableAutoUpload";
240 static constexpr const char *kEnableAutoStartKey =
"EnableAutoStart";
241 static constexpr const char *kEnableDeletetKey =
"EnableDelete";
242 static constexpr const char *kVideoURLKey =
"VideoURL";
243 static constexpr const char *kWindSpeedKey =
"WindSpeed";
244 static constexpr const char *kRateKey =
"RateKey";
245 static constexpr const char *kPublicLogKey =
"PublicLog";
246 static constexpr const char *kFeedback =
"feedback";
247 static constexpr const char *kVideoURL =
"videoUrl";