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/QLoggingCategory>
4#include <QtCore/QObject>
5
6#include "ADSB.h"
7#include "MAVLinkLib.h"
8
9Q_DECLARE_LOGGING_CATEGORY(ADSBVehicleManagerLog)
10
11class ADSBTCPLink;
12class ADSBVehicle;
14class QTimer;
16
17class ADSBVehicleManager : public QObject
18{
19 Q_OBJECT
20 Q_MOC_INCLUDE("QmlObjectListModel.h")
21
22 Q_PROPERTY(const QmlObjectListModel *adsbVehicles READ adsbVehicles CONSTANT)
23
24public:
25 explicit ADSBVehicleManager(ADSBVehicleManagerSettings *settings, QObject *parent = nullptr);
27
29
30 const QmlObjectListModel *adsbVehicles() const { return _adsbVehicles; }
31
32 void mavlinkMessageReceived(const mavlink_message_t &message);
33
34public slots:
35 void adsbVehicleUpdate(const ADSB::VehicleInfo_t &vehicleInfo);
36
37private slots:
38 void _cleanupStaleVehicles();
39 void _linkError(const QString &errorMsg, bool stopped = false);
40
41private:
42 void _start(const QString &hostAddress, quint16 port);
43 void _stop();
44 void _handleADSBVehicle(const mavlink_message_t &message);
45
46 ADSBVehicleManagerSettings *_adsbSettings = nullptr;
47 QTimer *_adsbVehicleCleanupTimer = nullptr;
48 QmlObjectListModel *_adsbVehicles = nullptr;
49
50 QMap<uint32_t, ADSBVehicle*> _adsbICAOMap;
51 ADSBTCPLink *_adsbTcpLink = nullptr;
52
53 static constexpr uint8_t kMaxTimeSinceLastSeen = 15;
54};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
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()