QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GPSProvider.h
Go to the documentation of this file.
1#pragma once
2
3#include "GPSDriver.h" // facade; also publishes GPSReceiverConfig + the GNSS data structs relayed below
4#include "GPSType.h"
5
6#include <QtCore/QByteArray>
7#include <QtCore/QMetaType>
8#include <QtCore/QObject>
9#include <QtCore/QString>
10#include <QtCore/QThread>
11
12#include <atomic>
13#include <cstdint>
14
16{
17 None,
21};
23
24class GPSProvider : public QThread
25{
26 Q_OBJECT
27
28public:
29 GPSProvider(const QString &device, GPSType type, const GPSReceiverConfig &config, const std::atomic_bool &requestStop, QObject *parent = nullptr);
30
31signals:
33 void sensorGpsUpdate(const sensor_gps_s &message);
34 void RTCMDataUpdate(const QByteArray &message);
35 void surveyInStatus(const GPSSurveyInStatus &status);
37
38private:
39 void run() final;
40
41 QString _device;
42 GPSType _type;
43 const std::atomic_bool &_requestStop;
44 GPSReceiverConfig _config{};
45
46 static constexpr uint32_t kGPSReceiveTimeout = 1200;
47 static constexpr uint32_t kConfigRetryDelayMs = 500;
48 static constexpr uint8_t kMaxIdleReceiveCycles = 3;
49};
GPSConnectionError
Definition GPSProvider.h:16
@ ConfigFailed
receiver did not accept configuration
@ DeviceError
fatal serial error after a working connection
@ OpenFailed
serial device could not be opened
GPSType
Receiver families QGC can drive via the px4-gpsdrivers library.
Definition GPSType.h:5
Config config
Error error
void RTCMDataUpdate(const QByteArray &message)
void sensorGpsUpdate(const sensor_gps_s &message)
void satelliteInfoUpdate(const satellite_info_s &message)
void surveyInStatus(const GPSSurveyInStatus &status)
void connectionError(GPSConnectionError error)
Q_DECLARE_METATYPE(satellite_info_s)
RTK base-station configuration, decoupled from QGC settings types.
Definition GPSDriver.h:19
Survey-in progress, translated from the px4 SurveyInStatus.
Definition GPSDriver.h:32