QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GPSManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QObject>
4#include <QtQmlIntegration/QtQmlIntegration>
5
7class GPSReceiver;
8class NTRIPManager;
10class PositionManager;
12
21class GPSManager : public QObject
22{
23 Q_OBJECT
24 QML_ELEMENT
25 QML_UNCREATABLE("Owned by QGroundControl")
26 Q_MOC_INCLUDE("GPSCorrectionManager.h")
27 Q_MOC_INCLUDE("GPSReceiver.h")
28 Q_MOC_INCLUDE("NTRIPManager.h")
29 Q_MOC_INCLUDE("PositionManager.h")
30 Q_PROPERTY(GPSCorrectionManager* corrections READ corrections CONSTANT FINAL)
31 Q_PROPERTY(GPSReceiver* receiver READ receiver CONSTANT FINAL)
32 Q_PROPERTY(NTRIPManager* ntrip READ ntrip CONSTANT FINAL)
33 Q_PROPERTY(PositionManager* positionManager READ positionManager CONSTANT FINAL)
34
35 friend class GPSManagerTest;
36
37public:
39 GPSManager(QObject* parent = nullptr, RuntimeScheduler* scheduler = nullptr);
40 ~GPSManager();
41
42 static GPSManager* instance();
43
46 void init();
48 void shutdown();
49
50 GPSReceiver* receiver() const { return _receiver; }
51
52 GPSCorrectionManager* corrections() const { return _corrections; }
53
54 NTRIPManager* ntrip() const { return _ntripManager; }
55
56 PositionManager* positionManager() const { return _positionManager; }
57
60 Q_INVOKABLE bool saveCurrentBasePosition();
61
62private:
65 void _initGgaSources();
66
67 RuntimeScheduler* const _scheduler;
68 GPSCorrectionManager* const _corrections;
69 PositionManager* const _positionManager;
70 GPSReceiver* const _receiver;
71 NTRIPManager* const _ntripManager;
72 NTRIPVehicleGgaSource* const _vehicleGga;
73 bool _initialized = false;
74 bool _shutdown = false;
75};
NTRIPManager * ntrip() const
Definition GPSManager.h:54
GPSCorrectionManager * corrections() const
Definition GPSManager.h:52
void shutdown()
Stops the GPS services, then the position manager.
Q_INVOKABLE bool saveCurrentBasePosition()
Definition GPSManager.cc:72
static GPSManager * instance()
Definition GPSManager.cc:67
void init()
Definition GPSManager.cc:88
PositionManager * positionManager() const
Definition GPSManager.h:56
friend class GPSManagerTest
Definition GPSManager.h:35
GPSReceiver * receiver() const
Definition GPSManager.h:50