QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
ADSBVehicle.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QElapsedTimer>
4#include <QtCore/QtNumeric>
5#include <QtCore/QObject>
6#include <QtPositioning/QGeoCoordinate>
7#include <QtQmlIntegration/QtQmlIntegration>
8
9#include "ADSB.h"
10
11class ADSBVehicle : public QObject
12{
13 Q_OBJECT
14 // QML_ELEMENT
15
16 Q_PROPERTY(uint icaoAddress READ icaoAddress CONSTANT)
17 Q_PROPERTY(QString callsign READ callsign NOTIFY callsignChanged)
18 Q_PROPERTY(QGeoCoordinate coordinate READ coordinate NOTIFY coordinateChanged)
19 Q_PROPERTY(double altitude READ altitude NOTIFY altitudeChanged)
20 Q_PROPERTY(double heading READ heading NOTIFY headingChanged)
21 Q_PROPERTY(double velocity READ velocity NOTIFY velocityChanged)
22 Q_PROPERTY(double verticalVel READ verticalVel NOTIFY verticalVelChanged)
23 Q_PROPERTY(uint16_t squawk READ squawk NOTIFY squawkChanged)
24 Q_PROPERTY(bool alert READ alert NOTIFY alertChanged)
25
26public:
27 explicit ADSBVehicle(const ADSB::VehicleInfo_t &vehicleInfo, QObject *parent = nullptr);
29
30 uint32_t icaoAddress() const { return _info.icaoAddress; }
31 QString callsign() const { return _info.callsign; }
32 QGeoCoordinate coordinate() const { return _info.location; }
33 double altitude() const { return _info.location.altitude(); }
34 double heading() const { return _info.heading; }
35 double velocity() const { return _info.velocity; }
36 double verticalVel() const { return _info.verticalVel; }
37 uint16_t squawk() const { return _info.squawk; }
38 bool alert() const { return _info.alert; }
39 bool expired() const { return _lastUpdateTimer.hasExpired(_expirationTimeoutMs); }
40 void update(const ADSB::VehicleInfo_t &vehicleInfo);
41
42signals:
51
52private:
53 ADSB::VehicleInfo_t _info{};
54 QElapsedTimer _lastUpdateTimer;
55
56 static constexpr qint64 _expirationTimeoutMs = 120000;
57};
void coordinateChanged()
double altitude() const
Definition ADSBVehicle.h:33
double velocity() const
Definition ADSBVehicle.h:35
void headingChanged()
void squawkChanged()
double heading() const
Definition ADSBVehicle.h:34
bool alert() const
Definition ADSBVehicle.h:38
QString callsign() const
Definition ADSBVehicle.h:31
void callsignChanged()
uint16_t squawk() const
Definition ADSBVehicle.h:37
QGeoCoordinate coordinate() const
Definition ADSBVehicle.h:32
void update(const ADSB::VehicleInfo_t &vehicleInfo)
void altitudeChanged()
double verticalVel() const
Definition ADSBVehicle.h:36
void alertChanged()
bool expired() const
Definition ADSBVehicle.h:39
void velocityChanged()
uint32_t icaoAddress() const
Definition ADSBVehicle.h:30
void verticalVelChanged()
uint32_t icaoAddress
Definition ADSB.h:49
double velocity
Definition ADSB.h:54
double verticalVel
Definition ADSB.h:55
double heading
Definition ADSB.h:52
QString callsign
Definition ADSB.h:50
QGeoCoordinate location
Definition ADSB.h:51
uint16_t squawk
Definition ADSB.h:53