diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index 2e0d9c4..8b79685 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -250,7 +250,13 @@ FORMS += src/ui/MainWindow.ui \ src/ui/configuration/OpticalFlowConfig.ui \ src/ui/configuration/OsdConfig.ui \ src/ui/configuration/AntennaTrackerConfig.ui \ - src/ui/configuration/CameraGimbalConfig.ui + src/ui/configuration/CameraGimbalConfig.ui \ + src/ui/configuration/BasicPidConfig.ui \ + src/ui/configuration/StandardParamConfig.ui \ + src/ui/configuration/GeoFenceConfig.ui \ + src/ui/configuration/FailSafeConfig.ui \ + src/ui/configuration/AdvancedParamConfig.ui \ + src/ui/configuration/ArduCopterPidConfig.ui INCLUDEPATH += src \ src/ui \ src/ui/linechart \ @@ -425,7 +431,13 @@ HEADERS += src/MG.h \ src/ui/configuration/OsdConfig.h \ src/ui/configuration/AntennaTrackerConfig.h \ src/ui/configuration/CameraGimbalConfig.h \ - src/ui/configuration/AP2ConfigWidget.h + src/ui/configuration/AP2ConfigWidget.h \ + src/ui/configuration/BasicPidConfig.h \ + src/ui/configuration/StandardParamConfig.h \ + src/ui/configuration/GeoFenceConfig.h \ + src/ui/configuration/FailSafeConfig.h \ + src/ui/configuration/AdvancedParamConfig.h \ + src/ui/configuration/ArduCopterPidConfig.h # Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::HEADERS += src/ui/map3D/QGCGoogleEarthView.h @@ -618,7 +630,13 @@ SOURCES += src/main.cc \ src/ui/configuration/OsdConfig.cc \ src/ui/configuration/AntennaTrackerConfig.cc \ src/ui/configuration/CameraGimbalConfig.cc \ - src/ui/configuration/AP2ConfigWidget.cc + src/ui/configuration/AP2ConfigWidget.cc \ + src/ui/configuration/BasicPidConfig.cc \ + src/ui/configuration/StandardParamConfig.cc \ + src/ui/configuration/GeoFenceConfig.cc \ + src/ui/configuration/FailSafeConfig.cc \ + src/ui/configuration/AdvancedParamConfig.cc \ + src/ui/configuration/ArduCopterPidConfig.cc # Enable Google Earth only on Mac OS and Windows with Visual Studio compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc diff --git a/src/ui/configuration/AdvancedParamConfig.cc b/src/ui/configuration/AdvancedParamConfig.cc new file mode 100644 index 0000000..4ab92e0 --- /dev/null +++ b/src/ui/configuration/AdvancedParamConfig.cc @@ -0,0 +1,11 @@ +#include "AdvancedParamConfig.h" + + +AdvancedParamConfig::AdvancedParamConfig(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); +} + +AdvancedParamConfig::~AdvancedParamConfig() +{ +} diff --git a/src/ui/configuration/AdvancedParamConfig.h b/src/ui/configuration/AdvancedParamConfig.h new file mode 100644 index 0000000..5cf8b9f --- /dev/null +++ b/src/ui/configuration/AdvancedParamConfig.h @@ -0,0 +1,19 @@ +#ifndef ADVANCEDPARAMCONFIG_H +#define ADVANCEDPARAMCONFIG_H + +#include +#include "ui_AdvancedParamConfig.h" + +class AdvancedParamConfig : public QWidget +{ + Q_OBJECT + +public: + explicit AdvancedParamConfig(QWidget *parent = 0); + ~AdvancedParamConfig(); + +private: + Ui::AdvancedParamConfig ui; +}; + +#endif // ADVANCEDPARAMCONFIG_H diff --git a/src/ui/configuration/AdvancedParamConfig.ui b/src/ui/configuration/AdvancedParamConfig.ui new file mode 100644 index 0000000..d49c182 --- /dev/null +++ b/src/ui/configuration/AdvancedParamConfig.ui @@ -0,0 +1,32 @@ + + + AdvancedParamConfig + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 10 + 10 + 181 + 31 + + + + <h2>Advanced Params</h2> + + + + + + diff --git a/src/ui/configuration/ApmHardwareConfig.cc b/src/ui/configuration/ApmHardwareConfig.cc index 909db3a..07c28f1 100644 --- a/src/ui/configuration/ApmHardwareConfig.cc +++ b/src/ui/configuration/ApmHardwareConfig.cc @@ -40,7 +40,6 @@ ApmHardwareConfig::ApmHardwareConfig(QWidget *parent) : QWidget(parent) ui.compassButton->setVisible(false); ui.accelCalibrateButton->setVisible(false); ui.radioCalibrateButton->setVisible(false); - ui.flightModesButton->setVisible(false); ui.optionalHardwareButton->setVisible(false); //ui.radio3DRButton->setVisible(false); ui.batteryMonitorButton->setVisible(false); @@ -55,7 +54,6 @@ ApmHardwareConfig::ApmHardwareConfig(QWidget *parent) : QWidget(parent) connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.compassButton,SLOT(setShown(bool))); connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.accelCalibrateButton,SLOT(setShown(bool))); connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.radioCalibrateButton,SLOT(setShown(bool))); - connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.flightModesButton,SLOT(setShown(bool))); connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.radio3DRButton,SLOT(setShown(bool))); connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.batteryMonitorButton,SLOT(setShown(bool))); @@ -94,10 +92,6 @@ ApmHardwareConfig::ApmHardwareConfig(QWidget *parent) : QWidget(parent) buttonToConfigWidgetMap[ui.radioCalibrateButton] = radioConfig; connect(ui.radioCalibrateButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); - flightConfig = new FlightModeConfig(this); - ui.stackedWidget->addWidget(flightConfig); - buttonToConfigWidgetMap[ui.flightModesButton] = flightConfig; - connect(ui.flightModesButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); radio3drConfig = new Radio3DRConfig(this); ui.stackedWidget->addWidget(radio3drConfig); diff --git a/src/ui/configuration/ApmHardwareConfig.h b/src/ui/configuration/ApmHardwareConfig.h index 8a2beac..e21fe05 100644 --- a/src/ui/configuration/ApmHardwareConfig.h +++ b/src/ui/configuration/ApmHardwareConfig.h @@ -40,7 +40,6 @@ This file is part of the QGROUNDCONTROL project #include "CompassConfig.h" #include "AccelCalibrationConfig.h" #include "RadioCalibrationConfig.h" -#include "FlightModeConfig.h" #include "Radio3DRConfig.h" #include "BatteryMonitorConfig.h" #include "SonarConfig.h" @@ -62,7 +61,6 @@ private: CompassConfig *compassConfig; AccelCalibrationConfig *accelConfig; RadioCalibrationConfig *radioConfig; - FlightModeConfig *flightConfig; Radio3DRConfig *radio3drConfig; BatteryMonitorConfig *batteryConfig; diff --git a/src/ui/configuration/ApmHardwareConfig.ui b/src/ui/configuration/ApmHardwareConfig.ui index bb3818e..1a514ed 100644 --- a/src/ui/configuration/ApmHardwareConfig.ui +++ b/src/ui/configuration/ApmHardwareConfig.ui @@ -43,7 +43,7 @@ 0 0 156 - 676 + 635 @@ -155,22 +155,6 @@ - - - - 0 - 35 - - - - Flight Modes - - - false - - - - diff --git a/src/ui/configuration/ApmSoftwareConfig.cc b/src/ui/configuration/ApmSoftwareConfig.cc index f8ae035..cfecf5d 100644 --- a/src/ui/configuration/ApmSoftwareConfig.cc +++ b/src/ui/configuration/ApmSoftwareConfig.cc @@ -4,8 +4,82 @@ ApmSoftwareConfig::ApmSoftwareConfig(QWidget *parent) : QWidget(parent) { ui.setupUi(this); + + ui.basicPidsButton->setVisible(false); + ui.flightModesButton->setVisible(false); + ui.standardParamButton->setVisible(false); + ui.geoFenceButton->setVisible(false); + ui.failSafeButton->setVisible(false); + ui.advancedParamButton->setVisible(false); + ui.advParamListButton->setVisible(false); + ui.arduCoperPidButton->setVisible(false); + + basicPidConfig = new BasicPidConfig(this); + ui.stackedWidget->addWidget(basicPidConfig); + buttonToConfigWidgetMap[ui.basicPidsButton] = basicPidConfig; + connect(ui.basicPidsButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + flightConfig = new FlightModeConfig(this); + ui.stackedWidget->addWidget(flightConfig); + buttonToConfigWidgetMap[ui.flightModesButton] = flightConfig; + connect(ui.flightModesButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + standardParamConfig = new StandardParamConfig(this); + ui.stackedWidget->addWidget(standardParamConfig); + buttonToConfigWidgetMap[ui.standardParamButton] = standardParamConfig; + connect(ui.standardParamButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + geoFenceConfig = new GeoFenceConfig(this); + ui.stackedWidget->addWidget(geoFenceConfig); + buttonToConfigWidgetMap[ui.geoFenceButton] = geoFenceConfig; + connect(ui.geoFenceButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + failSafeConfig = new FailSafeConfig(this); + ui.stackedWidget->addWidget(failSafeConfig); + buttonToConfigWidgetMap[ui.failSafeButton] = failSafeConfig; + connect(ui.failSafeButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + advancedParamConfig = new AdvancedParamConfig(this); + ui.stackedWidget->addWidget(advancedParamConfig); + buttonToConfigWidgetMap[ui.advancedParamButton] = advancedParamConfig; + connect(ui.advancedParamButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + arduCoperPidConfig = new ArduCopterPidConfig(this); + ui.stackedWidget->addWidget(arduCoperPidConfig); + buttonToConfigWidgetMap[ui.arduCoperPidButton] = arduCoperPidConfig; + connect(ui.arduCoperPidButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget())); + + connect(UASManager::instance(),SIGNAL(activeUASSet(UASInterface*)),this,SLOT(activeUASSet(UASInterface*))); + if (UASManager::instance()->getActiveUAS()) + { + activeUASSet(UASManager::instance()->getActiveUAS()); + } } ApmSoftwareConfig::~ApmSoftwareConfig() { } +void ApmSoftwareConfig::activateStackedWidget() +{ + if (buttonToConfigWidgetMap.contains(sender())) + { + ui.stackedWidget->setCurrentWidget(buttonToConfigWidgetMap[sender()]); + } +} +void ApmSoftwareConfig::activeUASSet(UASInterface *uas) +{ + if (!uas) + { + return; + } + + ui.basicPidsButton->setVisible(true); + ui.flightModesButton->setVisible(true); + ui.standardParamButton->setVisible(true); + ui.geoFenceButton->setVisible(true); + ui.failSafeButton->setVisible(true); + ui.advancedParamButton->setVisible(true); + ui.advParamListButton->setVisible(true); + + ui.arduCoperPidButton->setVisible(true); +} diff --git a/src/ui/configuration/ApmSoftwareConfig.h b/src/ui/configuration/ApmSoftwareConfig.h index 35eabfd..c28d366 100644 --- a/src/ui/configuration/ApmSoftwareConfig.h +++ b/src/ui/configuration/ApmSoftwareConfig.h @@ -3,6 +3,16 @@ #include #include "ui_ApmSoftwareConfig.h" +#include "FlightModeConfig.h" +#include "BasicPidConfig.h" +#include "StandardParamConfig.h" +#include "GeoFenceConfig.h" +#include "FailSafeConfig.h" +#include "AdvancedParamConfig.h" +#include "ArduCopterPidConfig.h" + +#include "UASInterface.h" +#include "UASManager.h" class ApmSoftwareConfig : public QWidget { @@ -11,9 +21,19 @@ class ApmSoftwareConfig : public QWidget public: explicit ApmSoftwareConfig(QWidget *parent = 0); ~ApmSoftwareConfig(); - +private slots: + void activateStackedWidget(); + void activeUASSet(UASInterface *uas); private: Ui::ApmSoftwareConfig ui; + BasicPidConfig *basicPidConfig; + FlightModeConfig *flightConfig; + StandardParamConfig *standardParamConfig; + GeoFenceConfig *geoFenceConfig; + FailSafeConfig *failSafeConfig; + AdvancedParamConfig *advancedParamConfig; + ArduCopterPidConfig *arduCoperPidConfig; + QMap buttonToConfigWidgetMap; }; #endif // APMSOFTWARECONFIG_H diff --git a/src/ui/configuration/ApmSoftwareConfig.ui b/src/ui/configuration/ApmSoftwareConfig.ui index 0132c2f..ab26e10 100644 --- a/src/ui/configuration/ApmSoftwareConfig.ui +++ b/src/ui/configuration/ApmSoftwareConfig.ui @@ -66,6 +66,134 @@ + + + + 0 + 35 + + + + Basic Pids + + + false + + + + + + + + 0 + 35 + + + + Flight Modes + + + false + + + + + + + + 0 + 35 + + + + Standard Params + + + false + + + + + + + + 0 + 35 + + + + GeoFence + + + false + + + + + + + + 0 + 35 + + + + FailSafe + + + false + + + + + + + + 0 + 35 + + + + Advanced Params + + + false + + + + + + + + 0 + 35 + + + + Adv Parameter List + + + false + + + + + + + + 0 + 35 + + + + ArduCoper Pids + + + false + + + + Qt::Vertical diff --git a/src/ui/configuration/ArduCopterPidConfig.cc b/src/ui/configuration/ArduCopterPidConfig.cc new file mode 100644 index 0000000..1674ae2 --- /dev/null +++ b/src/ui/configuration/ArduCopterPidConfig.cc @@ -0,0 +1,14 @@ +#include "ArduCopterPidConfig.h" +#include "ui_ArduCopterPidConfig.h" + +ArduCopterPidConfig::ArduCopterPidConfig(QWidget *parent) : + QWidget(parent), + ui(new Ui::ArduCopterPidConfig) +{ + ui->setupUi(this); +} + +ArduCopterPidConfig::~ArduCopterPidConfig() +{ + delete ui; +} diff --git a/src/ui/configuration/ArduCopterPidConfig.h b/src/ui/configuration/ArduCopterPidConfig.h new file mode 100644 index 0000000..6f7eae7 --- /dev/null +++ b/src/ui/configuration/ArduCopterPidConfig.h @@ -0,0 +1,22 @@ +#ifndef ARDUCOPTERPIDCONFIG_H +#define ARDUCOPTERPIDCONFIG_H + +#include + +namespace Ui { +class ArduCopterPidConfig; +} + +class ArduCopterPidConfig : public QWidget +{ + Q_OBJECT + +public: + explicit ArduCopterPidConfig(QWidget *parent = 0); + ~ArduCopterPidConfig(); + +private: + Ui::ArduCopterPidConfig *ui; +}; + +#endif // ARDUCOPTERPIDCONFIG_H diff --git a/src/ui/configuration/ArduCopterPidConfig.ui b/src/ui/configuration/ArduCopterPidConfig.ui new file mode 100644 index 0000000..a472f6a --- /dev/null +++ b/src/ui/configuration/ArduCopterPidConfig.ui @@ -0,0 +1,32 @@ + + + ArduCopterPidConfig + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 20 + 10 + 181 + 51 + + + + <h2>ArduCopter Pids</h2> + + + + + + diff --git a/src/ui/configuration/BasicPidConfig.cc b/src/ui/configuration/BasicPidConfig.cc new file mode 100644 index 0000000..938940e --- /dev/null +++ b/src/ui/configuration/BasicPidConfig.cc @@ -0,0 +1,11 @@ +#include "BasicPidConfig.h" + + +BasicPidConfig::BasicPidConfig(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); +} + +BasicPidConfig::~BasicPidConfig() +{ +} diff --git a/src/ui/configuration/BasicPidConfig.h b/src/ui/configuration/BasicPidConfig.h new file mode 100644 index 0000000..3129239 --- /dev/null +++ b/src/ui/configuration/BasicPidConfig.h @@ -0,0 +1,19 @@ +#ifndef BASICPIDCONFIG_H +#define BASICPIDCONFIG_H + +#include +#include "ui_BasicPidConfig.h" + +class BasicPidConfig : public QWidget +{ + Q_OBJECT + +public: + explicit BasicPidConfig(QWidget *parent = 0); + ~BasicPidConfig(); + +private: + Ui::BasicPidConfig ui; +}; + +#endif // BASICPIDCONFIG_H diff --git a/src/ui/configuration/BasicPidConfig.ui b/src/ui/configuration/BasicPidConfig.ui new file mode 100644 index 0000000..4be479c --- /dev/null +++ b/src/ui/configuration/BasicPidConfig.ui @@ -0,0 +1,32 @@ + + + BasicPidConfig + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 30 + 20 + 141 + 31 + + + + <h2> Basic Pids</h2> + + + + + + diff --git a/src/ui/configuration/FailSafeConfig.cc b/src/ui/configuration/FailSafeConfig.cc new file mode 100644 index 0000000..5f7ff81 --- /dev/null +++ b/src/ui/configuration/FailSafeConfig.cc @@ -0,0 +1,11 @@ +#include "FailSafeConfig.h" + + +FailSafeConfig::FailSafeConfig(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); +} + +FailSafeConfig::~FailSafeConfig() +{ +} diff --git a/src/ui/configuration/FailSafeConfig.h b/src/ui/configuration/FailSafeConfig.h new file mode 100644 index 0000000..a22e964 --- /dev/null +++ b/src/ui/configuration/FailSafeConfig.h @@ -0,0 +1,19 @@ +#ifndef FAILSAFECONFIG_H +#define FAILSAFECONFIG_H + +#include +#include "ui_FailSafeConfig.h" + +class FailSafeConfig : public QWidget +{ + Q_OBJECT + +public: + explicit FailSafeConfig(QWidget *parent = 0); + ~FailSafeConfig(); + +private: + Ui::FailSafeConfig ui; +}; + +#endif // FAILSAFECONFIG_H diff --git a/src/ui/configuration/FailSafeConfig.ui b/src/ui/configuration/FailSafeConfig.ui new file mode 100644 index 0000000..fe4eef1 --- /dev/null +++ b/src/ui/configuration/FailSafeConfig.ui @@ -0,0 +1,32 @@ + + + FailSafeConfig + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 20 + 20 + 141 + 31 + + + + <h2>Fail Safe</h2> + + + + + + diff --git a/src/ui/configuration/GeoFenceConfig.cc b/src/ui/configuration/GeoFenceConfig.cc new file mode 100644 index 0000000..ea01a4b --- /dev/null +++ b/src/ui/configuration/GeoFenceConfig.cc @@ -0,0 +1,11 @@ +#include "GeoFenceConfig.h" + + +GeoFenceConfig::GeoFenceConfig(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); +} + +GeoFenceConfig::~GeoFenceConfig() +{ +} diff --git a/src/ui/configuration/GeoFenceConfig.h b/src/ui/configuration/GeoFenceConfig.h new file mode 100644 index 0000000..7162434 --- /dev/null +++ b/src/ui/configuration/GeoFenceConfig.h @@ -0,0 +1,19 @@ +#ifndef GEOFENCECONFIG_H +#define GEOFENCECONFIG_H + +#include +#include "ui_GeoFenceConfig.h" + +class GeoFenceConfig : public QWidget +{ + Q_OBJECT + +public: + explicit GeoFenceConfig(QWidget *parent = 0); + ~GeoFenceConfig(); + +private: + Ui::GeoFenceConfig ui; +}; + +#endif // GEOFENCECONFIG_H diff --git a/src/ui/configuration/GeoFenceConfig.ui b/src/ui/configuration/GeoFenceConfig.ui new file mode 100644 index 0000000..b51ea2e --- /dev/null +++ b/src/ui/configuration/GeoFenceConfig.ui @@ -0,0 +1,32 @@ + + + GeoFenceConfig + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 20 + 20 + 141 + 51 + + + + <h2>Geo Fence</h2> + + + + + + diff --git a/src/ui/configuration/StandardParamConfig.cc b/src/ui/configuration/StandardParamConfig.cc new file mode 100644 index 0000000..d67891b --- /dev/null +++ b/src/ui/configuration/StandardParamConfig.cc @@ -0,0 +1,11 @@ +#include "StandardParamConfig.h" + + +StandardParamConfig::StandardParamConfig(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); +} + +StandardParamConfig::~StandardParamConfig() +{ +} diff --git a/src/ui/configuration/StandardParamConfig.h b/src/ui/configuration/StandardParamConfig.h new file mode 100644 index 0000000..9e43a9b --- /dev/null +++ b/src/ui/configuration/StandardParamConfig.h @@ -0,0 +1,19 @@ +#ifndef STANDARDPARAMCONFIG_H +#define STANDARDPARAMCONFIG_H + +#include +#include "ui_StandardParamConfig.h" + +class StandardParamConfig : public QWidget +{ + Q_OBJECT + +public: + explicit StandardParamConfig(QWidget *parent = 0); + ~StandardParamConfig(); + +private: + Ui::StandardParamConfig ui; +}; + +#endif // STANDARDPARAMCONFIG_H diff --git a/src/ui/configuration/StandardParamConfig.ui b/src/ui/configuration/StandardParamConfig.ui new file mode 100644 index 0000000..cdbb320 --- /dev/null +++ b/src/ui/configuration/StandardParamConfig.ui @@ -0,0 +1,32 @@ + + + StandardParamConfig + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 20 + 20 + 201 + 41 + + + + <h2>Standard Params</h2> + + + + + +