Initial commit: add Location Plotter
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include "SatelliteData.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
#include <QTimer>
|
||||
|
||||
class RinexNavigation : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit RinexNavigation(QObject *parent = nullptr);
|
||||
|
||||
void refresh();
|
||||
[[nodiscard]] bool isLoading() const { return m_loading; }
|
||||
|
||||
static QVector<SatellitePosition> parseGpsNavigation(
|
||||
const QByteArray &rinex, const QDateTime &whenUtc, QString *error = nullptr);
|
||||
|
||||
signals:
|
||||
void satellitesUpdated(const QVector<SatellitePosition> &satellites);
|
||||
void satelliteMotionUpdated(const QVector<SatellitePosition> ¤t,
|
||||
const QVector<SatellitePosition> &next,
|
||||
int durationMs);
|
||||
void statusChanged(const QString &status, bool error);
|
||||
|
||||
private:
|
||||
void requestDay(const QDate &date, int fallbackIndex);
|
||||
void handleDownload(const QByteArray &compressed, const QDate &date, int fallbackIndex);
|
||||
bool loadCache();
|
||||
QString cachePath() const;
|
||||
void updateCurrentPositions();
|
||||
void publishCurrentMotion();
|
||||
|
||||
QNetworkAccessManager m_network;
|
||||
QTimer m_positionTimer;
|
||||
QByteArray m_latestRinex;
|
||||
bool m_loading = false;
|
||||
};
|
||||
Reference in New Issue
Block a user