QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCNetworkAvailabilityMonitor.cc
Go to the documentation of this file.
2
3#include <QtNetwork/QNetworkInformation>
4
6#include "QGCNetworkHelper.h"
7
8QGC_LOGGING_CATEGORY(QGCNetworkAvailabilityMonitorLog, "Utilities.QGCNetworkAvailabilityMonitor")
9
11 : QObject(parent)
12{
13 QNetworkInformation* const networkInformation = QGCNetworkHelper::networkInformation();
14 if (!networkInformation) {
15 return;
16 }
17
19 connect(networkInformation, &QObject::destroyed, this, [this]() { _setAvailable(true); });
20 connect(networkInformation, &QNetworkInformation::reachabilityChanged, this,
21 [this]() { _setAvailable(QGCNetworkHelper::isNetworkAvailable()); });
22}
23
25 : QObject(parent)
26 , _available(available)
27{}
28
30{
31 if (_available == available) {
32 return;
33 }
34 _available = available;
35 qCDebug(QGCNetworkAvailabilityMonitorLog) << "Network available:" << _available;
36 emit availableChanged(_available);
37}
#define QGC_LOGGING_CATEGORY(name, categoryStr)
void _setAvailable(bool available)
Emits availableChanged() only when available differs from the current state.
void availableChanged(bool available)
QGCNetworkAvailabilityMonitor(QObject *parent=nullptr)
QNetworkInformation * networkInformation()
The platform's network information, preferring a backend that reports reachability; null without a ba...
bool isNetworkAvailable()
Check if network is available (not disconnected); assumed available without a backend.