QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GPSDriver.h
Go to the documentation of this file.
1#pragma once
2
3#include "GPSType.h"
4#include "satellite_info.h"
5#include "sensor_gps.h"
6
7#include <QtCore/QByteArray>
8#include <QtCore/QMetaType>
9
10#include <cstdint>
11#include <functional>
12#include <memory>
13
14class GPSTransport;
15class GPSBaseStationSupport;
16
19{
20 bool useFixedBase = false;
21 double surveyInAccMeters = 0.0;
23 double fixedBaseLatitude = 0.0;
24 double fixedBaseLongitude = 0.0;
27 float headingOffsetDeg = 5.0f; // dual-antenna heading offset; consumed only by the Septentrio (SBF) driver
28};
29
32{
33 double latitude = 0.0;
34 double longitude = 0.0;
35 float altitude = 0.0f;
36 uint32_t meanAccuracyMM = 0;
37 uint32_t durationSecs = 0;
38 bool valid = false;
39 bool active = false;
40};
42
43
46{
47 std::function<void(const sensor_gps_s &)> onPosition;
48 std::function<void(const satellite_info_s &)> onSatelliteInfo;
49 std::function<void(const QByteArray &)> onRTCM;
50 std::function<void(const GPSSurveyInStatus &)> onSurveyIn;
51};
52
57{
58public:
59 GPSDriver(GPSType type, GPSTransport &transport, const GPSReceiverConfig &config, GPSDriverSinks sinks);
61
62 GPSDriver(const GPSDriver &) = delete;
63 GPSDriver &operator=(const GPSDriver &) = delete;
64
66 bool configure();
67
71 int receive(unsigned timeoutMs);
72
75 int handleCallback(int type, void *data1, int data2);
76
77private:
78 GPSType _type;
79 GPSTransport &_transport;
80 GPSReceiverConfig _config;
81 GPSDriverSinks _sinks;
82
83 std::unique_ptr<GPSBaseStationSupport> _driver;
84 sensor_gps_s _sensorGps{};
85 satellite_info_s _satelliteInfo{};
86};
GPSType
Receiver families QGC can drive via the px4-gpsdrivers library.
Definition GPSType.h:5
GPSDriver & operator=(const GPSDriver &)=delete
GPSDriver(const GPSDriver &)=delete
int receive(unsigned timeoutMs)
Definition GPSDriver.cc:95
bool configure()
Create and configure the underlying driver. Returns false on failure.
Definition GPSDriver.cc:37
int handleCallback(int type, void *data1, int data2)
Definition GPSDriver.cc:115
Q_DECLARE_METATYPE(satellite_info_s)
std::function< void(const sensor_gps_s &)> onPosition
Definition GPSDriver.h:47
std::function< void(const satellite_info_s &)> onSatelliteInfo
Definition GPSDriver.h:48
std::function< void(const GPSSurveyInStatus &)> onSurveyIn
Definition GPSDriver.h:50
std::function< void(const QByteArray &)> onRTCM
Definition GPSDriver.h:49
RTK base-station configuration, decoupled from QGC settings types.
Definition GPSDriver.h:19
double fixedBaseLatitude
Definition GPSDriver.h:23
float headingOffsetDeg
Definition GPSDriver.h:27
float fixedBaseAltitudeMeters
Definition GPSDriver.h:25
double fixedBaseLongitude
Definition GPSDriver.h:24
float fixedBaseAccuracyMeters
Definition GPSDriver.h:26
double surveyInAccMeters
Definition GPSDriver.h:21
Survey-in progress, translated from the px4 SurveyInStatus.
Definition GPSDriver.h:32
uint32_t meanAccuracyMM
Definition GPSDriver.h:36
uint32_t durationSecs
Definition GPSDriver.h:37