diff --git a/QGCExternalLibs.pri b/QGCExternalLibs.pri
index 7d47a982ac0bf81f2f251a88c0c1ed1f8e8814a0..651e40d028bb630a46fdda76c3189be009833bdd 100644
--- a/QGCExternalLibs.pri
+++ b/QGCExternalLibs.pri
@@ -130,9 +130,11 @@ contains (DEFINES, DISABLE_ZEROCONF) {
#
contains (DEFINES, DISABLE_AIRMAP) {
message("Skipping support for AirMap (manual override from command line)")
+ DEFINES -= QGC_AIRMAP_ENABLED
# Otherwise the user can still disable this feature in the user_config.pri file.
} else:exists(user_config.pri):infile(user_config.pri, DEFINES, DISABLE_AIRMAP) {
message("Skipping support for AirMap (manual override from user_config.pri)")
+ DEFINES -= QGC_AIRMAP_ENABLED
} else {
AIRMAPD_PATH = $$PWD/libs/airmapd
INCLUDEPATH += \
diff --git a/qgcresources.qrc b/qgcresources.qrc
index 019dfa2f5e31804feaca780d04b4028b89fd2707..496b4e3077e5b1c9c72546a281870c36a33cbb50 100644
--- a/qgcresources.qrc
+++ b/qgcresources.qrc
@@ -172,13 +172,6 @@
src/FirmwarePlugin/APM/APMBrandImageSub.png
src/FirmwarePlugin/PX4/PX4BrandImage.png
src/FlightMap/Images/sub.png
- src/Airmap/images/advisory-icon.svg
-
-
- src/Airmap/images/advisory-icon.svg
- src/Airmap/images/colapse.svg
- src/Airmap/images/expand.svg
- src/Airmap/images/pencil.svg
resources/action.svg
diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro
index 7c9f0fe8f6a4ce2e577f8d4ed1076b99342bab64..e856f8c360e7c640ae80386fc1299940efc6cd19 100644
--- a/qgroundcontrol.pro
+++ b/qgroundcontrol.pro
@@ -505,9 +505,6 @@ HEADERS += \
src/LogCompressor.h \
src/MG.h \
src/MissionManager/CameraCalc.h \
- src/MissionManager/AirspaceController.h \
- src/MissionManager/AirMapManager.h \
- src/MissionManager/AirspaceManagement.h \
src/MissionManager/CameraSection.h \
src/MissionManager/CameraSpec.h \
src/MissionManager/ComplexMissionItem.h \
@@ -567,7 +564,6 @@ HEADERS += \
src/QmlControls/RCChannelMonitorController.h \
src/QmlControls/ScreenToolsController.h \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
- src/Settings/AirMapSettings.h \
src/Settings/AppSettings.h \
src/Settings/AutoConnectSettings.h \
src/Settings/BrandImageSettings.h \
@@ -594,6 +590,7 @@ HEADERS += \
src/uas/UASMessageHandler.h \
src/UTM.h \
+
AndroidBuild {
HEADERS += \
src/Joystick/JoystickAndroid.h \
@@ -701,9 +698,6 @@ SOURCES += \
src/JsonHelper.cc \
src/LogCompressor.cc \
src/MissionManager/CameraCalc.cc \
- src/MissionManager/AirspaceController.cc \
- src/MissionManager/AirMapManager.cc \
- src/MissionManager/AirspaceManagement.cc \
src/MissionManager/CameraSection.cc \
src/MissionManager/CameraSpec.cc \
src/MissionManager/ComplexMissionItem.cc \
@@ -760,7 +754,6 @@ SOURCES += \
src/QmlControls/RCChannelMonitorController.cc \
src/QmlControls/ScreenToolsController.cc \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
- src/Settings/AirMapSettings.cc \
src/Settings/AppSettings.cc \
src/Settings/AutoConnectSettings.cc \
src/Settings/BrandImageSettings.cc \
@@ -1061,6 +1054,29 @@ SOURCES += \
src/FactSystem/ParameterManager.cc \
src/FactSystem/SettingsFact.cc \
+#-------------------------------------------------------------------------------------
+# AirMap
+
+contains (DEFINES, QGC_AIRMAP_ENABLED) {
+ RESOURCES += \
+ src/Airmap/airmap.qrc
+
+ INCLUDEPATH += \
+ src/Airmap
+
+ HEADERS += \
+ src/Airmap/AirspaceController.h \
+ src/Airmap/AirMapManager.h \
+ src/Airmap/AirspaceManagement.h \
+ src/Airmap/AirMapSettings.h
+
+ SOURCES += \
+ src/Airmap/AirMapManager.cc \
+ src/Airmap/AirspaceManagement.cc \
+ src/Airmap/AirspaceController.cc \
+ src/Airmap/AirMapSettings.cc
+}
+
#-------------------------------------------------------------------------------------
# Video Streaming
diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc
index 9d399d646731ae4dc731a81912a0de94f18a3873..366817258be621af4112dfb5b2c4aab8ac277cb6 100644
--- a/qgroundcontrol.qrc
+++ b/qgroundcontrol.qrc
@@ -15,10 +15,6 @@
src/ui/toolbar/JoystickIndicator.qml
- src/Airmap/QGroundControl.Airmap.qmldir
- src/Airmap/AirspaceControl.qml
- src/Airmap/AirspaceRegulation.qml
- src/Airmap/AirmapSettings.qml
src/AnalyzeView/AnalyzeView.qml
src/ui/AppSettings.qml
src/ui/preferences/BluetoothSettings.qml
@@ -199,7 +195,6 @@
src/MissionManager/MavCmdInfoRover.json
src/MissionManager/MavCmdInfoSub.json
src/MissionManager/MavCmdInfoVTOL.json
- src/Settings/AirMap.SettingsGroup.json
src/Settings/App.SettingsGroup.json
src/Settings/AutoConnect.SettingsGroup.json
src/Settings/FlightMap.SettingsGroup.json
diff --git a/src/Settings/AirMap.SettingsGroup.json b/src/Airmap/AirMap.SettingsGroup.json
similarity index 100%
rename from src/Settings/AirMap.SettingsGroup.json
rename to src/Airmap/AirMap.SettingsGroup.json
diff --git a/src/MissionManager/AirMapManager.cc b/src/Airmap/AirMapManager.cc
similarity index 100%
rename from src/MissionManager/AirMapManager.cc
rename to src/Airmap/AirMapManager.cc
diff --git a/src/MissionManager/AirMapManager.h b/src/Airmap/AirMapManager.h
similarity index 100%
rename from src/MissionManager/AirMapManager.h
rename to src/Airmap/AirMapManager.h
diff --git a/src/Settings/AirMapSettings.cc b/src/Airmap/AirMapSettings.cc
similarity index 100%
rename from src/Settings/AirMapSettings.cc
rename to src/Airmap/AirMapSettings.cc
diff --git a/src/Settings/AirMapSettings.h b/src/Airmap/AirMapSettings.h
similarity index 100%
rename from src/Settings/AirMapSettings.h
rename to src/Airmap/AirMapSettings.h
diff --git a/src/MissionManager/AirspaceController.cc b/src/Airmap/AirspaceController.cc
similarity index 100%
rename from src/MissionManager/AirspaceController.cc
rename to src/Airmap/AirspaceController.cc
diff --git a/src/MissionManager/AirspaceController.h b/src/Airmap/AirspaceController.h
similarity index 100%
rename from src/MissionManager/AirspaceController.h
rename to src/Airmap/AirspaceController.h
diff --git a/src/MissionManager/AirspaceManagement.cc b/src/Airmap/AirspaceManagement.cc
similarity index 100%
rename from src/MissionManager/AirspaceManagement.cc
rename to src/Airmap/AirspaceManagement.cc
diff --git a/src/MissionManager/AirspaceManagement.h b/src/Airmap/AirspaceManagement.h
similarity index 100%
rename from src/MissionManager/AirspaceManagement.h
rename to src/Airmap/AirspaceManagement.h
diff --git a/src/Airmap/airmap.qrc b/src/Airmap/airmap.qrc
new file mode 100644
index 0000000000000000000000000000000000000000..5130d4e9b8022eb61d6a19c923fc3d4314609b55
--- /dev/null
+++ b/src/Airmap/airmap.qrc
@@ -0,0 +1,17 @@
+
+
+ QGroundControl.Airmap.qmldir
+ AirspaceControl.qml
+ AirspaceRegulation.qml
+ AirmapSettings.qml
+
+
+ AirMap.SettingsGroup.json
+
+
+ images/advisory-icon.svg
+ images/colapse.svg
+ images/expand.svg
+ images/pencil.svg
+
+
diff --git a/src/FlightDisplay/FlightDisplayView.qml b/src/FlightDisplay/FlightDisplayView.qml
index 3542909f1d4d7e9315d00c669ec263db001b91fa..d860fc31d21e4dd611f96fb9112723a06b1475da 100644
--- a/src/FlightDisplay/FlightDisplayView.qml
+++ b/src/FlightDisplay/FlightDisplayView.qml
@@ -633,7 +633,7 @@ QGCView {
width: airspaceRow.width + (ScreenTools.defaultFontPixelWidth * 3)
height: airspaceRow.height * 1.25
color: qgcPal.globalTheme === QGCPalette.Light ? Qt.rgba(1,1,1,0.95) : Qt.rgba(0,0,0,0.75)
- visible: _mainIsMap && flightPermit && flightPermit !== AirspaceAuthorization.PermitUnknown && !messageArea.visible && !criticalMmessageArea.visible
+ visible: QGroundControl.airmapSupported && _mainIsMap && flightPermit && flightPermit !== AirspaceAuthorization.PermitUnknown && !messageArea.visible && !criticalMmessageArea.visible
radius: 3
border.width: 1
border.color: qgcPal.globalTheme === QGCPalette.Light ? Qt.rgba(0,0,0,0.35) : Qt.rgba(1,1,1,0.35)
@@ -669,8 +669,8 @@ QGCView {
anchors.verticalCenter: parent.verticalCenter;
}
}
- property var flightPermit: _activeVehicle ? _activeVehicle.flightPermitStatus : null
- property var providerName: _activeVehicle ? _activeVehicle.airspaceController.providerName : ""
+ property var flightPermit: (QGroundControl.airmapSupported && _activeVehicle) ? _activeVehicle.flightPermitStatus : null
+ property var providerName: _activeVehicle ? _activeVehicle.airspaceController.providerName : ""
}
}
diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml
index 281d78967fb20769f02004cd185a0cc6237e7b6b..87ecb3daa81194b3f8e996dc5c604d59c0eb6f6b 100644
--- a/src/FlightDisplay/FlightDisplayViewMap.qml
+++ b/src/FlightDisplay/FlightDisplayViewMap.qml
@@ -58,7 +58,7 @@ FlightMap {
// Track last known map position and zoom from Fly view in settings
onZoomLevelChanged: QGroundControl.flightMapZoom = zoomLevel
onCenterChanged: {
- if(_activeVehicle) {
+ if(_activeVehicle && QGroundControl.airmapSupported) {
_activeVehicle.airspaceController.setROI(center, 5000)
}
QGroundControl.flightMapPosition = center
@@ -331,7 +331,7 @@ FlightMap {
// Airspace overlap support
MapItemView {
- model: _activeVehicle ? _activeVehicle.airspaceController.circles : []
+ model: QGroundControl.airmapSupported && _activeVehicle ? _activeVehicle.airspaceController.circles : []
delegate: MapCircle {
center: object.center
radius: object.radius
@@ -342,7 +342,7 @@ FlightMap {
}
MapItemView {
- model: _activeVehicle ? _activeVehicle.airspaceController.polygons : []
+ model: QGroundControl.airmapSupported && _activeVehicle ? _activeVehicle.airspaceController.polygons : []
delegate: MapPolygon {
border.color: "white"
color: "yellow"
diff --git a/src/MissionManager/GeoFenceManager.cc b/src/MissionManager/GeoFenceManager.cc
index ddda1d1bd6567777a964e79564d9be14d860f729..05ce7ae5473d02ff67cdcfedb656b3d339da8960 100644
--- a/src/MissionManager/GeoFenceManager.cc
+++ b/src/MissionManager/GeoFenceManager.cc
@@ -21,7 +21,9 @@ GeoFenceManager::GeoFenceManager(Vehicle* vehicle)
: _vehicle (vehicle)
, _planManager (vehicle, MAV_MISSION_TYPE_FENCE)
, _firstParamLoadComplete (false)
+#if defined(QGC_AIRMAP_ENABLED)
, _airspaceManager (qgcApp()->toolbox()->airspaceManager())
+#endif
{
connect(&_planManager, &PlanManager::inProgressChanged, this, &GeoFenceManager::inProgressChanged);
connect(&_planManager, &PlanManager::error, this, &GeoFenceManager::error);
diff --git a/src/MissionManager/GeoFenceManager.h b/src/MissionManager/GeoFenceManager.h
index 26ec69d968f7c8ef525fb4249ab1766a27694c6e..9c7bdd58db4d86861272ca0c375f130883b97a77 100644
--- a/src/MissionManager/GeoFenceManager.h
+++ b/src/MissionManager/GeoFenceManager.h
@@ -13,7 +13,10 @@
#include
#include
+#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceManagement.h"
+#endif
+
#include "QGCLoggingCategory.h"
#include "FactSystem.h"
#include "PlanManager.h"
@@ -97,7 +100,9 @@ private:
bool _firstParamLoadComplete;
QList _sendPolygons;
QList _sendCircles;
+#if defined(QGC_AIRMAP_ENABLED)
AirspaceManager* _airspaceManager;
+#endif
};
#endif
diff --git a/src/MissionManager/PlanManager.cc b/src/MissionManager/PlanManager.cc
index c73286c8765543241c17fd2a2276e55a25e2fc55..e90ebbd14676453fb3836ee83507ec3da951a04a 100644
--- a/src/MissionManager/PlanManager.cc
+++ b/src/MissionManager/PlanManager.cc
@@ -79,11 +79,13 @@ void PlanManager::writeMissionItems(const QList& missionItems)
}
if (_planType == MAV_MISSION_TYPE_MISSION) {
+#if defined(QGC_AIRMAP_ENABLED)
// upload the flight to the airspace management backend
AirspaceManagerPerVehicle* airspaceManager = _vehicle->airspaceManager();
if (airspaceManager) {
airspaceManager->createFlight(missionItems);
}
+#endif
}
_clearAndDeleteWriteMissionItems();
diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc
index 832fadb429dd23c997c75332dee2fb5c1960c66c..f97a037b6d2a120970de55f2a0bc13295b40ef64 100644
--- a/src/QGCApplication.cc
+++ b/src/QGCApplication.cc
@@ -84,8 +84,9 @@
#include "CameraCalc.h"
#include "VisualMissionItem.h"
#include "EditPositionDialogController.h"
+#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceController.h"
-
+#endif
#ifndef NO_SERIAL_LINK
#include "SerialLink.h"
#endif
@@ -374,7 +375,6 @@ void QGCApplication::_initCommon(void)
qmlRegisterUncreatableType ("QGroundControl.Vehicle", 1, 0, "ParameterManager", "Reference only");
qmlRegisterUncreatableType ("QGroundControl.Vehicle", 1, 0, "QGCCameraManager", "Reference only");
qmlRegisterUncreatableType ("QGroundControl.Vehicle", 1, 0, "QGCCameraControl", "Reference only");
- qmlRegisterUncreatableType ("QGroundControl.Vehicle", 1, 0, "AirspaceController", "Reference only");
qmlRegisterUncreatableType ("QGroundControl.JoystickManager", 1, 0, "JoystickManager", "Reference only");
qmlRegisterUncreatableType ("QGroundControl.JoystickManager", 1, 0, "Joystick", "Reference only");
qmlRegisterUncreatableType ("QGroundControl.QGCPositionManager", 1, 0, "QGCPositionManager", "Reference only");
@@ -383,6 +383,9 @@ void QGCApplication::_initCommon(void)
qmlRegisterUncreatableType ("QGroundControl.Controllers", 1, 0, "GeoFenceController", "Reference only");
qmlRegisterUncreatableType("QGroundControl.Controllers", 1, 0, "RallyPointController", "Reference only");
qmlRegisterUncreatableType ("QGroundControl.Controllers", 1, 0, "VisualMissionItem", "Reference only");
+#if defined(QGC_AIRMAP_ENABLED)
+ qmlRegisterUncreatableType ("QGroundControl.Vehicle", 1, 0, "AirspaceController", "Reference only");
+#endif
qmlRegisterType ("QGroundControl.Controllers", 1, 0, "ParameterEditorController");
qmlRegisterType ("QGroundControl.Controllers", 1, 0, "ESP8266ComponentController");
diff --git a/src/QGCToolbox.cc b/src/QGCToolbox.cc
index 94d5795a31f304ceed27249573972a8536a722b0..bdf944b4703ed9e3800594f7cfa10bbc8890ff6c 100644
--- a/src/QGCToolbox.cc
+++ b/src/QGCToolbox.cc
@@ -30,7 +30,9 @@
#include "QGCOptions.h"
#include "SettingsManager.h"
#include "QGCApplication.h"
+#if defined(QGC_AIRMAP_ENABLED)
#include "AirMapManager.h"
+#endif
#if defined(QGC_CUSTOM_BUILD)
#include CUSTOMHEADER
@@ -57,7 +59,9 @@ QGCToolbox::QGCToolbox(QGCApplication* app)
, _mavlinkLogManager (NULL)
, _corePlugin (NULL)
, _settingsManager (NULL)
+#if defined(QGC_AIRMAP_ENABLED)
, _airspaceManager (NULL)
+#endif
{
// SettingsManager must be first so settings are available to any subsequent tools
_settingsManager = new SettingsManager(app, this);
@@ -82,7 +86,9 @@ QGCToolbox::QGCToolbox(QGCApplication* app)
_followMe = new FollowMe (app, this);
_videoManager = new VideoManager (app, this);
_mavlinkLogManager = new MAVLinkLogManager (app, this);
+#if defined(QGC_AIRMAP_ENABLED)
_airspaceManager = new AirMapManager (app, this);
+#endif
}
void QGCToolbox::setChildToolboxes(void)
@@ -109,7 +115,9 @@ void QGCToolbox::setChildToolboxes(void)
_qgcPositionManager->setToolbox(this);
_videoManager->setToolbox(this);
_mavlinkLogManager->setToolbox(this);
+#if defined(QGC_AIRMAP_ENABLED)
_airspaceManager->setToolbox(this);
+#endif
}
void QGCToolbox::_scanAndLoadPlugins(QGCApplication* app)
diff --git a/src/QGCToolbox.h b/src/QGCToolbox.h
index 5ece9befe85c08d488cf656586c6e4e668ab3462..ab197987a1e70e33afb7c0f14f7ebae01b311cf5 100644
--- a/src/QGCToolbox.h
+++ b/src/QGCToolbox.h
@@ -32,7 +32,9 @@ class VideoManager;
class MAVLinkLogManager;
class QGCCorePlugin;
class SettingsManager;
+#if defined(QGC_AIRMAP_ENABLED)
class AirspaceManager;
+#endif
/// This is used to manage all of our top level services/tools
class QGCToolbox : public QObject {
@@ -57,8 +59,9 @@ public:
MAVLinkLogManager* mavlinkLogManager(void) { return _mavlinkLogManager; }
QGCCorePlugin* corePlugin(void) { return _corePlugin; }
SettingsManager* settingsManager(void) { return _settingsManager; }
+#if defined(QGC_AIRMAP_ENABLED)
AirspaceManager* airspaceManager(void) { return _airspaceManager; }
-
+#endif
#ifndef __mobile__
GPSManager* gpsManager(void) { return _gpsManager; }
#endif
@@ -88,8 +91,9 @@ private:
MAVLinkLogManager* _mavlinkLogManager;
QGCCorePlugin* _corePlugin;
SettingsManager* _settingsManager;
+#if defined(QGC_AIRMAP_ENABLED)
AirspaceManager* _airspaceManager;
-
+#endif
friend class QGCApplication;
};
diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h
index 3f0fd2a5c28987ead2480fcf856ad313ac07de3a..54af5a14f2905d6dd240c1b64bd6e7ef753d7d79 100644
--- a/src/QmlControls/QGroundControlQmlGlobal.h
+++ b/src/QmlControls/QGroundControlQmlGlobal.h
@@ -53,6 +53,7 @@ public:
Q_PROPERTY(QGCCorePlugin* corePlugin READ corePlugin CONSTANT)
Q_PROPERTY(SettingsManager* settingsManager READ settingsManager CONSTANT)
Q_PROPERTY(FactGroup* gpsRtk READ gpsRtkFactGroup CONSTANT)
+ Q_PROPERTY(bool airmapSupported READ airmapSupported CONSTANT)
Q_PROPERTY(int supportedFirmwareCount READ supportedFirmwareCount CONSTANT)
@@ -171,6 +172,11 @@ public:
QString qgcVersion(void) const { return qgcApp()->applicationVersion(); }
+#if defined(QGC_AIRMAP_ENABLED)
+ bool airmapSupported() { return true; }
+#else
+ bool airmapSupported() { return false; }
+#endif
// Overrides from QGCTool
virtual void setToolbox(QGCToolbox* toolbox);
diff --git a/src/Settings/SettingsManager.cc b/src/Settings/SettingsManager.cc
index b7d6a127bb6b4129139d6a906fb73a63c3c72421..d002b491137b857237e4978bc10ef54a4542dc35 100644
--- a/src/Settings/SettingsManager.cc
+++ b/src/Settings/SettingsManager.cc
@@ -14,7 +14,9 @@
SettingsManager::SettingsManager(QGCApplication* app, QGCToolbox* toolbox)
: QGCTool(app, toolbox)
+#if defined(QGC_AIRMAP_ENABLED)
, _airMapSettings (NULL)
+#endif
, _appSettings (NULL)
, _unitsSettings (NULL)
, _autoConnectSettings (NULL)
@@ -41,5 +43,7 @@ void SettingsManager::setToolbox(QGCToolbox *toolbox)
_rtkSettings = new RTKSettings(this);
_guidedSettings = new GuidedSettings(this);
_brandImageSettings = new BrandImageSettings(this);
+#if defined(QGC_AIRMAP_ENABLED)
_airMapSettings = new AirMapSettings(this);
+#endif
}
diff --git a/src/Settings/SettingsManager.h b/src/Settings/SettingsManager.h
index bba1104e797b27294960d98488f696be7d8875b9..5ee29a188bed3927523bbda8de4a14949f68aab0 100644
--- a/src/Settings/SettingsManager.h
+++ b/src/Settings/SettingsManager.h
@@ -22,8 +22,9 @@
#include "RTKSettings.h"
#include "GuidedSettings.h"
#include "BrandImageSettings.h"
+#if defined(QGC_AIRMAP_ENABLED)
#include "AirMapSettings.h"
-
+#endif
#include
/// Provides access to all app settings
@@ -34,7 +35,9 @@ class SettingsManager : public QGCTool
public:
SettingsManager(QGCApplication* app, QGCToolbox* toolbox);
+#if defined(QGC_AIRMAP_ENABLED)
Q_PROPERTY(QObject* airMapSettings READ airMapSettings CONSTANT)
+#endif
Q_PROPERTY(QObject* appSettings READ appSettings CONSTANT)
Q_PROPERTY(QObject* unitsSettings READ unitsSettings CONSTANT)
Q_PROPERTY(QObject* autoConnectSettings READ autoConnectSettings CONSTANT)
@@ -47,7 +50,9 @@ public:
// Override from QGCTool
virtual void setToolbox(QGCToolbox *toolbox);
+#if defined(QGC_AIRMAP_ENABLED)
AirMapSettings* airMapSettings (void) { return _airMapSettings; }
+#endif
AppSettings* appSettings (void) { return _appSettings; }
UnitsSettings* unitsSettings (void) { return _unitsSettings; }
AutoConnectSettings* autoConnectSettings (void) { return _autoConnectSettings; }
@@ -58,7 +63,9 @@ public:
BrandImageSettings* brandImageSettings (void) { return _brandImageSettings; }
private:
+#if defined(QGC_AIRMAP_ENABLED)
AirMapSettings* _airMapSettings;
+#endif
AppSettings* _appSettings;
UnitsSettings* _unitsSettings;
AutoConnectSettings* _autoConnectSettings;
diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc
index de687093d7491d7f24d229aea27e5f187c5e4f5c..c0dcc7ef9609446bd8c2deaf45d988d60d8244dd 100644
--- a/src/Vehicle/Vehicle.cc
+++ b/src/Vehicle/Vehicle.cc
@@ -38,8 +38,9 @@
#include "QGCCameraManager.h"
#include "VideoReceiver.h"
#include "VideoManager.h"
+#if defined(QGC_AIRMAP_ENABLED)
#include "AirspaceController.h"
-
+#endif
QGC_LOGGING_CATEGORY(VehicleLog, "VehicleLog")
#define UPDATE_TIMER 50
@@ -140,8 +141,10 @@ Vehicle::Vehicle(LinkInterface* link,
, _rallyPointManager(NULL)
, _rallyPointManagerInitialRequestSent(false)
, _parameterManager(NULL)
+#if defined(QGC_AIRMAP_ENABLED)
, _airspaceController(NULL)
, _airspaceManagerPerVehicle(NULL)
+#endif
, _armed(false)
, _base_mode(0)
, _custom_mode(0)
@@ -265,8 +268,8 @@ Vehicle::Vehicle(LinkInterface* link,
_adsbTimer.setSingleShot(false);
_adsbTimer.start(1000);
+#if defined(QGC_AIRMAP_ENABLED)
_airspaceController = new AirspaceController(this);
-
AirspaceManager* airspaceManager = _toolbox->airspaceManager();
if (airspaceManager) {
_airspaceManagerPerVehicle = airspaceManager->instantiateVehicle(*this);
@@ -275,7 +278,7 @@ Vehicle::Vehicle(LinkInterface* link,
connect(_airspaceManagerPerVehicle, &AirspaceManagerPerVehicle::flightPermitStatusChanged, this, &Vehicle::flightPermitStatusChanged);
}
}
-
+#endif
}
// Disconnected Vehicle for offline editing
@@ -336,8 +339,10 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType,
, _rallyPointManager(NULL)
, _rallyPointManagerInitialRequestSent(false)
, _parameterManager(NULL)
+#if defined(QGC_AIRMAP_ENABLED)
, _airspaceController(NULL)
, _airspaceManagerPerVehicle(NULL)
+#endif
, _armed(false)
, _base_mode(0)
, _custom_mode(0)
@@ -471,9 +476,11 @@ Vehicle::~Vehicle()
delete _mav;
_mav = NULL;
+#if defined(QGC_AIRMAP_ENABLED)
if (_airspaceManagerPerVehicle) {
delete _airspaceManagerPerVehicle;
}
+#endif
}
void Vehicle::prepareDelete()
diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h
index e1225e2cd897ce041453240662e9c17120fd873a..2f1f94568419997416614c90f6027186fd7d45d7 100644
--- a/src/Vehicle/Vehicle.h
+++ b/src/Vehicle/Vehicle.h
@@ -20,7 +20,9 @@
#include "MAVLinkProtocol.h"
#include "UASMessageHandler.h"
#include "SettingsFact.h"
+#if defined(QGC_AIRMAP_ENABLED)
#include
+#endif
class UAS;
class UASInterface;
@@ -36,7 +38,9 @@ class UASMessage;
class SettingsManager;
class ADSBVehicle;
class QGCCameraManager;
+#if defined(QGC_AIRMAP_ENABLED)
class AirspaceController;
+#endif
Q_DECLARE_LOGGING_CATEGORY(VehicleLog)
@@ -355,9 +359,10 @@ public:
Q_PROPERTY(QString hobbsMeter READ hobbsMeter NOTIFY hobbsMeterChanged)
Q_PROPERTY(bool vtolInFwdFlight READ vtolInFwdFlight WRITE setVtolInFwdFlight NOTIFY vtolInFwdFlightChanged)
Q_PROPERTY(bool highLatencyLink READ highLatencyLink NOTIFY highLatencyLinkChanged)
+#if defined(QGC_AIRMAP_ENABLED)
Q_PROPERTY(AirspaceAuthorization::PermitStatus flightPermitStatus READ flightPermitStatus NOTIFY flightPermitStatusChanged) ///< state of flight permission
Q_PROPERTY(AirspaceController* airspaceController READ airspaceController CONSTANT)
-
+#endif
// Vehicle state used for guided control
Q_PROPERTY(bool flying READ flying NOTIFY flyingChanged) ///< Vehicle is flying
Q_PROPERTY(bool landing READ landing NOTIFY landingChanged) ///< Vehicle is in landing pattern (DO_LAND_START)
@@ -576,8 +581,9 @@ public:
QmlObjectListModel* cameraTriggerPoints(void) { return &_cameraTriggerPoints; }
QmlObjectListModel* adsbVehicles(void) { return &_adsbVehicles; }
+#if defined(QGC_AIRMAP_ENABLED)
AirspaceController* airspaceController() { return _airspaceController; }
-
+#endif
int flowImageIndex() { return _flowImageIndex; }
//-- Mavlink Logging
@@ -761,10 +767,12 @@ public:
/// Vehicle is about to be deleted
void prepareDelete();
+#if defined(QGC_AIRMAP_ENABLED)
AirspaceAuthorization::PermitStatus flightPermitStatus() const
{ return _airspaceManagerPerVehicle ? _airspaceManagerPerVehicle->flightPermitStatus() : AirspaceAuthorization::PermitUnknown; }
AirspaceManagerPerVehicle* airspaceManager() const { return _airspaceManagerPerVehicle; }
+#endif
signals:
void allLinksInactive(Vehicle* vehicle);
@@ -800,8 +808,9 @@ signals:
void capabilityBitsChanged(uint64_t capabilityBits);
void toolBarIndicatorsChanged(void);
void highLatencyLinkChanged(bool highLatencyLink);
+#if defined(QGC_AIRMAP_ENABLED)
void flightPermitStatusChanged();
-
+#endif
void messagesReceivedChanged ();
void messagesSentChanged ();
@@ -1055,8 +1064,10 @@ private:
ParameterManager* _parameterManager;
+#if defined(QGC_AIRMAP_ENABLED)
AirspaceController* _airspaceController;
AirspaceManagerPerVehicle* _airspaceManagerPerVehicle;
+#endif
bool _armed; ///< true: vehicle is armed
uint8_t _base_mode; ///< base_mode from HEARTBEAT