From d8ef4c30440b55af61ad7ea697331f5887d2435e Mon Sep 17 00:00:00 2001 From: m_thread Date: Sun, 22 Feb 2015 17:30:49 +0100 Subject: [PATCH] OP-1685 Added code to disable oneshot as an alternative in certain conditions. --- .../src/plugins/setupwizard/pages/escpage.cpp | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/setupwizard/pages/escpage.cpp b/ground/openpilotgcs/src/plugins/setupwizard/pages/escpage.cpp index f6fde02fe..1197d279d 100644 --- a/ground/openpilotgcs/src/plugins/setupwizard/pages/escpage.cpp +++ b/ground/openpilotgcs/src/plugins/setupwizard/pages/escpage.cpp @@ -58,14 +58,32 @@ bool EscPage::validatePage() void EscPage::initializePage() { - if (getWizard()->getControllerType() == SetupWizard::CONTROLLER_CC || - getWizard()->getControllerType() == SetupWizard::CONTROLLER_CC3D) { - ui->oneshotESCButton->setEnabled(getWizard()->getInputType() != SetupWizard::INPUT_PWM); - if (ui->oneshotESCButton->isChecked() && getWizard()->getInputType() == SetupWizard::INPUT_PWM) { - ui->oneshotESCButton->setChecked(false); - ui->rapidESCButton->setChecked(true); + bool enabled = true; + switch(getWizard()->getControllerType()) { + case SetupWizard::CONTROLLER_CC: + case SetupWizard::CONTROLLER_CC3D: + switch (getWizard()->getVehicleType()) { + case SetupWizard::VEHICLE_MULTI: + switch (getWizard()->getVehicleSubType()) { + case SetupWizard::MULTI_ROTOR_TRI_Y: + case SetupWizard::MULTI_ROTOR_QUAD_X: + case SetupWizard::MULTI_ROTOR_QUAD_H: + case SetupWizard::MULTI_ROTOR_QUAD_PLUS: + enabled = getWizard()->getInputType() != SetupWizard::INPUT_PWM; + break; + default: + enabled = false; + break; + } + break; + default: break; } - } else { - ui->oneshotESCButton->setEnabled(true); + break; + default: break; + } + ui->oneshotESCButton->setEnabled(enabled); + if (ui->oneshotESCButton->isChecked() && !enabled) { + ui->oneshotESCButton->setChecked(false); + ui->rapidESCButton->setChecked(true); } }