-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuplogparser.h
74 lines (60 loc) · 1.55 KB
/
buplogparser.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#ifndef BUPLOGPARSER_H
#define BUPLOGPARSER_H
#include <QObject>
#include <QFile>
#include <QtPositioning/QGeoCoordinate>
#include <QGeoPath>
#include <QAbstractSeries>
#include <QLineSeries>
#include <QXYSeries>
class BupLogParser : public QObject
{
Q_OBJECT
public:
explicit BupLogParser(QObject *parent = nullptr);
~BupLogParser(void);
struct Warning {
uint64_t timestamp;
QString text;
};
struct Point {
uint64_t timestamp;
QString name;
QGeoCoordinate point;
};
struct Series {
QString name;
QList<uint64_t> timestamp;
QList<double> step;
QList<double> value;
};
struct GeoTrack {
uint64_t timestamp;
double step;
QGeoCoordinate coordinate;
};
private:
QFile file;
QList<Warning> warnings;
QList<Point> points;
QList<Series*> series;
QList<GeoTrack> track;
void parseLine(QString line);
void trackToSeries(void);
void clear(void);
QList<QPointF> createSeries(QString xTag, QString yTag);
signals:
void fileOpen(QString name);
public slots:
bool openFile(QString);
QGeoPath getTrack(void);
void getSeries(QtCharts::QAbstractSeries *series, QString xTag, QString yTag);
QGeoCoordinate getPoint(QString name);
QStringList getWarningsList(void);
QStringList getPointsList(void);
QStringList getSeriesList(void);
};
Q_DECLARE_METATYPE(BupLogParser::Warning)
Q_DECLARE_METATYPE(BupLogParser::Point)
Q_DECLARE_METATYPE(BupLogParser::Series)
#endif // BUPLOGPARSER_H