QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
Viewer3DTileReply.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QByteArray>
4#include <QtCore/QLoggingCategory>
5#include <QtCore/QObject>
6#include <QtCore/QString>
7
8Q_DECLARE_LOGGING_CATEGORY(Viewer3DTileReplyLog)
9
10struct QGCCacheTile;
11class QNetworkAccessManager;
12class QNetworkReply;
13class QTimer;
14
15class Viewer3DTileReply : public QObject
16{
17 Q_OBJECT
18
19public:
20 struct TileInfo_t {
21 QByteArray data;
22 int x = 0;
23 int y = 0;
24 int zoomLevel = 0;
25 int mapId = 0;
26 };
27
28 explicit Viewer3DTileReply(int zoomLevel, int tileX, int tileY, int mapId, const QString &mapType, QNetworkAccessManager *networkManager, QObject *parent = nullptr);
30
31signals:
35
36private:
37 void _prepareDownload();
38 void _onRequestFinished();
39 void _onRequestError();
40 void _onTimeout();
41 void _onCacheHit(QGCCacheTile *tile);
42 void _onCacheMiss();
43 void _disconnectReply();
44 bool _isBingEmptyTile() const;
45
46 static constexpr int kTimeoutMs = 10000;
47 static constexpr int kMaxRetries = 5;
48
49 QNetworkAccessManager *_networkManager = nullptr;
50 QNetworkReply *_reply = nullptr;
51 QTimer *_timeoutTimer = nullptr;
52
53 TileInfo_t _tile;
54 int _timeoutCounter = 0;
55
56 static QByteArray _bingNoTileImage;
57};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
void tileDone(TileInfo_t)
void tileEmpty(TileInfo_t)
void tileGiveUp(TileInfo_t)