Commit 5c9a3ca8 authored by Gus Grubba's avatar Gus Grubba

Yet some more

parent fc74866c
......@@ -1064,8 +1064,9 @@ contains (DEFINES, QGC_AIRMAP_ENABLED) {
src/AirspaceManagement
HEADERS += \
src/AirspaceManagement/AirspaceAuthorization.h \
src/AirspaceManagement/AirspaceController.h \
src/AirspaceManagement/AirspaceManagement.h \
src/AirspaceManagement/AirspaceManager.h \
src/AirspaceManagement/AirspaceRestriction.h \
src/AirspaceManagement/AirspaceRestrictionProvider.h \
src/AirspaceManagement/AirspaceRulesetsProvider.h \
......@@ -1074,7 +1075,7 @@ contains (DEFINES, QGC_AIRMAP_ENABLED) {
SOURCES += \
src/AirspaceManagement/AirspaceController.cc \
src/AirspaceManagement/AirspaceManagement.cc \
src/AirspaceManagement/AirspaceManager.cc \
src/AirspaceManagement/AirspaceRestriction.cc \
src/AirspaceManagement/AirspaceRestrictionProvider.cc \
src/AirspaceManagement/AirspaceRulesetsProvider.cc \
......@@ -1099,6 +1100,7 @@ contains (DEFINES, QGC_AIRMAP_ENABLED) {
src/Airmap/AirMapTrafficMonitor.h \
src/Airmap/AirMapVehicleManager.h \
src/Airmap/AirmapWeatherInformation.h \
src/Airmap/LifetimeChecker.h \
SOURCES += \
src/Airmap/AirMapFlightManager.cc \
......
......@@ -7,8 +7,10 @@
*
****************************************************************************/
#include "AirMapManager.h"
#include "AirMapFlightManager.h"
#include "AirMapManager.h"
#include "MissionItem.h"
AirMapFlightManager::AirMapFlightManager(AirMapSharedState& shared)
: _shared(shared)
......
......@@ -9,11 +9,11 @@
#pragma once
#include "LifetimeChecker.h"
#include <QObject>
#include <QTimer>
#include "AirMapManager.h"
//-----------------------------------------------------------------------------
/// class to upload a flight
class AirMapFlightManager : public QObject, public LifetimeChecker
......
......@@ -9,32 +9,23 @@
#pragma once
#include "QGCToolbox.h"
#include "AirspaceManager.h"
#include "QGCLoggingCategory.h"
#include "AirspaceManagement.h"
#include "AirMapSharedState.h"
#include <airmap/qt/logger.h>
#include <airmap/qt/types.h>
Q_DECLARE_LOGGING_CATEGORY(AirMapManagerLog)
#include <memory>
//-----------------------------------------------------------------------------
/**
* @class LifetimeChecker
* Base class which helps to check if an object instance still exists.
* A subclass can take a weak pointer from _instance and then check if the object was deleted.
* This is used in callbacks that access 'this', but the instance might already be deleted (e.g. vehicle disconnect).
*/
class LifetimeChecker
{
public:
LifetimeChecker() : _instance(this, [](void*){}) { }
virtual ~LifetimeChecker() = default;
class QGCToolbox;
class AirMapSharedState;
class AirspaceVehicleManager;
class AirspaceRestrictionProvider;
class AirspaceRulesetsProvider;
class AirspaceWeatherInfoProvider;
protected:
std::shared_ptr<LifetimeChecker> _instance;
};
Q_DECLARE_LOGGING_CATEGORY(AirMapManagerLog)
//-----------------------------------------------------------------------------
/**
......
......@@ -9,10 +9,14 @@
#pragma once
#include <QObject>
#include "AirMapManager.h"
#include "LifetimeChecker.h"
#include "AirspaceRestrictionProvider.h"
#include <QList>
#include <QGeoCoordinate>
class AirMapSharedState;
/**
* @file AirMapRestrictionManager.h
* Class to download polygons from AirMap
......
......@@ -9,16 +9,18 @@
#pragma once
#include "LifetimeChecker.h"
#include "AirspaceRulesetsProvider.h"
#include <QGeoCoordinate>
class AirMapSharedState;
/**
* @file AirMapRulesetsManager.h
* Class to download rulesets from AirMap
*/
#include <QObject>
#include "AirMapManager.h"
#include "AirspaceRulesetsProvider.h"
#include "AirMapSharedState.h"
class AirMapRulesetsManager : public AirspaceRulesetsProvider, public LifetimeChecker
{
Q_OBJECT
......
......@@ -8,7 +8,6 @@
****************************************************************************/
#include "AirMapSettings.h"
#include "QGCPalette.h"
#include "QGCApplication.h"
#include <QQmlEngine>
......
......@@ -10,7 +10,6 @@
#pragma once
#include "SettingsGroup.h"
#include "QGCMAVLink.h"
class AirMapSettings : public SettingsGroup
{
......
......@@ -7,8 +7,11 @@
*
****************************************************************************/
#include "AirMapManager.h"
#include "AirMapTelemetry.h"
#include "AirMapSharedState.h"
#include "AirMapManager.h"
#include "QGCMAVLink.h"
AirMapTelemetry::AirMapTelemetry(AirMapSharedState& shared)
: _shared(shared)
......
......@@ -9,8 +9,11 @@
#pragma once
#include "LifetimeChecker.h"
#include <QObject>
#include "AirMapManager.h"
class AirMapSharedState;
/// class to send telemetry data to AirMap
class AirMapTelemetry : public QObject, public LifetimeChecker
......
......@@ -9,8 +9,16 @@
#pragma once
#include "LifetimeChecker.h"
#include <QObject>
#include "AirMapManager.h"
#include <QGeoCoordinate>
#include "airmap/traffic.h"
#include <memory>
class AirMapSharedState;
/**
* @class AirMapTrafficMonitor
......
......@@ -7,11 +7,12 @@
*
****************************************************************************/
#include "AirMapManager.h"
#include "AirMapVehicleManager.h"
#include "AirMapSharedState.h"
#include "AirMapFlightManager.h"
#include "AirMapTelemetry.h"
#include "AirMapTrafficMonitor.h"
#include "AirMapManager.h"
#include "Vehicle.h"
......
......@@ -9,10 +9,11 @@
#pragma once
#include <QObject>
#include "AirspaceManagement.h"
#include "AirspaceManager.h"
#include "AirspaceVehicleManager.h"
#include "QGCToolbox.h"
/// AirMap per vehicle management class.
class AirMapSharedState;
......
......@@ -7,8 +7,9 @@
*
****************************************************************************/
#include "AirMapManager.h"
#include "AirmapWeatherInformation.h"
#include "AirMapSharedState.h"
#include "AirMapManager.h"
#define WEATHER_UPDATE_DISTANCE 50000 //-- 50km threshold for weather updates
#define WEATHER_UPDATE_TIME 30 * 60 * 60 * 1000 //-- 30 minutes threshold for weather updates
......
......@@ -9,13 +9,13 @@
#pragma once
#include <QObject>
#include <QGeoCoordinate>
#include <QTime>
#include "LifetimeChecker.h"
#include "AirMapManager.h"
#include "AirspaceWeatherInfoProvider.h"
#include <QGeoCoordinate>
#include <QTime>
/**
* @file AirMapWeatherInformation.h
* Weather information provided by AirMap.
......@@ -24,7 +24,6 @@
class AirMapWeatherInformation : public AirspaceWeatherInfoProvider, public LifetimeChecker
{
Q_OBJECT
friend class AirMapManager;
public:
AirMapWeatherInformation(AirMapSharedState &shared, QObject *parent = nullptr);
......
/****************************************************************************
*
* (c) 2017 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#pragma once
#include <memory>
//-----------------------------------------------------------------------------
/**
* @class LifetimeChecker
* Base class which helps to check if an object instance still exists.
* A subclass can take a weak pointer from _instance and then check if the object was deleted.
* This is used in callbacks that access 'this', but the instance might already be deleted (e.g. vehicle disconnect).
*/
class LifetimeChecker
{
public:
LifetimeChecker() : _instance(this, [](void*){}) { }
virtual ~LifetimeChecker() = default;
protected:
std::shared_ptr<LifetimeChecker> _instance;
};
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#pragma once
#include <QObject>
//-----------------------------------------------------------------------------
/**
* Contains the status of the Airspace authorization
*/
class AirspaceAuthorization : public QObject {
Q_OBJECT
public:
enum PermitStatus {
PermitUnknown = 0,
PermitPending,
PermitAccepted,
PermitRejected,
};
Q_ENUM(PermitStatus)
};
......@@ -7,11 +7,13 @@
*
****************************************************************************/
#include "AirMapManager.h"
#include "AirspaceController.h"
#include "AirspaceManagement.h"
#include "AirspaceManager.h"
#include "AirspaceWeatherInfoProvider.h"
#include "QGCApplication.h"
#include "QGCQGeoCoordinate.h"
#include "QmlObjectListModel.h"
AirspaceController::AirspaceController(QObject* parent)
: QObject(parent)
......@@ -19,7 +21,32 @@ AirspaceController::AirspaceController(QObject* parent)
{
}
void AirspaceController::setROI(QGeoCoordinate center, double radius)
void
AirspaceController::setROI(QGeoCoordinate center, double radius)
{
_manager->setROI(center, radius);
}
QmlObjectListModel*
AirspaceController::polygons()
{
return _manager->polygonRestrictions();
}
QmlObjectListModel*
AirspaceController::circles()
{
return _manager->circularRestrictions();
}
QString
AirspaceController::providerName()
{
return _manager->name();
}
AirspaceWeatherInfoProvider*
AirspaceController::weatherInfo()
{
return _manager->weatherInfo();
}
......@@ -9,10 +9,11 @@
#pragma once
#include "AirspaceManagement.h"
#include "AirmapWeatherInformation.h"
#include "QmlObjectListModel.h"
#include "QGCMapPolygon.h"
#include <QObject>
class AirspaceManager;
class QmlObjectListModel;
class AirspaceWeatherInfoProvider;
class AirspaceController : public QObject
{
......
......@@ -8,7 +8,14 @@
****************************************************************************/
#include "AirspaceManagement.h"
#include "AirspaceManager.h"
#include "AirspaceWeatherInfoProvider.h"
#include "AirspaceRestrictionProvider.h"
#include "AirspaceRulesetsProvider.h"
#include "Vehicle.h"
#include "QGCApplication.h"
#include "QmlObjectListModel.h"
QGC_LOGGING_CATEGORY(AirspaceManagementLog, "AirspaceManagementLog")
......
......@@ -10,7 +10,7 @@
#pragma once
/**
* @file AirspaceManagement.h
* @file AirspaceManager.h
* This file contains the interface definitions used by an airspace management implementation (AirMap).
* There are 3 base classes that must be subclassed:
* - AirspaceManager
......@@ -23,16 +23,8 @@
* each vehicle could have its own restrictions.
*/
#include "AirspaceController.h"
#include "AirspaceRestrictionProvider.h"
#include "AirspaceRulesetsProvider.h"
#include "AirspaceVehicleManager.h"
#include "AirspaceWeatherInfoProvider.h"
#include "QGCToolbox.h"
#include "QGCLoggingCategory.h"
#include "QmlObjectListModel.h"
#include "Vehicle.h"
#include <QGeoCoordinate>
#include <QObject>
......@@ -40,6 +32,12 @@
#include <QList>
#include <QTimer>
class Vehicle;
class QGCApplication;
class QmlObjectListModel;
class AirspaceWeatherInfoProvider;
class AirspaceRestrictionProvider;
class AirspaceRulesetsProvider;
Q_DECLARE_LOGGING_CATEGORY(AirspaceManagementLog)
......
......@@ -11,6 +11,7 @@
#include <QObject>
#include <QGeoCoordinate>
#include <QVariantList>
/**
* @class AirspaceRestriction
......
......@@ -15,7 +15,10 @@
*/
#include <QObject>
#include "AirspaceRestriction.h"
#include <QList>
class AirspacePolygonRestriction;
class AirspaceCircularRestriction;
class AirspaceRestrictionProvider : public QObject {
Q_OBJECT
......
......@@ -16,7 +16,7 @@
*/
#include <QObject>
#include <QGeoCoordinate.h>
#include <QGeoCoordinate>
class AirspaceRulesetsProvider : public QObject {
Q_OBJECT
......
......@@ -8,13 +8,14 @@
****************************************************************************/
#include "AirspaceManagement.h"
#include <Vehicle.h>
#include "AirspaceManager.h"
#include "Vehicle.h"
#include "MissionItem.h"
AirspaceVehicleManager::AirspaceVehicleManager(const Vehicle& vehicle)
: _vehicle(vehicle)
{
connect(&_vehicle, &Vehicle::armedChanged, this, &AirspaceVehicleManager::_vehicleArmedChanged);
connect(&_vehicle, &Vehicle::armedChanged, this, &AirspaceVehicleManager::_vehicleArmedChanged);
connect(&_vehicle, &Vehicle::mavlinkMessageReceived, this, &AirspaceVehicleManager::vehicleMavlinkMessageReceived);
}
......
......@@ -9,9 +9,14 @@
#pragma once
#include <QList>
#include "MissionItem.h"
#include "AirspaceAuthorization.h"
#include "QGCMAVLink.h"
#include <QObject>
#include <QList>
#include <QGeoCoordinate>
class MissionItem;
class Vehicle;
//-----------------------------------------------------------------------------
......
......@@ -14,7 +14,7 @@
#include <QGeoCoordinate>
#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceManagement.h"
#include "AirspaceManager.h"
#endif
#include "QGCLoggingCategory.h"
......
......@@ -21,7 +21,7 @@
#include "UASMessageHandler.h"
#include "SettingsFact.h"
#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceManagement.h"
#include "AirspaceManager.h"
#include "AirspaceVehicleManager.h"
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment