QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
ADSBVehicleManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QObject>
4
5#include "ADSB.h"
7
8class ADSBTCPLink;
9class ADSBVehicle;
11class QTimer;
13
14class ADSBVehicleManager : public QObject
15{
16 Q_OBJECT
17 Q_MOC_INCLUDE("QmlObjectListModel.h")
18
19 Q_PROPERTY(const QmlObjectListModel *adsbVehicles READ adsbVehicles CONSTANT)
20
21public:
22 explicit ADSBVehicleManager(ADSBVehicleManagerSettings *settings, QObject *parent = nullptr);
24
26
27 const QmlObjectListModel *adsbVehicles() const { return _adsbVehicles; }
28
29 void mavlinkMessageReceived(const mavlink_message_t &message);
30
31public slots:
32 void adsbVehicleUpdate(const ADSB::VehicleInfo_t &vehicleInfo);
33
34private slots:
35 void _cleanupStaleVehicles();
36 void _linkError(const QString &errorMsg, bool stopped = false);
37
38private:
39 void _start(const QString &hostAddress, quint16 port);
40 void _stop();
41 void _handleADSBVehicle(const mavlink_message_t &message);
42
43 ADSBVehicleManagerSettings *_adsbSettings = nullptr;
44 QTimer *_adsbVehicleCleanupTimer = nullptr;
45 QmlObjectListModel *_adsbVehicles = nullptr;
46
47 QMap<uint32_t, ADSBVehicle*> _adsbICAOMap;
48 ADSBTCPLink *_adsbTcpLink = nullptr;
49
50 static constexpr uint8_t kMaxTimeSinceLastSeen = 15;
51};
struct __mavlink_message mavlink_message_t
void adsbVehicleUpdate(const ADSB::VehicleInfo_t &vehicleInfo)
const QmlObjectListModel * adsbVehicles() const
void mavlinkMessageReceived(const mavlink_message_t &message)
static ADSBVehicleManager * instance()