From 09786b763faf444f91035db094be36bf132a5838 Mon Sep 17 00:00:00 2001 From: pip Date: Fri, 25 Feb 2011 20:43:58 +0000 Subject: [PATCH] Changed the RC input sliders for vertical bars. Simplified some code areas. git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2879 ebee16cc-31ac-478f-84a7-5cbb03baadba --- .../src/plugins/config/config.pro | 12 +- .../src/plugins/config/configservowidget.cpp | 346 +- .../src/plugins/config/configservowidget.h | 171 +- .../src/plugins/config/settingswidget.ui | 6364 ++++++++--------- .../src/plugins/config/widgetbar.cpp | 78 + .../src/plugins/config/widgetbar.h | 37 + 6 files changed, 3450 insertions(+), 3558 deletions(-) create mode 100644 ground/openpilotgcs/src/plugins/config/widgetbar.cpp create mode 100644 ground/openpilotgcs/src/plugins/config/widgetbar.h diff --git a/ground/openpilotgcs/src/plugins/config/config.pro b/ground/openpilotgcs/src/plugins/config/config.pro index 2cbbc5576..d8298365e 100644 --- a/ground/openpilotgcs/src/plugins/config/config.pro +++ b/ground/openpilotgcs/src/plugins/config/config.pro @@ -1,11 +1,14 @@ TEMPLATE = lib TARGET = Config QT += svg + include(../../openpilotgcsplugin.pri) include(../../plugins/uavtalk/uavtalk.pri) include(../../plugins/coreplugin/coreplugin.pri) include(../../plugins/uavobjects/uavobjects.pri) + OTHER_FILES += Config.pluginspec + HEADERS += configplugin.h \ configgadgetconfiguration.h \ configgadgetwidget.h \ @@ -22,7 +25,9 @@ HEADERS += configplugin.h \ mixercurvepoint.h \ mixercurveline.h \ configccpmwidget.h \ - configstabilizationwidget.h + configstabilizationwidget.h \ + widgetbar.h + SOURCES += configplugin.cpp \ configgadgetconfiguration.cpp \ configgadgetwidget.cpp \ @@ -39,11 +44,14 @@ SOURCES += configplugin.cpp \ mixercurvepoint.cpp \ mixercurveline.cpp \ configccpmwidget.cpp \ - configstabilizationwidget.cpp + configstabilizationwidget.cpp \ + widgetbar.cpp + FORMS += settingswidget.ui \ airframe.ui \ telemetry.ui \ ahrs.ui \ ccpm.ui \ stabilization.ui + RESOURCES += configgadget.qrc diff --git a/ground/openpilotgcs/src/plugins/config/configservowidget.cpp b/ground/openpilotgcs/src/plugins/config/configservowidget.cpp index 1c5972d04..35696eca5 100644 --- a/ground/openpilotgcs/src/plugins/config/configservowidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configservowidget.cpp @@ -43,8 +43,7 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) // First of all, put all the channel widgets into lists, so that we can // manipulate those: - // NOTE: for historical reasons, we have objects below called ch0 to ch7, but the - // convention for OP is Channel 1 to Channel 8. + // NOTE: for historical reasons, we have objects below called ch0 to ch7, but the convention for OP is Channel 1 to Channel 8. outLabels << m_config->ch0OutValue << m_config->ch1OutValue << m_config->ch2OutValue @@ -53,6 +52,7 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) << m_config->ch5OutValue << m_config->ch6OutValue << m_config->ch7OutValue; + outSliders << m_config->ch0OutSlider << m_config->ch1OutSlider << m_config->ch2OutSlider @@ -61,6 +61,7 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) << m_config->ch5OutSlider << m_config->ch6OutSlider << m_config->ch7OutSlider; + outMin << m_config->ch0OutMin << m_config->ch1OutMin << m_config->ch2OutMin @@ -69,6 +70,7 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) << m_config->ch5OutMin << m_config->ch6OutMin << m_config->ch7OutMin; + outMax << m_config->ch0OutMax << m_config->ch1OutMax << m_config->ch2OutMax @@ -77,6 +79,7 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) << m_config->ch5OutMax << m_config->ch6OutMax << m_config->ch7OutMax; + reversals << m_config->ch0Rev << m_config->ch1Rev << m_config->ch2Rev @@ -85,15 +88,33 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent) << m_config->ch5Rev << m_config->ch6Rev << m_config->ch7Rev; - inSliders << m_config->ch0Slider - << m_config->ch1Slider - << m_config->ch2Slider - << m_config->ch3Slider - << m_config->ch4Slider - << m_config->ch5Slider - << m_config->ch6Slider - << m_config->ch7Slider; + inMaxLabels << m_config->ch0Max + << m_config->ch1Max + << m_config->ch2Max + << m_config->ch3Max + << m_config->ch4Max + << m_config->ch5Max + << m_config->ch6Max + << m_config->ch7Max; + + inMinLabels << m_config->ch0Min + << m_config->ch1Min + << m_config->ch2Min + << m_config->ch3Min + << m_config->ch4Min + << m_config->ch5Min + << m_config->ch6Min + << m_config->ch7Min; + + inWidgetBars << m_config->widgetBarCH0 + << m_config->widgetBarCH1 + << m_config->widgetBarCH2 + << m_config->widgetBarCH3 + << m_config->widgetBarCH4 + << m_config->widgetBarCH5 + << m_config->widgetBarCH6 + << m_config->widgetBarCH7; // Now connect the widget to the ManualControlCommand / Channel UAVObject ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); @@ -540,59 +561,30 @@ void ConfigServoWidget::requestRCInputUpdate() Q_ASSERT(obj); obj->requestUpdate(); + UAVObjectField *field; + // Now update all the slider values: - QString fieldName = QString("ChannelMax"); - UAVObjectField *field = obj->getField(fieldName); - m_config->ch0Max->setText(field->getValue(0).toString()); - m_config->ch0Slider->setMaximum(field->getValue(0).toInt()); - m_config->ch1Max->setText(field->getValue(1).toString()); - m_config->ch1Slider->setMaximum(field->getValue(1).toInt()); - m_config->ch2Max->setText(field->getValue(2).toString()); - m_config->ch2Slider->setMaximum(field->getValue(2).toInt()); - m_config->ch3Max->setText(field->getValue(3).toString()); - m_config->ch3Slider->setMaximum(field->getValue(3).toInt()); - m_config->ch4Max->setText(field->getValue(4).toString()); - m_config->ch4Slider->setMaximum(field->getValue(4).toInt()); - m_config->ch5Max->setText(field->getValue(5).toString()); - m_config->ch5Slider->setMaximum(field->getValue(5).toInt()); - m_config->ch6Max->setText(field->getValue(6).toString()); - m_config->ch6Slider->setMaximum(field->getValue(6).toInt()); - m_config->ch7Max->setText(field->getValue(7).toString()); - m_config->ch7Slider->setMaximum(field->getValue(7).toInt()); - fieldName = QString("ChannelMin"); - field = obj->getField(fieldName); - m_config->ch0Min->setText(field->getValue(0).toString()); - m_config->ch0Slider->setMinimum(field->getValue(0).toInt()); - m_config->ch1Min->setText(field->getValue(1).toString()); - m_config->ch1Slider->setMinimum(field->getValue(1).toInt()); - m_config->ch2Min->setText(field->getValue(2).toString()); - m_config->ch2Slider->setMinimum(field->getValue(2).toInt()); - m_config->ch3Min->setText(field->getValue(3).toString()); - m_config->ch3Slider->setMinimum(field->getValue(3).toInt()); - m_config->ch4Min->setText(field->getValue(4).toString()); - m_config->ch4Slider->setMinimum(field->getValue(4).toInt()); - m_config->ch5Min->setText(field->getValue(5).toString()); - m_config->ch5Slider->setMinimum(field->getValue(5).toInt()); - m_config->ch6Min->setText(field->getValue(6).toString()); - m_config->ch6Slider->setMinimum(field->getValue(6).toInt()); - m_config->ch7Min->setText(field->getValue(7).toString()); - m_config->ch7Slider->setMinimum(field->getValue(7).toInt()); - - fieldName = QString("ChannelNeutral"); - field = obj->getField(fieldName); - m_config->ch0Slider->setValue(field->getValue(0).toInt()); - m_config->ch1Slider->setValue(field->getValue(1).toInt()); - m_config->ch2Slider->setValue(field->getValue(2).toInt()); - m_config->ch3Slider->setValue(field->getValue(3).toInt()); - m_config->ch4Slider->setValue(field->getValue(4).toInt()); - m_config->ch5Slider->setValue(field->getValue(5).toInt()); - m_config->ch6Slider->setValue(field->getValue(6).toInt()); - m_config->ch7Slider->setValue(field->getValue(7).toInt()); + UAVObjectField *field_max = obj->getField(QString("ChannelMax")); + UAVObjectField *field_min = obj->getField(QString("ChannelMin")); + UAVObjectField *field_neu = obj->getField(QString("ChannelNeutral")); + Q_ASSERT(field_max); + Q_ASSERT(field_min); + Q_ASSERT(field_neu); + for (int i = 0; i < 8; i++) + { + QVariant max = field_max->getValue(i); + QVariant min = field_min->getValue(i); + QVariant neutral = field_neu->getValue(i); + inMaxLabels[i]->setText(max.toString()); + inMinLabels[i]->setText(min.toString()); + inWidgetBars[i]->setMaximum(max.toInt()); + inWidgetBars[i]->setMinimum(min.toInt()); + inWidgetBars[i]->setValue(neutral.toInt()); + } // Update receiver type - fieldName = QString("InputMode"); - field = obj->getField(fieldName); + field = obj->getField(QString("InputMode")); m_config->receiverType->setCurrentIndex(m_config->receiverType->findText(field->getValue().toString())); // Reset all channel assignement dropdowns: @@ -606,11 +598,11 @@ void ConfigServoWidget::requestRCInputUpdate() m_config->ch7Assign->setCurrentIndex(0); // Update all channels assignements - QList fieldList = obj->getFields(); - foreach (UAVObjectField* field, fieldList) { - if (field->getUnits().contains("channel")) { + QList fieldList = obj->getFields(); + foreach (UAVObjectField *field, fieldList) + { + if (field->getUnits().contains("channel")) assignChannel(obj, field->getName()); - } } // Update all the flight mode settingsin the relevant tab @@ -621,33 +613,23 @@ void ConfigServoWidget::requestRCInputUpdate() field = obj->getField(QString("Pos3FlightMode")); m_config->fmsModePos3->setCurrentIndex((m_config->fmsModePos3->findText(field->getValue().toString()))); field = obj->getField(QString("Pos1StabilizationSettings")); - m_config->fmsSsPos1Roll->setCurrentIndex(m_config->fmsSsPos1Roll->findText( - field->getValue(field->getElementNames().indexOf("Roll")).toString())); - m_config->fmsSsPos1Pitch->setCurrentIndex(m_config->fmsSsPos1Pitch->findText( - field->getValue(field->getElementNames().indexOf("Pitch")).toString())); - m_config->fmsSsPos1Yaw->setCurrentIndex(m_config->fmsSsPos1Yaw->findText( - field->getValue(field->getElementNames().indexOf("Yaw")).toString())); + m_config->fmsSsPos1Roll->setCurrentIndex(m_config->fmsSsPos1Roll->findText(field->getValue(field->getElementNames().indexOf("Roll")).toString())); + m_config->fmsSsPos1Pitch->setCurrentIndex(m_config->fmsSsPos1Pitch->findText(field->getValue(field->getElementNames().indexOf("Pitch")).toString())); + m_config->fmsSsPos1Yaw->setCurrentIndex(m_config->fmsSsPos1Yaw->findText(field->getValue(field->getElementNames().indexOf("Yaw")).toString())); field = obj->getField(QString("Pos2StabilizationSettings")); - m_config->fmsSsPos2Roll->setCurrentIndex(m_config->fmsSsPos2Roll->findText( - field->getValue(field->getElementNames().indexOf("Roll")).toString())); - m_config->fmsSsPos2Pitch->setCurrentIndex(m_config->fmsSsPos2Pitch->findText( - field->getValue(field->getElementNames().indexOf("Pitch")).toString())); - m_config->fmsSsPos2Yaw->setCurrentIndex(m_config->fmsSsPos2Yaw->findText( - field->getValue(field->getElementNames().indexOf("Yaw")).toString())); + m_config->fmsSsPos2Roll->setCurrentIndex(m_config->fmsSsPos2Roll->findText(field->getValue(field->getElementNames().indexOf("Roll")).toString())); + m_config->fmsSsPos2Pitch->setCurrentIndex(m_config->fmsSsPos2Pitch->findText(field->getValue(field->getElementNames().indexOf("Pitch")).toString())); + m_config->fmsSsPos2Yaw->setCurrentIndex(m_config->fmsSsPos2Yaw->findText(field->getValue(field->getElementNames().indexOf("Yaw")).toString())); field = obj->getField(QString("Pos3StabilizationSettings")); - m_config->fmsSsPos3Roll->setCurrentIndex(m_config->fmsSsPos3Roll->findText( - field->getValue(field->getElementNames().indexOf("Roll")).toString())); - m_config->fmsSsPos3Pitch->setCurrentIndex(m_config->fmsSsPos3Pitch->findText( - field->getValue(field->getElementNames().indexOf("Pitch")).toString())); - m_config->fmsSsPos3Yaw->setCurrentIndex(m_config->fmsSsPos3Yaw->findText( - field->getValue(field->getElementNames().indexOf("Yaw")).toString())); + m_config->fmsSsPos3Roll->setCurrentIndex(m_config->fmsSsPos3Roll->findText(field->getValue(field->getElementNames().indexOf("Roll")).toString())); + m_config->fmsSsPos3Pitch->setCurrentIndex(m_config->fmsSsPos3Pitch->findText(field->getValue(field->getElementNames().indexOf("Pitch")).toString())); + m_config->fmsSsPos3Yaw->setCurrentIndex(m_config->fmsSsPos3Yaw->findText(field->getValue(field->getElementNames().indexOf("Yaw")).toString())); // Load the arming settings field = obj->getField(QString("Arming")); m_config->armControl->setCurrentIndex(m_config->armControl->findText(field->getValue().toString())); field = obj->getField(QString("ArmedTimeout")); m_config->armTimeout->setValue(field->getValue().toInt()/1000); - } @@ -663,36 +645,18 @@ void ConfigServoWidget::sendRCInputUpdate() // Now update all fields from the sliders: QString fieldName = QString("ChannelMax"); UAVObjectField * field = obj->getField(fieldName); - field->setValue(m_config->ch0Max->text().toInt(),0); - field->setValue(m_config->ch1Max->text().toInt(),1); - field->setValue(m_config->ch2Max->text().toInt(),2); - field->setValue(m_config->ch3Max->text().toInt(),3); - field->setValue(m_config->ch4Max->text().toInt(),4); - field->setValue(m_config->ch5Max->text().toInt(),5); - field->setValue(m_config->ch6Max->text().toInt(),6); - field->setValue(m_config->ch7Max->text().toInt(),7); + for (int i = 0; i < 8; i++) + field->setValue(inMaxLabels[i]->text().toInt(), i); fieldName = QString("ChannelMin"); field = obj->getField(fieldName); - field->setValue(m_config->ch0Min->text().toInt(),0); - field->setValue(m_config->ch1Min->text().toInt(),1); - field->setValue(m_config->ch2Min->text().toInt(),2); - field->setValue(m_config->ch3Min->text().toInt(),3); - field->setValue(m_config->ch4Min->text().toInt(),4); - field->setValue(m_config->ch5Min->text().toInt(),5); - field->setValue(m_config->ch6Min->text().toInt(),6); - field->setValue(m_config->ch7Min->text().toInt(),7); + for (int i = 0; i < 8; i++) + field->setValue(inMinLabels[i]->text().toInt(), i); fieldName = QString("ChannelNeutral"); field = obj->getField(fieldName); - field->setValue(m_config->ch0Slider->value(),0); - field->setValue(m_config->ch1Slider->value(),1); - field->setValue(m_config->ch2Slider->value(),2); - field->setValue(m_config->ch3Slider->value(),3); - field->setValue(m_config->ch4Slider->value(),4); - field->setValue(m_config->ch5Slider->value(),5); - field->setValue(m_config->ch6Slider->value(),6); - field->setValue(m_config->ch7Slider->value(),7); + for (int i = 0; i < 8; i++) + field->setValue(inWidgetBars[i]->value(), i); // Set RC Receiver type: fieldName = QString("InputMode"); @@ -874,13 +838,15 @@ void ConfigServoWidget::updateChannels(UAVObject* controlCommand) QString fieldName = QString("Connected"); UAVObjectField *field = controlCommand->getField(fieldName); - if (field->getValue().toBool()) { + if (field->getValue().toBool()) m_config->RCInputConnected->setText("RC Receiver Connected"); - } else { + else m_config->RCInputConnected->setText("RC Receiver Not Connected"); - } - if (m_config->doRCInputCalibration->isChecked()) { - if (firstUpdate) { + + if (m_config->doRCInputCalibration->isChecked()) + { + if (firstUpdate) + { // Increase the data rate from the board so that the sliders // move faster UAVObject::Metadata mdata = controlCommand->getMetadata(); @@ -902,44 +868,17 @@ void ConfigServoWidget::updateChannels(UAVObject* controlCommand) obj->updated(); } - fieldName = QString("Channel"); - field = controlCommand->getField(fieldName); - // Hey: if you find a nicer way of doing this, be my guest! - this->updateChannelSlider(&*m_config->ch0Slider, - &*m_config->ch0Min, - &*m_config->ch0Max, - &*m_config->ch0Rev,field->getValue(0).toInt()); - this->updateChannelSlider(&*m_config->ch1Slider, - &*m_config->ch1Min, - &*m_config->ch1Max, - &*m_config->ch1Rev,field->getValue(1).toInt()); - this->updateChannelSlider(&*m_config->ch2Slider, - &*m_config->ch2Min, - &*m_config->ch2Max, - &*m_config->ch2Rev,field->getValue(2).toInt()); - this->updateChannelSlider(&*m_config->ch3Slider, - &*m_config->ch3Min, - &*m_config->ch3Max, - &*m_config->ch3Rev,field->getValue(3).toInt()); - this->updateChannelSlider(&*m_config->ch4Slider, - &*m_config->ch4Min, - &*m_config->ch4Max, - &*m_config->ch4Rev,field->getValue(4).toInt()); - this->updateChannelSlider(&*m_config->ch5Slider, - &*m_config->ch5Min, - &*m_config->ch5Max, - &*m_config->ch5Rev,field->getValue(5).toInt()); - this->updateChannelSlider(&*m_config->ch6Slider, - &*m_config->ch6Min, - &*m_config->ch6Max, - &*m_config->ch6Rev,field->getValue(6).toInt()); - this->updateChannelSlider(&*m_config->ch7Slider, - &*m_config->ch7Min, - &*m_config->ch7Max, - &*m_config->ch7Rev,field->getValue(7).toInt()); + + field = controlCommand->getField(QString("Channel")); + for (int i = 0; i < 8; i++) + updateChannelWidgetBar(inWidgetBars[i], inMinLabels[i], inMaxLabels[i], reversals[i], field->getValue(i).toInt()); + firstUpdate = false; - } else { - if (!firstUpdate) { + } + else + { + if (!firstUpdate) + { // Restore original data rate from the board: UAVObject::Metadata mdata = controlCommand->getMetadata(); mdata.flightTelemetryUpdateMode = UAVObject::UPDATEMODE_PERIODIC; @@ -959,62 +898,71 @@ void ConfigServoWidget::updateChannels(UAVObject* controlCommand) // Find the channel currently assigned to flightmode field = obj->getField("FlightMode"); int chIndex = field->getOptions().indexOf(field->getValue().toString()); - if ( chIndex < field->getOptions().length()-1) { - float valueScaled; - int chMin = inSliders.at(chIndex)->minimum(); - int chMax = inSliders.at(chIndex)->maximum(); - int chNeutral = inSliders.at(chIndex)->value(); - int value = controlCommand->getField("Channel")->getValue(chIndex).toInt(); - if ((chMax > chMin && value >= chNeutral) || (chMin > chMax && value <= chNeutral)) { - if (chMax != chNeutral) { - valueScaled = (float)(value - chNeutral) / (float)(chMax - chNeutral); - } else { - valueScaled = 0; - } - } else { - if (chMin != chNeutral) { - valueScaled = (float)(value - chNeutral) / (float)(chNeutral - chMin); - } else { - valueScaled = 0; - } + if (chIndex < field->getOptions().length() - 1) + { + float valueScaled; + int chMin = inWidgetBars[chIndex]->minimum(); + int chMax = inWidgetBars[chIndex]->maximum(); + int chNeutral = inWidgetBars[chIndex]->value(); + + int value = controlCommand->getField("Channel")->getValue(chIndex).toInt(); + if ((chMax > chMin && value >= chNeutral) || (chMin > chMax && value <= chNeutral)) + { + if (chMax != chNeutral) + valueScaled = (float)(value - chNeutral) / (float)(chMax - chNeutral); + else + valueScaled = 0; + } + else + { + if (chMin != chNeutral) + valueScaled = (float)(value - chNeutral) / (float)(chNeutral - chMin); + else + valueScaled = 0; } + // Bound - if (valueScaled > 1.0) { - valueScaled = 1.0; - } else if (valueScaled < -1.0) { - valueScaled = -1.0; - } - m_config->fmsSlider->setValue(valueScaled*100); - } + if (valueScaled > 1.0) valueScaled = 1.0; + else + if (valueScaled < -1.0) valueScaled = -1.0; + + m_config->fmsSlider->setValue(valueScaled * 100); + } } - -void ConfigServoWidget::updateChannelSlider(QSlider* slider, QLabel* min, QLabel* max, QCheckBox* rev, int value) +void ConfigServoWidget::updateChannelWidgetBar(WidgetBar *widget_bar, QLabel *min, QLabel *max, QCheckBox *rev, int value) { + Q_UNUSED(rev); - Q_UNUSED(rev); - if (firstUpdate) { - // Reset all the min/max values of the sliders since we are - // starting the calibration. - slider->setMaximum(value); - slider->setMinimum(value); - slider->setValue(value); - max->setText(QString::number(value)); - min->setText(QString::number(value)); - return; - } +// if (!widget_bar || !min || !max || !rev) + if (!widget_bar || !min || !max) + return; - if (value != 0) { // Avoids glitches... - if (value > slider->maximum()) { - slider->setMaximum(value); - max->setText(QString::number(value)); - } - if (value < slider->minimum()) { - slider->setMinimum(value); - min->setText(QString::number(value)); - } - slider->setValue(value); - } + if (firstUpdate) + { // Reset all the min/max values of the progress bar since we are starting the calibration. + + widget_bar->setMaximum(value); + widget_bar->setMinimum(value); + widget_bar->setValue(value); + + max->setText(QString::number(value)); + min->setText(QString::number(value)); + + return; + } + + if (value > 0) + { // avoids glitches... + if (value > widget_bar->maximum()) + { + widget_bar->setMaximum(value); + max->setText(QString::number(value)); + } + if (value < widget_bar->minimum()) + { + widget_bar->setMinimum(value); + min->setText(QString::number(value)); + } + widget_bar->setValue(value); + } } - - diff --git a/ground/openpilotgcs/src/plugins/config/configservowidget.h b/ground/openpilotgcs/src/plugins/config/configservowidget.h index baec54be6..838bb8606 100644 --- a/ground/openpilotgcs/src/plugins/config/configservowidget.h +++ b/ground/openpilotgcs/src/plugins/config/configservowidget.h @@ -1,82 +1,89 @@ -/** - ****************************************************************************** - * - * @file configservowidget.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup ConfigPlugin Config Plugin - * @{ - * @brief Servo input/output configuration panel for the config gadget - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -#ifndef CONFIGSERVOWIDGET_H -#define CONFIGSERVOWIDGET_H - -#include "ui_settingswidget.h" -#include "configtaskwidget.h" -#include "extensionsystem/pluginmanager.h" -#include "uavobjectmanager.h" -#include "uavobject.h" -#include -#include - -class Ui_SettingsWidget; - -class ConfigServoWidget: public ConfigTaskWidget -{ - Q_OBJECT - -public: - ConfigServoWidget(QWidget *parent = 0); - ~ConfigServoWidget(); - - -private: - Ui_SettingsWidget *m_config; - QList sliders; - void updateChannelSlider(QSlider* slider, QLabel* min, QLabel* Max, QCheckBox* rev, int value); - void assignChannel(UAVDataObject *obj, QString str); - void assignOutputChannel(UAVDataObject *obj, QString str); - int mccDataRate; - UAVObject::Metadata accInitialData; - QList outSliders; - QList inSliders; - QList outMin; - QList outMax; - QList reversals; - QList outLabels; - - - bool firstUpdate; - - private slots: - void updateChannels(UAVObject* obj); - void requestRCInputUpdate(); - void sendRCInputUpdate(); - void saveRCInputObject(); - void requestRCOutputUpdate(); - void sendRCOutputUpdate(); - void saveRCOutputObject(); - void runChannelTests(bool state); - void sendChannelTest(int value); - void setChOutRange(); - void reverseChannel(bool state); - -}; - -#endif // CONFIGSERVOWIDGET_H +/** + ****************************************************************************** + * + * @file configservowidget.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup ConfigPlugin Config Plugin + * @{ + * @brief Servo input/output configuration panel for the config gadget + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#ifndef CONFIGSERVOWIDGET_H +#define CONFIGSERVOWIDGET_H + +#include "ui_settingswidget.h" +#include "configtaskwidget.h" +#include "extensionsystem/pluginmanager.h" +#include "uavobjectmanager.h" +#include "uavobject.h" +#include +#include +#include "widgetbar.h" + +class Ui_SettingsWidget; + +class ConfigServoWidget: public ConfigTaskWidget +{ + Q_OBJECT + +public: + ConfigServoWidget(QWidget *parent = 0); + ~ConfigServoWidget(); + +private: + Ui_SettingsWidget *m_config; + + QList sliders; + + void updateChannelWidgetBar(WidgetBar *widget_bar, QLabel *min, QLabel *max, QCheckBox *rev, int value); + + void assignChannel(UAVDataObject *obj, QString str); + void assignOutputChannel(UAVDataObject *obj, QString str); + + int mccDataRate; + + UAVObject::Metadata accInitialData; + + QList outSliders; + QList outMin; + QList outMax; + QList reversals; + QList outLabels; + + QList inWidgetBars; + QList inMaxLabels; + QList inMinLabels; + + bool firstUpdate; + +private slots: + void updateChannels(UAVObject* obj); + void requestRCInputUpdate(); + void sendRCInputUpdate(); + void saveRCInputObject(); + void requestRCOutputUpdate(); + void sendRCOutputUpdate(); + void saveRCOutputObject(); + void runChannelTests(bool state); + void sendChannelTest(int value); + void setChOutRange(); + void reverseChannel(bool state); +}; + +#endif diff --git a/ground/openpilotgcs/src/plugins/config/settingswidget.ui b/ground/openpilotgcs/src/plugins/config/settingswidget.ui index cd8027cc7..8abf1dc07 100644 --- a/ground/openpilotgcs/src/plugins/config/settingswidget.ui +++ b/ground/openpilotgcs/src/plugins/config/settingswidget.ui @@ -1,3275 +1,3089 @@ - - - SettingsWidget - - - - 0 - 0 - 720 - 480 - - - - Form - - - - - - 0 - - - - RC Input - - - - - 20 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 300 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 20 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 90 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 440 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 510 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 300 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 510 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 270 - 310 - 93 - 27 - - - - Retrieve settings from OpenPilot - - - Get Current - - - - - - 230 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 160 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 440 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 370 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 230 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 490 - 310 - 93 - 27 - - - - Be sure to set the Neutral position on all sliders before sending! -Applies and Saves all settings to SD - - - Save to SD - - - - - - 300 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 300 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 510 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 380 - 310 - 93 - 27 - - - - Send to OpenPilot but don't write in SD. -Be sure to set the Neutral position on all sliders before sending! - - - Save to RAM - - - - - - 10 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - 16 - 16 - - - - true - - - - - - 90 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 230 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 510 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 160 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 370 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 160 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 370 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 90 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 440 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 230 - 160 - 31 - 17 - - - - - FreeSans - 10 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> - - - 1000 - - - - - - 160 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 20 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 90 - 10 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 2000 - - - - - - 20 - 130 - 31 - 17 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> - - - 1000 - - - - - - 370 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 440 - 30 - 18 - 101 - - - - Channel neutral value. - - - 1000 - - - 2000 - - - Qt::Vertical - - - - - - 80 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 150 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 220 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 290 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 360 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 430 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 500 - 180 - 61 - 21 - - - - - DejaVu Sans - 7 - - - - - - - 20 - 250 - 131 - 22 - - - - Start calibrating the RC Inputs. -Uncheck/Check to restart calibration. -During calibration: move your RC controls over their whole range, -then leave them on Neutral, uncheck calibration and save. -Neutral should be put at the bottom of the slider for the throttle. - - - Run Calibration - - - - - - 320 - 210 - 181 - 20 - - - - Indicates whether OpenPilot is getting a signal from the RC receiver. - - - RC Receiver Not Connected - - - - - - 130 - 210 - 89 - 21 - - - - Select the receiver type here: -- PWM is the most usual type -- PPM is connected to input XXX -- Spektrum is used with Spektrum 'satellite' receivers - - - - - - 10 - 210 - 131 - 17 - - - - RC Receiver Type: - - - - - - 20 - 270 - 531 - 41 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; color:#ff0000;">BEWARE: make sure your engines are not connected</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; color:#ff0000;">when running calibration!</span></p></body></html> - - - - - - Servo Output - - - - - 10 - 10 - 221 - 17 - - - - Aircraft type: undefined - - - - - - 10 - 70 - 71 - 17 - - - - Channel 1 - - - - - - 10 - 100 - 71 - 17 - - - - Channel 2 - - - - - - 10 - 130 - 71 - 17 - - - - Channel 3 - - - - - - 10 - 160 - 71 - 17 - - - - Channel 4 - - - - - - 10 - 190 - 71 - 17 - - - - Channel 5 - - - - - - 10 - 220 - 71 - 17 - - - - Channel 6 - - - - - true - - - - 300 - 70 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 70 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - true - - - - 240 - 70 - 55 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum PWM value, beware of not overdriving your servo.</p></body></html> - - - 9999 - - - - - true - - - - 460 - 70 - 55 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum PWM value, beware of not overdriving your servo.</p></body></html> - - - 9999 - - - - - true - - - - 10 - 40 - 151 - 22 - - - - Move the servos using the sliders. Two important things: -- Take extra care if the output is connected to an motor controller! -- Will only work if the RC receiver is working (failsafe) - - - Test outputs - - - - - - 10 - 250 - 71 - 17 - - - - Channel 7 - - - - - - 10 - 280 - 71 - 17 - - - - Channel 8 - - - - - false - - - - 100 - 100 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - true - - - - 460 - 100 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - true - - - - 240 - 100 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - true - - - - 300 - 100 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 130 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - true - - - - 460 - 130 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - true - - - - 240 - 130 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - true - - - - 300 - 130 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 160 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - true - - - - 460 - 160 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - true - - - - 240 - 160 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - true - - - - 300 - 160 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 190 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - - 460 - 190 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 240 - 190 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 300 - 190 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 220 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - - 460 - 220 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 240 - 220 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 300 - 220 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 250 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - - 460 - 250 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 240 - 250 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 300 - 250 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - false - - - - 100 - 280 - 121 - 21 - - - - - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> - - - - - - 460 - 280 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 240 - 280 - 55 - 21 - - - - - 8 - - - - 9999 - - - - - - 300 - 280 - 160 - 18 - - - - 9999 - - - Qt::Horizontal - - - - - - 490 - 310 - 93 - 27 - - - - Be sure to set the Neutral position on all sliders before sending! -Applies and Saves all settings to SD - - - Save to SD - - - - - - 270 - 310 - 93 - 27 - - - - Retrieve settings from OpenPilot - - - Get Current - - - - - - 380 - 310 - 93 - 27 - - - - Send to OpenPilot but don't write in SD. -Be sure to set the Neutral position on all sliders before sending! - - - Save to RAM - - - - - - 240 - 10 - 291 - 51 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - 220 - 20 - 55 - 27 - - - - Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes. -Leave at 50Hz for fixed wing. - - - 9999 - - - - - - 20 - 20 - 81 - 17 - - - - Update rate: - - - - - - 120 - 20 - 55 - 27 - - - - Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes. -Leave at 50Hz for fixed wing. - - - 9999 - - - - - - 110 - 0 - 81 - 17 - - - - Channel 0-3 - - - - - - 210 - 0 - 81 - 17 - - - - Channel 4-7 - - - - - - - 520 - 70 - 41 - 17 - - - - Current value of slider. - - - 0000 - - - - - - 520 - 100 - 41 - 17 - - - - 0000 - - - - - - 520 - 130 - 41 - 17 - - - - 0000 - - - - - - 520 - 160 - 41 - 17 - - - - 0000 - - - - - - 520 - 190 - 41 - 17 - - - - 0000 - - - - - - 520 - 220 - 41 - 17 - - - - 0000 - - - - - - 520 - 250 - 41 - 17 - - - - 0000 - - - - - - 520 - 280 - 41 - 17 - - - - 0000 - - - - - - 560 - 220 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 70 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 130 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 250 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 280 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 100 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 160 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 190 - 21 - 22 - - - - - FreeSans - 8 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> - - - - - - - - - 560 - 50 - 31 - 17 - - - - Rev. - - - - - - Flight Mode Switch Settings - - - - - 10 - 10 - 331 - 17 - - - - Setup the behaviour of the flight mode switch: - - - - - false - - - - 60 - 70 - 20 - 231 - - - - This slider moves when you move the flight mode switch -on your remote. Setup the flightmode channel on the RC Input tab -if you have not done so already. - - - -100 - - - 100 - - - 10 - - - -100 - - - Qt::Vertical - - - QSlider::TicksBelow - - - 66 - - - - - - 120 - 50 - 41 - 17 - - - - - 75 - true - - - - Mode - - - - - - 100 - 100 - 89 - 31 - - - - Select the stabilization mode on this position (manual/stabilized/auto) - - - - - - 100 - 170 - 89 - 31 - - - - - - - 100 - 240 - 89 - 31 - - - - - - - 210 - 40 - 361 - 251 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - 20 - 40 - 62 - 17 - - - - Roll - - - - - - 140 - 40 - 62 - 17 - - - - Pitch - - - - - - 260 - 40 - 62 - 17 - - - - Yaw - - - - - - 10 - 60 - 89 - 31 - - - - - - - 130 - 60 - 89 - 31 - - - - - - - 250 - 60 - 89 - 31 - - - - - - - 10 - 130 - 89 - 31 - - - - - - - 130 - 130 - 89 - 31 - - - - - - - 250 - 130 - 89 - 31 - - - - - - - 10 - 200 - 89 - 31 - - - - - - - 130 - 200 - 89 - 31 - - - - - - - 250 - 200 - 89 - 31 - - - - - - - 20 - 10 - 191 - 17 - - - - - 75 - true - - - - Stabilization Settings - - - - - - - 10 - 110 - 62 - 17 - - - - Pos. 3 - - - - - - 10 - 180 - 62 - 17 - - - - Pos. 2 - - - - - - 10 - 240 - 62 - 17 - - - - Pos. 1 - - - - - - 270 - 310 - 93 - 27 - - - - Retrieve settings from OpenPilot - - - Get Current - - - - - - 380 - 310 - 93 - 27 - - - - Send to OpenPilot but don't write in SD. -Be sure to set the Neutral position on all sliders before sending! - - - Save to RAM - - - - - - 490 - 310 - 93 - 27 - - - - Be sure to set the Neutral position on all sliders before sending! -Applies and Saves all settings to SD - - - Save to SD - - - - - - 10 - 310 - 201 - 17 - - - - - 75 - true - - - - Warning: avoid "Manual" - - - - - - 10 - 330 - 201 - 17 - - - - - 75 - true - - - - for multirotors! - - - - - - Arming Settings - - - - - - - - Arm airframe using throttle off, plus: - - - - - - - Indicate the control used for arming the airframe. - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Arming timeout: - - - - - - - After the time indicated here, the frame will be disarmed. - - - 64 - - - - - - - seconds. - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Get Current - - - - - - - Save to RAM - - - - - - - Save to SD - - - - - - - - - - - - - ch0Slider - ch1Slider - ch2Slider - ch3Slider - ch4Slider - ch5Slider - ch6Slider - ch7Slider - ch0Assign - ch1Assign - ch2Assign - ch3Assign - ch4Assign - ch5Assign - ch6Assign - ch7Assign - receiverType - doRCInputCalibration - getRCInputCurrent - saveRCInputToRAM - saveRCInputToSD - channelOutTest - outputRate1 - outputRate2 - ch0Output - ch0OutMin - ch0OutSlider - ch0OutMax - ch0Rev - ch1Output - ch1OutMin - ch1OutSlider - ch1OutMax - ch1Rev - ch2Output - ch2OutMin - ch2OutSlider - ch2OutMax - ch2Rev - ch3Output - ch3OutMin - ch3OutSlider - ch3OutMax - ch3Rev - ch4Output - ch4OutMin - ch4OutSlider - ch4OutMax - ch4Rev - ch5Output - ch5OutMin - ch5OutSlider - ch5OutMax - ch5Rev - ch6Output - ch6OutMin - ch6OutSlider - ch6OutMax - ch6Rev - ch7Output - ch7OutMin - ch7OutSlider - ch7OutMax - ch7Rev - getRCOutputCurrent - saveRCOutputToRAM - saveRCOutputToSD - fmsSlider - fmsModePos3 - fmsSsPos3Roll - fmsSsPos3Pitch - fmsSsPos3Yaw - fmsModePos2 - fmsSsPos2Roll - fmsSsPos2Pitch - fmsSsPos2Yaw - fmsModePos1 - fmsSsPos1Roll - fmsSsPos1Pitch - fmsSsPos1Yaw - getFmsCurrent - saveFmsToRAM - saveFmsToSD - - - - - ch2Slider - valueChanged(int) - ch2Cur - setNum(int) - - - 172 - 141 - - - 181 - 217 - - - - - ch0Slider - valueChanged(int) - ch0Cur - setNum(int) - - - 40 - 151 - - - 61 - 217 - - - - - ch1Slider - valueChanged(int) - ch1Cur - setNum(int) - - - 103 - 161 - - - 116 - 216 - - - - - ch3Slider - valueChanged(int) - ch3Cur - setNum(int) - - - 242 - 160 - - - 242 - 217 - - - - - ch4Slider - valueChanged(int) - ch4Cur - setNum(int) - - - 312 - 152 - - - 312 - 217 - - - - - ch5Slider - valueChanged(int) - ch5Cur - setNum(int) - - - 382 - 164 - - - 382 - 217 - - - - - ch6Slider - valueChanged(int) - ch6Cur - setNum(int) - - - 469 - 171 - - - 462 - 217 - - - - - ch7Slider - valueChanged(int) - ch7Cur - setNum(int) - - - 539 - 168 - - - 532 - 217 - - - - - doRCInputCalibration - toggled(bool) - ch0Slider - setDisabled(bool) - - - 33 - 293 - - - 38 - 170 - - - - - doRCInputCalibration - toggled(bool) - ch1Slider - setDisabled(bool) - - - 91 - 291 - - - 103 - 112 - - - - - doRCInputCalibration - toggled(bool) - ch2Slider - setDisabled(bool) - - - 106 - 296 - - - 172 - 127 - - - - - doRCInputCalibration - toggled(bool) - ch3Slider - setDisabled(bool) - - - 104 - 291 - - - 242 - 131 - - - - - doRCInputCalibration - toggled(bool) - ch4Slider - setDisabled(bool) - - - 76 - 291 - - - 312 - 110 - - - - - doRCInputCalibration - toggled(bool) - ch5Slider - setDisabled(bool) - - - 50 - 291 - - - 382 - 124 - - - - - doRCInputCalibration - toggled(bool) - ch6Slider - setDisabled(bool) - - - 74 - 291 - - - 469 - 142 - - - - - doRCInputCalibration - toggled(bool) - ch7Slider - setDisabled(bool) - - - 62 - 296 - - - 539 - 171 - - - - - + + + SettingsWidget + + + + 0 + 0 + 720 + 480 + + + + Form + + + + + + 0 + + + + RC Input + + + + + 20 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 20 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 90 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 440 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 510 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 300 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 510 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 270 + 310 + 93 + 27 + + + + Retrieve settings from OpenPilot + + + Get Current + + + + + + 160 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 440 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 370 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 230 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 490 + 310 + 93 + 27 + + + + Be sure to set the Neutral position on all sliders before sending! +Applies and Saves all settings to SD + + + Save to SD + + + + + + 300 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 300 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 380 + 310 + 93 + 27 + + + + Send to OpenPilot but don't write in SD. +Be sure to set the Neutral position on all sliders before sending! + + + Save to RAM + + + + + + 10 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + 16 + 16 + + + + true + + + + + + 230 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 510 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 160 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 370 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 370 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 90 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 440 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 230 + 160 + 31 + 17 + + + + + FreeSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:9pt;">Current channel value.</span></p></body></html> + + + 1000 + + + + + + 160 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 90 + 10 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 2000 + + + + + + 20 + 130 + 31 + 17 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum channel pulse width</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(microseconds)</p></body></html> + + + 1000 + + + + + + 80 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 150 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 220 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 290 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 360 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 430 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 500 + 180 + 61 + 21 + + + + + DejaVu Sans + 7 + + + + + + + 20 + 250 + 131 + 22 + + + + Start calibrating the RC Inputs. +Uncheck/Check to restart calibration. +During calibration: move your RC controls over their whole range, +then leave them on Neutral, uncheck calibration and save. +Neutral should be put at the bottom of the slider for the throttle. + + + Run Calibration + + + + + + 320 + 210 + 181 + 20 + + + + Indicates whether OpenPilot is getting a signal from the RC receiver. + + + RC Receiver Not Connected + + + + + + 130 + 210 + 89 + 21 + + + + Select the receiver type here: +- PWM is the most usual type +- PPM is connected to input XXX +- Spektrum is used with Spektrum 'satellite' receivers + + + + + + 10 + 210 + 131 + 17 + + + + RC Receiver Type: + + + + + + 20 + 270 + 531 + 41 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; color:#ff0000;">BEWARE: make sure your engines are not connected</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; color:#ff0000;">when running calibration!</span></p></body></html> + + + + + + 10 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 80 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 150 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 220 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 290 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 360 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 430 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + 500 + 30 + 44 + 100 + + + + + 0 + 0 + + + + + 1 + 1 + + + + false + + + false + + + background-color: rgb(165, 165, 165); + + + + + + Servo Output + + + + + 10 + 10 + 221 + 17 + + + + Aircraft type: undefined + + + + + + 10 + 70 + 71 + 17 + + + + Channel 1 + + + + + + 10 + 100 + 71 + 17 + + + + Channel 2 + + + + + + 10 + 130 + 71 + 17 + + + + Channel 3 + + + + + + 10 + 160 + 71 + 17 + + + + Channel 4 + + + + + + 10 + 190 + 71 + 17 + + + + Channel 5 + + + + + + 10 + 220 + 71 + 17 + + + + Channel 6 + + + + + true + + + + 300 + 70 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 70 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + true + + + + 240 + 70 + 55 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minimum PWM value, beware of not overdriving your servo.</p></body></html> + + + 9999 + + + + + true + + + + 460 + 70 + 55 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Maximum PWM value, beware of not overdriving your servo.</p></body></html> + + + 9999 + + + + + true + + + + 10 + 40 + 151 + 22 + + + + Move the servos using the sliders. Two important things: +- Take extra care if the output is connected to an motor controller! +- Will only work if the RC receiver is working (failsafe) + + + Test outputs + + + + + + 10 + 250 + 71 + 17 + + + + Channel 7 + + + + + + 10 + 280 + 71 + 17 + + + + Channel 8 + + + + + false + + + + 100 + 100 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + true + + + + 460 + 100 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + true + + + + 240 + 100 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + true + + + + 300 + 100 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 130 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + true + + + + 460 + 130 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + true + + + + 240 + 130 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + true + + + + 300 + 130 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 160 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + true + + + + 460 + 160 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + true + + + + 240 + 160 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + true + + + + 300 + 160 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 190 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + + 460 + 190 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 240 + 190 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 300 + 190 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 220 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + + 460 + 220 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 240 + 220 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 300 + 220 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 250 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + + 460 + 250 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 240 + 250 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 300 + 250 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + false + + + + 100 + 280 + 121 + 21 + + + + + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">This is the actuator connected to this channel.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans';">You can change this through the &quot;Airframe&quot; dialog (on the left).</span></p></body></html> + + + + + + 460 + 280 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 240 + 280 + 55 + 21 + + + + + 8 + + + + 9999 + + + + + + 300 + 280 + 160 + 18 + + + + 9999 + + + Qt::Horizontal + + + + + + 490 + 310 + 93 + 27 + + + + Be sure to set the Neutral position on all sliders before sending! +Applies and Saves all settings to SD + + + Save to SD + + + + + + 270 + 310 + 93 + 27 + + + + Retrieve settings from OpenPilot + + + Get Current + + + + + + 380 + 310 + 93 + 27 + + + + Send to OpenPilot but don't write in SD. +Be sure to set the Neutral position on all sliders before sending! + + + Save to RAM + + + + + + 240 + 10 + 291 + 51 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 220 + 20 + 55 + 27 + + + + Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes. +Leave at 50Hz for fixed wing. + + + 9999 + + + + + + 20 + 20 + 81 + 17 + + + + Update rate: + + + + + + 120 + 20 + 55 + 27 + + + + Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes. +Leave at 50Hz for fixed wing. + + + 9999 + + + + + + 110 + 0 + 81 + 17 + + + + Channel 0-3 + + + + + + 210 + 0 + 81 + 17 + + + + Channel 4-7 + + + + + + + 520 + 70 + 41 + 17 + + + + Current value of slider. + + + 0000 + + + + + + 520 + 100 + 41 + 17 + + + + 0000 + + + + + + 520 + 130 + 41 + 17 + + + + 0000 + + + + + + 520 + 160 + 41 + 17 + + + + 0000 + + + + + + 520 + 190 + 41 + 17 + + + + 0000 + + + + + + 520 + 220 + 41 + 17 + + + + 0000 + + + + + + 520 + 250 + 41 + 17 + + + + 0000 + + + + + + 520 + 280 + 41 + 17 + + + + 0000 + + + + + + 560 + 220 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 70 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 130 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 250 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 280 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 100 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 160 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 190 + 21 + 22 + + + + + FreeSans + 8 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html> + + + + + + + + + 560 + 50 + 31 + 17 + + + + Rev. + + + + + + Flight Mode Switch Settings + + + + + 10 + 10 + 331 + 17 + + + + Setup the behaviour of the flight mode switch: + + + + + false + + + + 60 + 70 + 20 + 231 + + + + This slider moves when you move the flight mode switch +on your remote. Setup the flightmode channel on the RC Input tab +if you have not done so already. + + + -100 + + + 100 + + + 10 + + + -100 + + + Qt::Vertical + + + QSlider::TicksBelow + + + 66 + + + + + + 120 + 50 + 41 + 17 + + + + + 75 + true + + + + Mode + + + + + + 100 + 100 + 89 + 31 + + + + Select the stabilization mode on this position (manual/stabilized/auto) + + + + + + 100 + 170 + 89 + 31 + + + + + + + 100 + 240 + 89 + 31 + + + + + + + 210 + 40 + 361 + 251 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 20 + 40 + 62 + 17 + + + + Roll + + + + + + 140 + 40 + 62 + 17 + + + + Pitch + + + + + + 260 + 40 + 62 + 17 + + + + Yaw + + + + + + 10 + 60 + 89 + 31 + + + + + + + 130 + 60 + 89 + 31 + + + + + + + 250 + 60 + 89 + 31 + + + + + + + 10 + 130 + 89 + 31 + + + + + + + 130 + 130 + 89 + 31 + + + + + + + 250 + 130 + 89 + 31 + + + + + + + 10 + 200 + 89 + 31 + + + + + + + 130 + 200 + 89 + 31 + + + + + + + 250 + 200 + 89 + 31 + + + + + + + 20 + 10 + 191 + 17 + + + + + 75 + true + + + + Stabilization Settings + + + + + + + 10 + 110 + 62 + 17 + + + + Pos. 3 + + + + + + 10 + 180 + 62 + 17 + + + + Pos. 2 + + + + + + 10 + 240 + 62 + 17 + + + + Pos. 1 + + + + + + 270 + 310 + 93 + 27 + + + + Retrieve settings from OpenPilot + + + Get Current + + + + + + 380 + 310 + 93 + 27 + + + + Send to OpenPilot but don't write in SD. +Be sure to set the Neutral position on all sliders before sending! + + + Save to RAM + + + + + + 490 + 310 + 93 + 27 + + + + Be sure to set the Neutral position on all sliders before sending! +Applies and Saves all settings to SD + + + Save to SD + + + + + + 10 + 310 + 201 + 17 + + + + + 75 + true + + + + Warning: avoid "Manual" + + + + + + 10 + 330 + 201 + 17 + + + + + 75 + true + + + + for multirotors! + + + + + + Arming Settings + + + + + + + + Arm airframe using throttle off, plus: + + + + + + + Indicate the control used for arming the airframe. + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Arming timeout: + + + + + + + After the time indicated here, the frame will be disarmed. + + + 64 + + + + + + + seconds. + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Get Current + + + + + + + Save to RAM + + + + + + + Save to SD + + + + + + + + + + + + + + WidgetBar + QWidget +
widgetbar.h
+
+
+ + ch0Assign + ch1Assign + ch2Assign + ch3Assign + ch4Assign + ch5Assign + ch6Assign + ch7Assign + receiverType + doRCInputCalibration + getRCInputCurrent + saveRCInputToRAM + saveRCInputToSD + channelOutTest + outputRate1 + outputRate2 + ch0Output + ch0OutMin + ch0OutSlider + ch0OutMax + ch0Rev + ch1Output + ch1OutMin + ch1OutSlider + ch1OutMax + ch1Rev + ch2Output + ch2OutMin + ch2OutSlider + ch2OutMax + ch2Rev + ch3Output + ch3OutMin + ch3OutSlider + ch3OutMax + ch3Rev + ch4Output + ch4OutMin + ch4OutSlider + ch4OutMax + ch4Rev + ch5Output + ch5OutMin + ch5OutSlider + ch5OutMax + ch5Rev + ch6Output + ch6OutMin + ch6OutSlider + ch6OutMax + ch6Rev + ch7Output + ch7OutMin + ch7OutSlider + ch7OutMax + ch7Rev + getRCOutputCurrent + saveRCOutputToRAM + saveRCOutputToSD + fmsSlider + fmsModePos3 + fmsSsPos3Roll + fmsSsPos3Pitch + fmsSsPos3Yaw + fmsModePos2 + fmsSsPos2Roll + fmsSsPos2Pitch + fmsSsPos2Yaw + fmsModePos1 + fmsSsPos1Roll + fmsSsPos1Pitch + fmsSsPos1Yaw + getFmsCurrent + saveFmsToRAM + saveFmsToSD + + + +
diff --git a/ground/openpilotgcs/src/plugins/config/widgetbar.cpp b/ground/openpilotgcs/src/plugins/config/widgetbar.cpp new file mode 100644 index 000000000..a78019610 --- /dev/null +++ b/ground/openpilotgcs/src/plugins/config/widgetbar.cpp @@ -0,0 +1,78 @@ + + #include + + #include "widgetbar.h" + + WidgetBar::WidgetBar(QWidget *parent) + : QWidget(parent) + { + m_maximum = 2000; + m_minimum = 1000; + m_value = 1500; + + setBackgroundRole(QPalette::Base); + setAutoFillBackground(true); + } + + QSize WidgetBar::minimumSizeHint() const + { + return QSize(8, 8); + } + + QSize WidgetBar::sizeHint() const + { + return QSize(200, 400); + } + + void WidgetBar::setMaximum(int value) + { + m_maximum = value; + update(); + } + + void WidgetBar::setMinimum(int value) + { + m_minimum = value; + update(); + } + + void WidgetBar::setValue(int value) + { + if (value < m_minimum) value = m_minimum; + else + if (value > m_maximum) value = m_maximum; + + m_value = value; + update(); + } + + void WidgetBar::paintEvent(QPaintEvent * /* event */) + { + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing, false); + + int range = abs(m_maximum - m_minimum); + if (range < 1) range = 1; + + float level = (float)(m_value - m_minimum) / range; // 0 to +1 + + int h = (int)((height() - 5) * level + 0.5f); + + QRect rect; + rect.setLeft(2); + rect.setTop(height() - 3 - h); + rect.setWidth(width() - 5); + rect.setHeight(h); + + // background + painter.setPen(QColor(160, 160, 160)); + painter.setBrush(QColor(255, 255, 255)); + painter.drawRect(QRect(0, 0, width() - 1, height() - 1)); + + if ((m_maximum - m_minimum) > 0) + { + painter.setPen(QColor(128, 128, 255)); + painter.setBrush(QColor(128, 128, 255)); + painter.drawRoundRect(rect, 3, 3); + } +} diff --git a/ground/openpilotgcs/src/plugins/config/widgetbar.h b/ground/openpilotgcs/src/plugins/config/widgetbar.h new file mode 100644 index 000000000..bf486c73f --- /dev/null +++ b/ground/openpilotgcs/src/plugins/config/widgetbar.h @@ -0,0 +1,37 @@ + + #ifndef WIDGETBAR_H + #define WIDGETBAR_H + + #include + #include + #include + #include + + class WidgetBar : public QWidget + { + Q_OBJECT + + public: + WidgetBar(QWidget *parent = 0); + + QSize minimumSizeHint() const; + QSize sizeHint() const; + + void setMaximum(int value); + void setMinimum(int value); + void setValue(int value); + + int maximum() { return m_maximum; } + int minimum() { return m_minimum; } + int value() { return m_value; } + + protected: + void paintEvent(QPaintEvent *event); + + private: + int m_maximum; + int m_minimum; + int m_value; + }; + + #endif