From 46a436ef53438c5320039b1e47dc058f272f68cf Mon Sep 17 00:00:00 2001 From: Bryant Date: Sat, 25 May 2013 16:11:51 -0700 Subject: [PATCH 1/5] Small code cleanup. If statement was removed because at this point 'mav' has already been assumed to be non-null for a while. --- src/ui/QGCVehicleConfig.cc | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/ui/QGCVehicleConfig.cc b/src/ui/QGCVehicleConfig.cc index 348dab3..13e4511 100644 --- a/src/ui/QGCVehicleConfig.cc +++ b/src/ui/QGCVehicleConfig.cc @@ -174,6 +174,7 @@ void QGCVehicleConfig::stopCalibrationRC() void QGCVehicleConfig::loadQgcConfig(bool primary) { + Q_UNUSED(primary); QDir autopilotdir(qApp->applicationDirPath() + "/files/" + mav->getAutopilotTypeName().toLower()); QDir generaldir = QDir(autopilotdir.absolutePath() + "/general/widgets"); QDir vehicledir = QDir(autopilotdir.absolutePath() + "/" + mav->getSystemTypeName().toLower() + "/widgets"); @@ -321,7 +322,6 @@ void QGCVehicleConfig::loadQgcConfig(bool primary) } } - // Load calibration //TODO: Handle this more gracefully, maybe have it scan the directory for multiple calibration entries? tool = new QGCToolWidget("", this); @@ -338,7 +338,6 @@ void QGCVehicleConfig::loadQgcConfig(bool primary) delete tool; } - tool = new QGCToolWidget("", this); tool->addUAS(mav); if (tool->loadSettings(autopilotdir.absolutePath() + "/" + mav->getSystemTypeName().toLower() + "/calibration/calibration.qgw", false)) @@ -352,16 +351,12 @@ void QGCVehicleConfig::loadQgcConfig(bool primary) } else { delete tool; } + //description.txt QFile sensortipsfile(autopilotdir.absolutePath() + "/general/calibration/description.txt"); sensortipsfile.open(QIODevice::ReadOnly); ui->sensorTips->setHtml(sensortipsfile.readAll()); sensortipsfile.close(); - - - - - } void QGCVehicleConfig::loadConfig() @@ -679,10 +674,8 @@ void QGCVehicleConfig::loadConfig() } xml.readNext(); } - if (mav) - { - mav->getParamManager()->setParamInfo(paramTooltips); - } + + mav->getParamManager()->setParamInfo(paramTooltips); doneLoadingConfig = true; mav->requestParameters(); //Config is finished, lets do a parameter request to ensure none are missed if someone else started requesting before we were finished. } From 1268b9454672251208c7f48180a3c6d889be5da7 Mon Sep 17 00:00:00 2001 From: Bryant Date: Sat, 25 May 2013 16:12:26 -0700 Subject: [PATCH 2/5] Fixed warning comparing ints of different signed-ness. Everything should just be unsigned here. --- src/ui/QGCVehicleConfig.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ui/QGCVehicleConfig.cc b/src/ui/QGCVehicleConfig.cc index 13e4511..03c12a8 100644 --- a/src/ui/QGCVehicleConfig.cc +++ b/src/ui/QGCVehicleConfig.cc @@ -1058,9 +1058,9 @@ void QGCVehicleConfig::parameterChanged(int uas, int component, QString paramete if (minTpl.exactMatch(parameterName)) { bool ok; - int index = parameterName.mid(2, 1).toInt(&ok) - 1; + unsigned int index = parameterName.mid(2, 1).toInt(&ok) - 1; //qDebug() << "PARAM:" << parameterName << "index:" << index; - if (ok && (index >= 0) && (index < chanMax)) + if (ok && index < chanMax) { rcMin[index] = value.toInt(); } @@ -1068,8 +1068,8 @@ void QGCVehicleConfig::parameterChanged(int uas, int component, QString paramete if (maxTpl.exactMatch(parameterName)) { bool ok; - int index = parameterName.mid(2, 1).toInt(&ok) - 1; - if (ok && (index >= 0) && (index < chanMax)) + unsigned int index = parameterName.mid(2, 1).toInt(&ok) - 1; + if (ok && index < chanMax) { rcMax[index] = value.toInt(); } @@ -1077,8 +1077,8 @@ void QGCVehicleConfig::parameterChanged(int uas, int component, QString paramete if (trimTpl.exactMatch(parameterName)) { bool ok; - int index = parameterName.mid(2, 1).toInt(&ok) - 1; - if (ok && (index >= 0) && (index < chanMax)) + unsigned int index = parameterName.mid(2, 1).toInt(&ok) - 1; + if (ok && index < chanMax) { rcTrim[index] = value.toInt(); } @@ -1086,8 +1086,8 @@ void QGCVehicleConfig::parameterChanged(int uas, int component, QString paramete if (revTpl.exactMatch(parameterName)) { bool ok; - int index = parameterName.mid(2, 1).toInt(&ok) - 1; - if (ok && (index >= 0) && (index < chanMax)) + unsigned int index = parameterName.mid(2, 1).toInt(&ok) - 1; + if (ok && index < chanMax) { rcRev[index] = (value.toInt() == -1) ? true : false; updateInvertedCheckboxes(index); From 853fee842c779c4412e685e366e04c797980c9f3 Mon Sep 17 00:00:00 2001 From: Bryant Date: Sat, 25 May 2013 16:14:33 -0700 Subject: [PATCH 3/5] Set most UI to disabled by default with it only enabled on the addition of an active UAS. Added all missing parameter control buttons to the Vehicle Config widget. --- src/ui/QGCVehicleConfig.cc | 16 +- src/ui/QGCVehicleConfig.ui | 851 ++++++++++++++++++++++++++++++--------------- 2 files changed, 582 insertions(+), 285 deletions(-) diff --git a/src/ui/QGCVehicleConfig.cc b/src/ui/QGCVehicleConfig.cc index 03c12a8..181daba 100644 --- a/src/ui/QGCVehicleConfig.cc +++ b/src/ui/QGCVehicleConfig.cc @@ -52,7 +52,7 @@ QGCVehicleConfig::QGCVehicleConfig(QWidget *parent) : ui->rcCalibrationButton->setCheckable(true); connect(ui->rcCalibrationButton, SIGNAL(clicked(bool)), this, SLOT(toggleCalibrationRC(bool))); - connect(ui->storeButton, SIGNAL(clicked()), this, SLOT(writeParameters())); + connect(ui->setButton, SIGNAL(clicked()), this, SLOT(writeParameters())); connect(ui->rcModeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setRCModeIndex(int))); connect(ui->setTrimButton, SIGNAL(clicked()), this, SLOT(setTrimPositions())); @@ -729,18 +729,24 @@ void QGCVehicleConfig::setActiveUAS(UASInterface* active) mav->getParamManager()->setParamInfo(paramTooltips); } - // mav->requestParameters(); - - QString defaultsDir = qApp->applicationDirPath() + "/files/" + mav->getAutopilotTypeName().toLower() + "/widgets/"; qDebug() << "CALIBRATION!! System Type Name:" << mav->getSystemTypeName(); - //Load configuration after 1ms. This allows it to go into the event loop, and prevents application hangups due to the //amount of time it actually takes to load the configuration windows. QTimer::singleShot(1,this,SLOT(loadConfig())); updateStatus(QString("Reading from system %1").arg(mav->getUASName())); + + // Since a system is now connected, enable the VehicleConfig UI. + ui->tabWidget->setEnabled(true); + ui->setButton->setEnabled(true); + ui->refreshButton->setEnabled(true); + ui->readButton->setEnabled(true); + ui->writeButton->setEnabled(true); + ui->loadFileButton->setEnabled(true); + ui->saveFileButton->setEnabled(true); } + void QGCVehicleConfig::resetCalibrationRC() { for (unsigned int i = 0; i < chanMax; ++i) diff --git a/src/ui/QGCVehicleConfig.ui b/src/ui/QGCVehicleConfig.ui index 1ed13b2..206e76d 100644 --- a/src/ui/QGCVehicleConfig.ui +++ b/src/ui/QGCVehicleConfig.ui @@ -6,52 +6,53 @@ 0 0 - 760 - 541 + 774 + 846 + + + 0 + 0 + + Form - - - 6 - - - 8 - + 6 - - - - Store to EEPROM + + + + false - - - - - - No pending changes + + + 0 + 0 + - - - - - 2 + 3 + + + 0 + 0 + + RC Calibration - + 20 - - + + 0 @@ -66,8 +67,21 @@ - - + + + + Qt::Vertical + + + + 598 + 5 + + + + + + 0 @@ -82,6 +96,19 @@ + + + + 0 + + + 100 + + + Qt::Vertical + + + @@ -102,7 +129,7 @@ - true + false @@ -128,15 +155,31 @@ - - + + + + Qt::Horizontal + + + + 22 + 122 + + + + + + Qt::Vertical + + QSizePolicy::MinimumExpanding + - 598 - 5 + 20 + 10 @@ -148,6 +191,187 @@ + + + + Qt::Vertical + + + + 598 + 17 + + + + + + + + Set Trim + + + + + + + + + + :/files/images/rc_stick.svg + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 1 + 1 + + + + + 10 + 10 + + + + + 100 + 100 + + + + + + + :/files/images/rc_stick.svg + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + 100 + + + Qt::Vertical + + + + + + + 0 + + + 100 + + + Qt::Vertical + + + + + + + 0 + + + 100 + + + Qt::Vertical + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + 100 + + + 0 + + + Qt::Horizontal + + + + + + + 0 + + + 100 + + + 0 + + + Qt::Horizontal + + + + + + + Start Calibration + + + @@ -246,6 +470,9 @@ + + false + Invert @@ -401,6 +628,9 @@ + + false + Invert @@ -408,6 +638,9 @@ + + false + Invert @@ -489,6 +722,9 @@ + + false + Invert @@ -496,232 +732,15 @@ - - - - Qt::Horizontal - - - - 22 - 122 - - - - - - - - Qt::Vertical - - - - 598 - 17 - - - - - - - - - - - :/files/images/rc_stick.svg - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 1 - 1 - - - - - 10 - 10 - - - - - 100 - 100 - - - - - - - :/files/images/rc_stick.svg - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 0 - - - 100 - - - 0 - - - Qt::Horizontal - - - - - - - 0 - - - 100 - - - 0 - - - Qt::Horizontal - - - - - - - Start Calibration - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 10 - - - - - - - - 0 - - - 100 - - - Qt::Vertical - - - - - - - 0 - - - 100 - - - Qt::Vertical - - - - - - - 0 - - - 100 - - - Qt::Vertical - - - - - - - 0 - - - 100 - - - Qt::Vertical - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Set Trim - - - + + + 0 + 0 + + Sensor Calibration @@ -734,8 +753,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:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html> +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html> @@ -751,8 +770,8 @@ p, li { white-space: pre-wrap; } 0 0 - 354 - 448 + 362 + 489 @@ -769,7 +788,13 @@ p, li { white-space: pre-wrap; } - + + + + 0 + 0 + + General Config @@ -790,10 +815,17 @@ p, li { white-space: pre-wrap; } - + + + false + + - + + + false + Load Platform Defaults @@ -804,7 +836,7 @@ p, li { white-space: pre-wrap; } - + Configuration @@ -822,8 +854,8 @@ p, li { white-space: pre-wrap; } 0 0 - 354 - 404 + 356 + 438 @@ -841,7 +873,7 @@ p, li { white-space: pre-wrap; } - + Configuration @@ -859,8 +891,8 @@ p, li { white-space: pre-wrap; } 0 0 - 354 - 404 + 356 + 438 @@ -881,7 +913,13 @@ p, li { white-space: pre-wrap; } - + + + + 0 + 0 + + Advanced Config @@ -902,10 +940,17 @@ p, li { white-space: pre-wrap; } - + + + false + + - + + + false + Load Platform Defaults @@ -916,11 +961,20 @@ p, li { white-space: pre-wrap; } - + + + + 0 + 0 + + Configuration + + QLayout::SetNoConstraint + 0 @@ -934,16 +988,26 @@ p, li { white-space: pre-wrap; } 0 0 - 354 - 404 + 356 + 438 + + + 0 + 0 + + 0 - + + + 0 + + @@ -953,7 +1017,13 @@ p, li { white-space: pre-wrap; } - + + + + 0 + 0 + + Configuration @@ -963,6 +1033,9 @@ p, li { white-space: pre-wrap; } + + false + true @@ -971,10 +1044,16 @@ p, li { white-space: pre-wrap; } 0 0 - 354 - 404 + 356 + 438 + + + 0 + 0 + + 0 @@ -995,6 +1074,218 @@ p, li { white-space: pre-wrap; } + + + + 0 + + + QLayout::SetDefaultConstraint + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + 0 + 0 + + + + No pending changes + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + false + + + Load parameters currently in non-permanent memory of aircraft. + + + + + + Get (UAS) + + + + + + + false + + + Set current parameters in non-permanent onboard memory. + + + + + + Set (UAS) + + + + + + + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + false + + + Load parameters from a file on this computer in the view. To write them to the aircraft, use transmit after loading them. + + + + + + Load (File) + + + + + + + false + + + Save parameters in this view to a file on this computer. + + + + + + Save (File) + + + + + + + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + false + + + Copy parameters from permanent memory to non-permanent current memory of aircraft. DOES NOT update the parameters in this view, click refresh after copying them to get them. + + + + + + + + + Read (ROM) + + + + + + + false + + + Copy current parameters in non-permanent memory of the aircraft to permanent memory. Transmit your parameters first to write these. + + + + + + Write (ROM) + + + + + + + From ac7912515922dde60557e6c52c7f3646ef9fcf54 Mon Sep 17 00:00:00 2001 From: Bryant Date: Sat, 25 May 2013 16:15:04 -0700 Subject: [PATCH 4/5] Removed extraneous debug statement that just cluttered the console. Hard to debug anything else with this active. --- src/ui/dockwidgettitlebareventfilter.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ui/dockwidgettitlebareventfilter.cpp b/src/ui/dockwidgettitlebareventfilter.cpp index ca5951d..5251921 100644 --- a/src/ui/dockwidgettitlebareventfilter.cpp +++ b/src/ui/dockwidgettitlebareventfilter.cpp @@ -6,7 +6,6 @@ DockWidgetTitleBarEventFilter::DockWidgetTitleBarEventFilter(QObject *parent) : } bool DockWidgetTitleBarEventFilter::eventFilter(QObject *object,QEvent *event) { - qDebug() << event->type(); if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease) { return true; From 81f01e17a100263e4d8d14e090e1dfe779c3bcfa Mon Sep 17 00:00:00 2001 From: Bryant Date: Sat, 25 May 2013 16:19:05 -0700 Subject: [PATCH 5/5] Accidently disabled one of the config panes by default; restoring it. --- src/ui/QGCVehicleConfig.ui | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ui/QGCVehicleConfig.ui b/src/ui/QGCVehicleConfig.ui index 206e76d..9e3fccb 100644 --- a/src/ui/QGCVehicleConfig.ui +++ b/src/ui/QGCVehicleConfig.ui @@ -1033,9 +1033,6 @@ p, li { white-space: pre-wrap; } - - false - true