QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
TerrainProtocolHandler.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QLoggingCategory>
4#include <QtCore/QObject>
5#include <QtPositioning/QGeoCoordinate>
6
7#include "MAVLinkLib.h"
8
9class QTimer;
11class Vehicle;
12
13Q_DECLARE_LOGGING_CATEGORY(TerrainProtocolHandlerLog)
14
15class TerrainProtocolHandler : public QObject
16{
17 Q_OBJECT
18
19public:
20 explicit TerrainProtocolHandler(Vehicle *vehicle, TerrainFactGroup *terrainFactGroup, QObject *parent = nullptr);
22
24 bool mavlinkMessageReceived(const mavlink_message_t &message);
25
26private slots:
27 void _sendNextTerrainData();
28
29private:
30 void _handleTerrainRequest(const mavlink_message_t &message);
31 void _handleTerrainReport(const mavlink_message_t &message);
32 void _sendTerrainData(const QGeoCoordinate &swCorner, uint8_t gridBit);
33
34 Vehicle *_vehicle = nullptr;
36 QTimer *_terrainDataSendTimer = nullptr;
37 bool _terrainRequestActive = false;
38 mavlink_terrain_request_t _currentTerrainRequest;
39};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
struct __mavlink_message mavlink_message_t
TerrainFactGroup _terrainFactGroup
Definition Vehicle.h:1237
void mavlinkMessageReceived(const mavlink_message_t &message)
FactGroup * terrainFactGroup()
Definition Vehicle.h:566