4#include <QtCore/QObject>
5#include <QtCore/QPointF>
6#include <QtCore/QString>
7#include <QtCore/QStringList>
8#include <QtCore/QVariant>
9#include <QtCore/QVariantList>
10#include <QtCore/QDateTime>
11#include <QtCore/QVector>
12#include <QtCore/QtGlobal>
13#include <QtQmlIntegration/QtQmlIntegration>
63 QVariantList
events()
const {
return _events; }
64 QVariantList
messages()
const {
return _messages; }
67 QStringList
modeNames()
const {
return _modeNames; }
68 QVariantList
dropouts()
const {
return _dropouts; }
77 Q_INVOKABLE
bool parseFile(
const QString &filePath);
79 Q_INVOKABLE
void clear();
80 Q_INVOKABLE QVariantList
fieldSamples(
const QString &fieldName)
const;
81 Q_INVOKABLE QVariantList
fieldSamplesFiltered(
const QString &fieldName,
double minX,
double maxX,
int pixelWidth)
const;
82 Q_INVOKABLE QVariantMap
fieldMinMax(
const QString &fieldName)
const;
83 Q_INVOKABLE
double fieldValueAt(
const QString &fieldName,
double timestampSeconds)
const;
84 Q_INVOKABLE QString
modeAt(
double timestampSeconds)
const;
85 Q_INVOKABLE QString
modeColor(
const QString &modeName)
const;
86 Q_INVOKABLE QVariantList
eventsNear(
double timestampSeconds,
double thresholdSeconds)
const;
92 Q_INVOKABLE QVariantList
gpsPath()
const;
101 Q_INVOKABLE QVariantMap
gpsCoordAt(
double timestampSeconds)
const;
123 void _setParseError(
const QString &
error);
126 bool _parseComplete =
false;
128 QStringList _availableFields;
129 QStringList _plottableFields;
130 QVariantList _parameters;
131 QVariantList _events;
132 QVariantList _messages;
133 QVariantList _modeSegments;
134 QVariantList _dropouts;
135 QString _detectedVehicleType;
136 QHash<QString, QVector<QPointF>> _fieldSamples;
137 double _minTimestamp = -1.0;
138 double _maxTimestamp = -1.0;
139 int _sampleCount = 0;
140 quint64 _parseRequestId = 0;
141 QDateTime _startTime;
142 bool _parsing =
false;
143 float _parseProgress = 0.f;
144 std::shared_ptr<std::atomic<bool>> _cancelToken;
146 QStringList _modeNames;
147 QHash<QString, int> _modeColorCache;
150 mutable QString _gpsLatField;
151 mutable QString _gpsLonField;
152 mutable QString _gpsAltField;
Unified log file parser for both DataFlash (.bin/.log) and PX4 ULog (.ulg) files.
Q_INVOKABLE QVariantList eventsNear(double timestampSeconds, double thresholdSeconds) const
QVariantList parameters() const
Q_INVOKABLE double fieldValueAt(const QString &fieldName, double timestampSeconds) const
QVariantList modeSegments() const
QStringList availableFields() const
Q_INVOKABLE QVariantList fieldSamplesFiltered(const QString &fieldName, double minX, double maxX, int pixelWidth) const
Q_INVOKABLE QVariantMap fieldMinMax(const QString &fieldName) const
Q_INVOKABLE QVariantList fieldSamples(const QString &fieldName) const
double maxTimestamp() const
double minTimestamp() const
void parseProgressChanged()
Q_INVOKABLE void startParsingAsync(const QString &filePath)
QString parseError() const
void detectedVehicleTypeChanged()
void sampleCountChanged()
void plottableFieldsChanged()
float parseProgress() const
void availableFieldsChanged()
void modeSegmentsChanged()
QDateTime startTime() const
void parseCompleteChanged()
bool parseComplete() const
Q_INVOKABLE QVariantMap gpsCoordAt(double timestampSeconds) const
Q_INVOKABLE QString modeAt(double timestampSeconds) const
QVariantList events() const
Q_INVOKABLE QString gpsAltitudeFieldName() const
QStringList modeNames() const
Q_INVOKABLE QVariantList gpsPath() const
void parseFileFinished(const QString &filePath, bool ok, const QString &errorMessage)
QStringList plottableFields() const
QVariantList dropouts() const
Q_INVOKABLE bool parseFile(const QString &filePath)
QVariantList messages() const
Q_INVOKABLE QString modeColor(const QString &modeName) const
QString detectedVehicleType() const