From f55279d99c2fc25f04ee8b8363b47d0ccc60c183 Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Sat, 20 Jan 2018 23:27:11 -0500 Subject: [PATCH] WIP Making it possible to have a build without Airmap Move all airmap related stuff to its own directory --- QGCExternalLibs.pri | 2 ++ qgcresources.qrc | 7 ---- qgroundcontrol.pro | 32 ++++++++++++++----- qgroundcontrol.qrc | 5 --- .../AirMap.SettingsGroup.json | 0 .../AirMapManager.cc | 0 .../AirMapManager.h | 0 src/{Settings => Airmap}/AirMapSettings.cc | 0 src/{Settings => Airmap}/AirMapSettings.h | 0 .../AirspaceController.cc | 0 .../AirspaceController.h | 0 .../AirspaceManagement.cc | 0 .../AirspaceManagement.h | 0 src/Airmap/airmap.qrc | 17 ++++++++++ src/FlightDisplay/FlightDisplayView.qml | 6 ++-- src/FlightDisplay/FlightDisplayViewMap.qml | 6 ++-- src/MissionManager/GeoFenceManager.cc | 2 ++ src/MissionManager/GeoFenceManager.h | 5 +++ src/MissionManager/PlanManager.cc | 2 ++ src/QGCApplication.cc | 7 ++-- src/QGCToolbox.cc | 8 +++++ src/QGCToolbox.h | 8 +++-- src/QmlControls/QGroundControlQmlGlobal.h | 6 ++++ src/Settings/SettingsManager.cc | 4 +++ src/Settings/SettingsManager.h | 9 +++++- src/Vehicle/Vehicle.cc | 13 ++++++-- src/Vehicle/Vehicle.h | 17 ++++++++-- 27 files changed, 119 insertions(+), 37 deletions(-) rename src/{Settings => Airmap}/AirMap.SettingsGroup.json (100%) rename src/{MissionManager => Airmap}/AirMapManager.cc (100%) rename src/{MissionManager => Airmap}/AirMapManager.h (100%) rename src/{Settings => Airmap}/AirMapSettings.cc (100%) rename src/{Settings => Airmap}/AirMapSettings.h (100%) rename src/{MissionManager => Airmap}/AirspaceController.cc (100%) rename src/{MissionManager => Airmap}/AirspaceController.h (100%) rename src/{MissionManager => Airmap}/AirspaceManagement.cc (100%) rename src/{MissionManager => Airmap}/AirspaceManagement.h (100%) create mode 100644 src/Airmap/airmap.qrc diff --git a/QGCExternalLibs.pri b/QGCExternalLibs.pri index 7d47a982a..651e40d02 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 019dfa2f5..496b4e307 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 7c9f0fe8f..e856f8c36 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 9d399d646..366817258 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 000000000..5130d4e9b --- /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 3542909f1..d860fc31d 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 281d78967..87ecb3daa 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 ddda1d1bd..05ce7ae54 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 26ec69d96..9c7bdd58d 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 c73286c87..e90ebbd14 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 832fadb42..f97a037b6 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 94d5795a3..bdf944b47 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 5ece9befe..ab197987a 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 3f0fd2a5c..54af5a14f 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 b7d6a127b..d002b4911 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 bba1104e7..5ee29a188 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 de687093d..c0dcc7ef9 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 e1225e2cd..2f1f94568 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 -- 2.22.0