From 86f8997e8881964b37295b4337f1f6293c98e771 Mon Sep 17 00:00:00 2001 From: Fredrik Larson Date: Sun, 24 Aug 2014 01:52:41 +1000 Subject: [PATCH] Start basics of config plugin page for FW clean up, add support for single servo aileron fixedwings --- .../src/plugins/config/airframe_fixedwing.ui | 43 ++++++------ .../src/plugins/config/airframe_multirotor.ui | 67 +++++++++++++++---- .../configfixedwingwidget.cpp | 30 ++++++--- .../config/configvehicletypewidget.cpp | 8 +-- 4 files changed, 104 insertions(+), 44 deletions(-) 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"