Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
5c9a3ca8
Commit
5c9a3ca8
authored
Jan 25, 2018
by
Gus Grubba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Yet some more
parent
fc74866c
Changes
28
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
186 additions
and
71 deletions
+186
-71
qgroundcontrol.pro
qgroundcontrol.pro
+4
-2
AirMapFlightManager.cc
src/Airmap/AirMapFlightManager.cc
+3
-1
AirMapFlightManager.h
src/Airmap/AirMapFlightManager.h
+2
-2
AirMapManager.h
src/Airmap/AirMapManager.h
+10
-19
AirMapRestrictionManager.h
src/Airmap/AirMapRestrictionManager.h
+6
-2
AirMapRulesetsManager.h
src/Airmap/AirMapRulesetsManager.h
+7
-5
AirMapSettings.cc
src/Airmap/AirMapSettings.cc
+0
-1
AirMapSettings.h
src/Airmap/AirMapSettings.h
+0
-1
AirMapTelemetry.cc
src/Airmap/AirMapTelemetry.cc
+4
-1
AirMapTelemetry.h
src/Airmap/AirMapTelemetry.h
+4
-1
AirMapTrafficMonitor.h
src/Airmap/AirMapTrafficMonitor.h
+9
-1
AirMapVehicleManager.cc
src/Airmap/AirMapVehicleManager.cc
+2
-1
AirMapVehicleManager.h
src/Airmap/AirMapVehicleManager.h
+3
-2
AirmapWeatherInformation.cc
src/Airmap/AirmapWeatherInformation.cc
+2
-1
AirmapWeatherInformation.h
src/Airmap/AirmapWeatherInformation.h
+4
-5
LifetimeChecker.h
src/Airmap/LifetimeChecker.h
+29
-0
AirspaceAuthorization.h
src/AirspaceManagement/AirspaceAuthorization.h
+28
-0
AirspaceController.cc
src/AirspaceManagement/AirspaceController.cc
+30
-3
AirspaceController.h
src/AirspaceManagement/AirspaceController.h
+5
-4
AirspaceManager.cc
src/AirspaceManagement/AirspaceManager.cc
+8
-1
AirspaceManager.h
src/AirspaceManagement/AirspaceManager.h
+7
-9
AirspaceRestriction.h
src/AirspaceManagement/AirspaceRestriction.h
+1
-0
AirspaceRestrictionProvider.h
src/AirspaceManagement/AirspaceRestrictionProvider.h
+4
-1
AirspaceRulesetsProvider.h
src/AirspaceManagement/AirspaceRulesetsProvider.h
+1
-1
AirspaceVehicleManager.cc
src/AirspaceManagement/AirspaceVehicleManager.cc
+4
-3
AirspaceVehicleManager.h
src/AirspaceManagement/AirspaceVehicleManager.h
+7
-2
GeoFenceManager.h
src/MissionManager/GeoFenceManager.h
+1
-1
Vehicle.h
src/Vehicle/Vehicle.h
+1
-1
No files found.
qgroundcontrol.pro
View file @
5c9a3ca8
...
...
@@ -1064,8 +1064,9 @@ contains (DEFINES, QGC_AIRMAP_ENABLED) {
src
/
AirspaceManagement
HEADERS
+=
\
src
/
AirspaceManagement
/
AirspaceAuthorization
.
h
\
src
/
AirspaceManagement
/
AirspaceController
.
h
\
src
/
AirspaceManagement
/
AirspaceManage
ment
.
h
\
src
/
AirspaceManagement
/
AirspaceManage
r
.
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
/
AirspaceManage
ment
.
cc
\
src
/
AirspaceManagement
/
AirspaceManage
r
.
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
\
...
...
src/Airmap/AirMapFlightManager.cc
View file @
5c9a3ca8
...
...
@@ -7,8 +7,10 @@
*
****************************************************************************/
#include "AirMapManager.h"
#include "AirMapFlightManager.h"
#include "AirMapManager.h"
#include "MissionItem.h"
AirMapFlightManager
::
AirMapFlightManager
(
AirMapSharedState
&
shared
)
:
_shared
(
shared
)
...
...
src/Airmap/AirMapFlightManager.h
View file @
5c9a3ca8
...
...
@@ -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
...
...
src/Airmap/AirMapManager.h
View file @
5c9a3ca8
...
...
@@ -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
)
//-----------------------------------------------------------------------------
/**
...
...
src/Airmap/AirMapRestrictionManager.h
View file @
5c9a3ca8
...
...
@@ -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
...
...
src/Airmap/AirMapRulesetsManager.h
View file @
5c9a3ca8
...
...
@@ -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
...
...
src/Airmap/AirMapSettings.cc
View file @
5c9a3ca8
...
...
@@ -8,7 +8,6 @@
****************************************************************************/
#include "AirMapSettings.h"
#include "QGCPalette.h"
#include "QGCApplication.h"
#include <QQmlEngine>
...
...
src/Airmap/AirMapSettings.h
View file @
5c9a3ca8
...
...
@@ -10,7 +10,6 @@
#pragma once
#include "SettingsGroup.h"
#include "QGCMAVLink.h"
class
AirMapSettings
:
public
SettingsGroup
{
...
...
src/Airmap/AirMapTelemetry.cc
View file @
5c9a3ca8
...
...
@@ -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
)
...
...
src/Airmap/AirMapTelemetry.h
View file @
5c9a3ca8
...
...
@@ -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
...
...
src/Airmap/AirMapTrafficMonitor.h
View file @
5c9a3ca8
...
...
@@ -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
...
...
src/Airmap/AirMapVehicleManager.cc
View file @
5c9a3ca8
...
...
@@ -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"
...
...
src/Airmap/AirMapVehicleManager.h
View file @
5c9a3ca8
...
...
@@ -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
;
...
...
src/Airmap/AirmapWeatherInformation.cc
View file @
5c9a3ca8
...
...
@@ -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
...
...
src/Airmap/AirmapWeatherInformation.h
View file @
5c9a3ca8
...
...
@@ -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
);
...
...
src/Airmap/LifetimeChecker.h
0 → 100644
View file @
5c9a3ca8
/****************************************************************************
*
* (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
;
};
src/AirspaceManagement/AirspaceAuthorization.h
0 → 100644
View file @
5c9a3ca8
/****************************************************************************
*
* (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
)
};
src/AirspaceManagement/AirspaceController.cc
View file @
5c9a3ca8
...
...
@@ -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
();
}
src/AirspaceManagement/AirspaceController.h
View file @
5c9a3ca8
...
...
@@ -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
{
...
...
src/AirspaceManagement/AirspaceManage
ment
.cc
→
src/AirspaceManagement/AirspaceManage
r
.cc
View file @
5c9a3ca8
...
...
@@ -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"
)
...
...
src/AirspaceManagement/AirspaceManage
ment
.h
→
src/AirspaceManagement/AirspaceManage
r
.h
View file @
5c9a3ca8
...
...
@@ -10,7 +10,7 @@
#pragma once
/**
* @file AirspaceManage
ment
.h
* @file AirspaceManage
r
.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
)
...
...
src/AirspaceManagement/AirspaceRestriction.h
View file @
5c9a3ca8
...
...
@@ -11,6 +11,7 @@
#include <QObject>
#include <QGeoCoordinate>
#include <QVariantList>
/**
* @class AirspaceRestriction
...
...
src/AirspaceManagement/AirspaceRestrictionProvider.h
View file @
5c9a3ca8
...
...
@@ -15,7 +15,10 @@
*/
#include <QObject>
#include "AirspaceRestriction.h"
#include <QList>
class
AirspacePolygonRestriction
;
class
AirspaceCircularRestriction
;
class
AirspaceRestrictionProvider
:
public
QObject
{
Q_OBJECT
...
...
src/AirspaceManagement/AirspaceRulesetsProvider.h
View file @
5c9a3ca8
...
...
@@ -16,7 +16,7 @@
*/
#include <QObject>
#include <QGeoCoordinate
.h
>
#include <QGeoCoordinate>
class
AirspaceRulesetsProvider
:
public
QObject
{
Q_OBJECT
...
...
src/AirspaceManagement/AirspaceVehicleManager.cc
View file @
5c9a3ca8
...
...
@@ -8,8 +8,9 @@
****************************************************************************/
#include "AirspaceManagement.h"
#include <Vehicle.h>
#include "AirspaceManager.h"
#include "Vehicle.h"
#include "MissionItem.h"
AirspaceVehicleManager
::
AirspaceVehicleManager
(
const
Vehicle
&
vehicle
)
:
_vehicle
(
vehicle
)
...
...
src/AirspaceManagement/AirspaceVehicleManager.h
View file @
5c9a3ca8
...
...
@@ -9,9 +9,14 @@
#pragma once
#include "AirspaceAuthorization.h"
#include "QGCMAVLink.h"
#include <QObject>
#include <QList>
#include
"MissionItem.h"
#include
<QGeoCoordinate>
class
MissionItem
;
class
Vehicle
;
//-----------------------------------------------------------------------------
...
...
src/MissionManager/GeoFenceManager.h
View file @
5c9a3ca8
...
...
@@ -14,7 +14,7 @@
#include <QGeoCoordinate>
#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceManage
ment
.h"
#include "AirspaceManage
r
.h"
#endif
#include "QGCLoggingCategory.h"
...
...
src/Vehicle/Vehicle.h
View file @
5c9a3ca8
...
...
@@ -21,7 +21,7 @@
#include "UASMessageHandler.h"
#include "SettingsFact.h"
#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceManage
ment
.h"
#include "AirspaceManage
r
.h"
#include "AirspaceVehicleManager.h"
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment