diff --git a/ground/openpilotgcs/src/plugins/config/airframe_fixedwing.ui b/ground/openpilotgcs/src/plugins/config/airframe_fixedwing.ui
index 176b5daca..200e1496a 100644
--- a/ground/openpilotgcs/src/plugins/config/airframe_fixedwing.ui
+++ b/ground/openpilotgcs/src/plugins/config/airframe_fixedwing.ui
@@ -14,19 +14,22 @@
Form
-
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
0
-
-
-
-
-
- 0
- 0
-
-
+
75
@@ -34,17 +37,9 @@
- Airplane type:
+ Airframe Type:
-
-
-
- 0
- 0
-
-
-
-
@@ -64,6 +59,16 @@
+ -
+
+
+
+ 0
+ 0
+
+
+
+
-
@@ -475,9 +480,7 @@ margin:1px;
1
-
-
-
+
elevonSlider1
diff --git a/ground/openpilotgcs/src/plugins/config/airframe_multirotor.ui b/ground/openpilotgcs/src/plugins/config/airframe_multirotor.ui
index f740d7df3..8d20353cd 100644
--- a/ground/openpilotgcs/src/plugins/config/airframe_multirotor.ui
+++ b/ground/openpilotgcs/src/plugins/config/airframe_multirotor.ui
@@ -14,7 +14,16 @@
Form
-
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
0
-
@@ -32,10 +41,19 @@
- Frame
+ Airframe
-
+
+ 9
+
+
+ 9
+
+
+ 9
+
+
9
-
@@ -90,7 +108,16 @@
Throttle Curve
-
+
+ 9
+
+
+ 9
+
+
+ 9
+
+
9
-
@@ -136,12 +163,21 @@
Mix Level
+
+ 9
+
+
+ 9
+
+
+ 9
+
+
+ 9
+
0
-
- 9
-
-
-
@@ -375,7 +411,7 @@ Typical value is 50% for + or X configuration on quads.
- Frame Type:
+ Airframe Type:
@@ -476,7 +512,16 @@ Typical value is 50% for + or X configuration on quads.
Motor output channels
-
+
+ 9
+
+
+ 9
+
+
+ 9
+
+
9
-
@@ -801,9 +846,7 @@ margin:1px;
1
-
-
-
+
mrRollMixLevel
diff --git a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp
index 25306c0af..1a464524b 100644
--- a/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/cfg_vehicletypes/configfixedwingwidget.cpp
@@ -53,11 +53,11 @@ ConfigFixedWingWidget::ConfigFixedWingWidget(QWidget *parent) :
populateChannelComboBoxes();
QStringList fixedWingTypes;
- fixedWingTypes << "Elevator aileron rudder" << "Elevon";
+ fixedWingTypes << "Aileron Dual Servo" << "Aileron Single Servo" << "Elevon";
m_aircraft->fixedWingType->addItems(fixedWingTypes);
- // Set default model to "Elevator aileron rudder"
- m_aircraft->fixedWingType->setCurrentIndex(m_aircraft->fixedWingType->findText("Elevator aileron rudder"));
+ // Set default model to "Aileron Dual Servo"
+ m_aircraft->fixedWingType->setCurrentIndex(m_aircraft->fixedWingType->findText("Aileron Dual Servo"));
setupUI(m_aircraft->fixedWingType->currentText());
@@ -135,9 +135,9 @@ void ConfigFixedWingWidget::setupUI(QString frameType)
qDebug() << "Current Aircraft type: \n" << m_aircraft->fixedWingType->currentText();
- if (frameType == "FixedWing" || frameType == "Elevator aileron rudder") {
+ if (frameType == "FixedWing" || frameType == "Aileron Dual Servo") {
plane->setElementId("aileron");
- setComboCurrentIndex(m_aircraft->fixedWingType, m_aircraft->fixedWingType->findText("Elevator aileron rudder"));
+ setComboCurrentIndex(m_aircraft->fixedWingType, m_aircraft->fixedWingType->findText("Aileron Dual Servo"));
resetChannelboxesAndSliders();
m_aircraft->fwRudder1ChannelBox->setEnabled(true);
@@ -151,7 +151,21 @@ void ConfigFixedWingWidget::setupUI(QString frameType)
m_aircraft->fwAileron2Label->setText("Aileron 2");
m_aircraft->fwElevator1Label->setText("Elevator 1");
m_aircraft->fwElevator2Label->setText("Elevator 2");
+ } else if (frameType == "Aileron Single Servo") {
+ plane->setElementId("aileron-single");
+ setComboCurrentIndex(m_aircraft->fixedWingType, m_aircraft->fixedWingType->findText("Aileron Single Servo"));
+ resetChannelboxesAndSliders();
+ m_aircraft->fwRudder1ChannelBox->setEnabled(true);
+ m_aircraft->fwRudder2ChannelBox->setEnabled(true);
+ m_aircraft->fwElevator1ChannelBox->setEnabled(true);
+ m_aircraft->fwElevator2ChannelBox->setEnabled(true);
+ m_aircraft->fwAileron1ChannelBox->setEnabled(true);
+ m_aircraft->fwAileron2ChannelBox->setEnabled(false);
+ m_aircraft->fwAileron1Label->setText("Aileron 1");
+ m_aircraft->fwAileron2Label->setText("Aileron 2");
+ m_aircraft->fwElevator1Label->setText("Elevator 1");
+ m_aircraft->fwElevator2Label->setText("Elevator 2");
} else if (frameType == "FixedWingVtail" || frameType == "Vtail") {
// do nothing for now
} else if (frameType == "FixedWingElevon" || frameType == "Elevon") {
@@ -202,7 +216,7 @@ void ConfigFixedWingWidget::setupEnabledControls(QString frameType)
// enableComboBoxes(this, CHANNELBOXNAME, 3, true);
} else if (frameType == "Elevon" || frameType == "Elevon") {
enableComboBoxes(this, CHANNELBOXNAME, 3, true);
- } else if (frameType == "aileron" || frameType == "Elevator aileron rudder") {
+ } else if (frameType == "aileron" || frameType == "Aileron Dual Servo" || frameType == "Aileron Single Servo") {
enableComboBoxes(this, CHANNELBOXNAME, 4, true);
}
}
@@ -300,7 +314,7 @@ QString ConfigFixedWingWidget::updateConfigObjectsFromWidgets()
QString airframeType;
QList motor_servo_List;
- if (m_aircraft->fixedWingType->currentText() == "Elevator aileron rudder") {
+ if (m_aircraft->fixedWingType->currentText() == "Aileron Dual Servo" || "aileron-single") {
airframeType = "FixedWing";
setupFrameFixedWing(airframeType);
@@ -312,7 +326,7 @@ QString ConfigFixedWingWidget::updateConfigObjectsFromWidgets()
m_aircraft->fwStatusLabel->setText(tr("Configuration OK"));
- }
+ }
else if (m_aircraft->fixedWingType->currentText() == "elevon") {
airframeType = "FixedWingElevon";
setupFrameElevon(airframeType);
diff --git a/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp b/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp
index 50589ae4f..575499753 100644
--- a/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configvehicletypewidget.cpp
@@ -198,8 +198,7 @@ void ConfigVehicleTypeWidget::refreshWidgetsValues(UAVObject *o)
UAVObjectField *field = system->getField(QString("AirframeType"));
Q_ASSERT(field);
- // At this stage, we will need to have some hardcoded settings in this code, this
- // is not ideal, but there you go.
+ // At this stage, we will need to have some hardcoded settings in this code
QString frameType = field->getValue().toString();
int category = frameCategory(frameType);
@@ -262,8 +261,9 @@ void ConfigVehicleTypeWidget::updateObjectsFromWidgets()
int ConfigVehicleTypeWidget::frameCategory(QString frameType)
{
- if (frameType == "FixedWing" || frameType == "Elevator aileron rudder" || frameType == "FixedWingElevon"
- || frameType == "Elevon" || frameType == "FixedWingVtail" || frameType == "Vtail") {
+ if (frameType == "FixedWing" || frameType == "Aileron Dual Servo" || frameType == "Aileron Single Servo"
+ || frameType == "FixedWingElevon" || frameType == "Elevon" || frameType == "FixedWingVtail"
+ || frameType == "Vtail") {
return ConfigVehicleTypeWidget::FIXED_WING;
} else if (frameType == "Tri" || frameType == "Tricopter Y" || frameType == "QuadX" || frameType == "Quad X"
|| frameType == "QuadP" || frameType == "Quad +" || frameType == "Hexa" || frameType == "Hexacopter"