QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
SimulatedPosition.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtPositioning/QGeoPositionInfoSource>
4class Vehicle;
5class QTimer;
6
7class SimulatedPosition : public QGeoPositionInfoSource
8{
9 Q_OBJECT
10
11public:
12 SimulatedPosition(QObject* parent = nullptr);
14
15 QGeoPositionInfo lastKnownPosition(bool /*fromSatellitePositioningMethodsOnly = false*/) const final { return _lastPosition; }
16
17 PositioningMethods supportedPositioningMethods() const final { return PositioningMethod::AllPositioningMethods; }
18 int minimumUpdateInterval() const final { return kUpdateIntervalMsecs; }
19 Error error() const final { return QGeoPositionInfoSource::NoError; }
20
21public slots:
22 void startUpdates() final;
23 void stopUpdates() final;
24 void requestUpdate(int timeout = 5000) final;
25
26private slots:
27 void _updatePosition();
28 void _vehicleAdded(Vehicle *vehicle);
29 void _vehicleHomePositionChanged(QGeoCoordinate homePosition);
30
31private:
32 QTimer *_updateTimer = nullptr;
33 QGeoPositionInfo _lastPosition;
34 QMetaObject::Connection _homePositionChangedConnection;
35
36 static constexpr int kUpdateIntervalMsecs = 1000;
37 static constexpr qreal kHorizontalVelocityMetersPerSec = 0.5;
38 static constexpr qreal kVerticalVelocityMetersPerSec = 0.1;
39 static constexpr qreal kHeading = 45.;
40};
int minimumUpdateInterval() const final
Error error() const final
QGeoPositionInfo lastKnownPosition(bool) const final
void requestUpdate(int timeout=5000) final
PositioningMethods supportedPositioningMethods() const final
void startUpdates() final