From 703c7d41a1b798660f1b7e0f3369f2be84146589 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sun, 14 May 2017 15:54:13 -0700 Subject: [PATCH] Alt slider min/max from settings --- src/Settings/Guided.SettingsGroup.json | 26 ++++++++++ src/Settings/GuidedSettings.cc | 67 ++++++++++++++++++++++++++ src/Settings/GuidedSettings.h | 48 ++++++++++++++++++ src/Settings/SettingsManager.cc | 14 +++--- src/Settings/SettingsManager.h | 6 ++- 5 files changed, 154 insertions(+), 7 deletions(-) create mode 100644 src/Settings/Guided.SettingsGroup.json create mode 100644 src/Settings/GuidedSettings.cc create mode 100644 src/Settings/GuidedSettings.h diff --git a/src/Settings/Guided.SettingsGroup.json b/src/Settings/Guided.SettingsGroup.json new file mode 100644 index 000000000..f1e827081 --- /dev/null +++ b/src/Settings/Guided.SettingsGroup.json @@ -0,0 +1,26 @@ +[ +{ + "name": "FixedWingMinimumAltitude", + "type": "double", + "units": "m", + "defaultValue": 10 +}, +{ + "name": "FixedWingMaximumAltitude", + "type": "double", + "units": "m", + "defaultValue": 121.92 +}, +{ + "name": "VehicleMinimumAltitude", + "type": "double", + "units": "m", + "defaultValue": 2 +}, +{ + "name": "VehicleMaximumAltitude", + "type": "double", + "units": "m", + "defaultValue": 121.92 +} +] diff --git a/src/Settings/GuidedSettings.cc b/src/Settings/GuidedSettings.cc new file mode 100644 index 000000000..3aa93e2af --- /dev/null +++ b/src/Settings/GuidedSettings.cc @@ -0,0 +1,67 @@ +/**************************************************************************** + * + * (c) 2009-2016 QGROUNDCONTROL PROJECT + * + * QGroundControl is licensed according to the terms in the file + * COPYING.md in the root of the source code directory. + * + ****************************************************************************/ + +#include "GuidedSettings.h" +#include "QGCPalette.h" +#include "QGCApplication.h" + +#include +#include +#include + +const char* GuidedSettings::guidedSettingsGroupName = "Guided"; +const char* GuidedSettings::fixedWingMinimumAltitudeName = "FixedWingMinimumAltitude"; +const char* GuidedSettings::fixedWingMaximumAltitudeName = "FixedWingMaximumAltitude"; +const char* GuidedSettings::vehicleMinimumAltitudeName = "VehicleMinimumAltitude"; +const char* GuidedSettings::vehicleMaximumAltitudeName = "VehicleMaximumAltitude"; + +GuidedSettings::GuidedSettings(QObject* parent) + : SettingsGroup(guidedSettingsGroupName, QString() /* root settings group */, parent) + , _fixedWingMinimumAltitudeFact (NULL) + , _fixedWingMaximumAltitudeFact (NULL) + , _vehicleMinimumAltitudeFact (NULL) + , _vehicleMaximumAltitudeFact (NULL) +{ + QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); + qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "GuidedSettings", "Reference only"); +} + +Fact* GuidedSettings::fixedWingMinimumAltitude(void) +{ + if (!_fixedWingMinimumAltitudeFact) { + _fixedWingMinimumAltitudeFact = _createSettingsFact(fixedWingMinimumAltitudeName); + } + + return _fixedWingMinimumAltitudeFact; +} + +Fact* GuidedSettings::fixedWingMaximumAltitude(void) +{ + if (!_fixedWingMaximumAltitudeFact) { + _fixedWingMaximumAltitudeFact = _createSettingsFact(fixedWingMaximumAltitudeName); + } + + return _fixedWingMaximumAltitudeFact; +} + +Fact* GuidedSettings::vehicleMinimumAltitude(void) +{ + if (!_vehicleMinimumAltitudeFact) { + _vehicleMinimumAltitudeFact = _createSettingsFact(vehicleMinimumAltitudeName); + } + return _vehicleMinimumAltitudeFact; +} + +Fact* GuidedSettings::vehicleMaximumAltitude(void) +{ + if (!_vehicleMaximumAltitudeFact) { + _vehicleMaximumAltitudeFact = _createSettingsFact(vehicleMaximumAltitudeName); + } + return _vehicleMaximumAltitudeFact; +} diff --git a/src/Settings/GuidedSettings.h b/src/Settings/GuidedSettings.h new file mode 100644 index 000000000..bc6b29de0 --- /dev/null +++ b/src/Settings/GuidedSettings.h @@ -0,0 +1,48 @@ +/**************************************************************************** + * + * (c) 2009-2016 QGROUNDCONTROL PROJECT + * + * QGroundControl is licensed according to the terms in the file + * COPYING.md in the root of the source code directory. + * + ****************************************************************************/ + +#ifndef GuidedSettings_H +#define GuidedSettings_H + +#include "SettingsGroup.h" +#include "QGCMAVLink.h" + +class GuidedSettings : public SettingsGroup +{ + Q_OBJECT + +public: + GuidedSettings(QObject* parent = NULL); + + // These min/max altitudes are used by the guided altitude slider + Q_PROPERTY(Fact* fixedWingMinimumAltitude READ fixedWingMinimumAltitude CONSTANT) + Q_PROPERTY(Fact* fixedWingMaximumAltitude READ fixedWingMaximumAltitude CONSTANT) + Q_PROPERTY(Fact* vehicleMinimumAltitude READ vehicleMinimumAltitude CONSTANT) + Q_PROPERTY(Fact* vehicleMaximumAltitude READ vehicleMaximumAltitude CONSTANT) + + Fact* fixedWingMinimumAltitude (void); + Fact* fixedWingMaximumAltitude (void); + Fact* vehicleMinimumAltitude (void); + Fact* vehicleMaximumAltitude (void); + + static const char* guidedSettingsGroupName; + + static const char* fixedWingMinimumAltitudeName; + static const char* fixedWingMaximumAltitudeName; + static const char* vehicleMinimumAltitudeName; + static const char* vehicleMaximumAltitudeName; + +private: + SettingsFact* _fixedWingMinimumAltitudeFact; + SettingsFact* _fixedWingMaximumAltitudeFact; + SettingsFact* _vehicleMinimumAltitudeFact; + SettingsFact* _vehicleMaximumAltitudeFact; +}; + +#endif diff --git a/src/Settings/SettingsManager.cc b/src/Settings/SettingsManager.cc index 0f3608dda..d2e8e10cb 100644 --- a/src/Settings/SettingsManager.cc +++ b/src/Settings/SettingsManager.cc @@ -14,12 +14,13 @@ SettingsManager::SettingsManager(QGCApplication* app, QGCToolbox* toolbox) : QGCTool(app, toolbox) - , _appSettings(NULL) - , _unitsSettings(NULL) - , _autoConnectSettings(NULL) - , _videoSettings(NULL) - , _flightMapSettings(NULL) - , _rtkSettings(NULL) + , _appSettings (NULL) + , _unitsSettings (NULL) + , _autoConnectSettings (NULL) + , _videoSettings (NULL) + , _flightMapSettings (NULL) + , _rtkSettings (NULL) + , _guidedSettings (NULL) { } @@ -36,4 +37,5 @@ void SettingsManager::setToolbox(QGCToolbox *toolbox) _videoSettings = new VideoSettings(this); _flightMapSettings = new FlightMapSettings(this); _rtkSettings = new RTKSettings(this); + _guidedSettings = new GuidedSettings(this); } diff --git a/src/Settings/SettingsManager.h b/src/Settings/SettingsManager.h index 05b09930d..c38cd725c 100644 --- a/src/Settings/SettingsManager.h +++ b/src/Settings/SettingsManager.h @@ -20,6 +20,7 @@ #include "VideoSettings.h" #include "FlightMapSettings.h" #include "RTKSettings.h" +#include "GuidedSettings.h" #include @@ -36,7 +37,8 @@ public: Q_PROPERTY(QObject* autoConnectSettings READ autoConnectSettings CONSTANT) Q_PROPERTY(QObject* videoSettings READ videoSettings CONSTANT) Q_PROPERTY(QObject* flightMapSettings READ flightMapSettings CONSTANT) - Q_PROPERTY(QObject* rtkSettings READ rtkSettings CONSTANT) + Q_PROPERTY(QObject* rtkSettings READ rtkSettings CONSTANT) + Q_PROPERTY(QObject* guidedSettings READ guidedSettings CONSTANT) // Override from QGCTool virtual void setToolbox(QGCToolbox *toolbox); @@ -47,6 +49,7 @@ public: VideoSettings* videoSettings (void) { return _videoSettings; } FlightMapSettings* flightMapSettings (void) { return _flightMapSettings; } RTKSettings* rtkSettings (void) { return _rtkSettings; } + GuidedSettings* guidedSettings (void) { return _guidedSettings; } private: AppSettings* _appSettings; @@ -55,6 +58,7 @@ private: VideoSettings* _videoSettings; FlightMapSettings* _flightMapSettings; RTKSettings* _rtkSettings; + GuidedSettings* _guidedSettings; }; #endif -- 2.22.0