From 2b94a1538b980d5ec9fdd823ce118f2620e6ae1a Mon Sep 17 00:00:00 2001 From: zedamota Date: Fri, 25 Nov 2011 23:47:39 +0000 Subject: [PATCH 1/5] Make the outputs test function disable when the connection is lost. --- .../src/plugins/config/configoutputwidget.cpp | 8 ++++++++ .../openpilotgcs/src/plugins/config/configoutputwidget.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp index 56af19517..33c582315 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp @@ -170,6 +170,13 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren this->setEnabled(false); connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(disableIfNotMe(UAVObject*))); } +void ConfigOutputWidget::enableControls(bool enable) +{ + ConfigTaskWidget::enableControls(enable); + if(!enable) + m_config->channelOutTest->setChecked(false); + m_config->channelOutTest->setEnabled(enable); +} ConfigOutputWidget::~ConfigOutputWidget() { @@ -216,6 +223,7 @@ void ConfigOutputWidget::linkToggled(bool state) */ void ConfigOutputWidget::runChannelTests(bool state) { + qDebug()<<"configoutputwidget runChannelTests"<getData(); diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.h b/ground/openpilotgcs/src/plugins/config/configoutputwidget.h index 8733fb314..8f92a296b 100644 --- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.h @@ -46,6 +46,7 @@ public: ConfigOutputWidget(QWidget *parent = 0); ~ConfigOutputWidget(); + private: Ui_OutputWidget *m_config; @@ -82,6 +83,8 @@ private slots: void linkToggled(bool state); void setSpinningArmed(bool val); void openHelp(); +protected: + void enableControls(bool enable); }; #endif From 9eaf09860c986823fbaad272e5d35f87be560f2c Mon Sep 17 00:00:00 2001 From: zedamota Date: Fri, 25 Nov 2011 23:59:42 +0000 Subject: [PATCH 2/5] Delay the running device info fetching by 1 second. --- .../src/plugins/uploader/uploadergadgetwidget.cpp | 6 +++++- .../src/plugins/uploader/uploadergadgetwidget.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp index fce448451..c0a1aea90 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.cpp @@ -125,6 +125,11 @@ void UploaderGadgetWidget::onPhisicalHWConnect() Enables widget buttons if autopilot connected */ void UploaderGadgetWidget::onAutopilotConnect(){ + QTimer::singleShot(1000,this,SLOT(populate())); +} + +void UploaderGadgetWidget::populate() +{ m_config->haltButton->setEnabled(true); m_config->resetButton->setEnabled(true); m_config->bootButton->setEnabled(false); @@ -141,7 +146,6 @@ void UploaderGadgetWidget::onAutopilotConnect(){ runningDeviceWidget* dw = new runningDeviceWidget(this); dw->populate(); m_config->systemElements->addTab(dw, QString("Connected Device")); - } /** diff --git a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h index 93ea6e14d..9b1fa1433 100755 --- a/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h +++ b/ground/openpilotgcs/src/plugins/uploader/uploadergadgetwidget.h @@ -73,7 +73,7 @@ public: public slots: void onAutopilotConnect(); void onAutopilotDisconnect(); - + void populate(); private: Ui_UploaderWidget *m_config; DFUObject *dfu; From 77058807b4eeeeff9ee2d91ae77a7a85a7e96b3b Mon Sep 17 00:00:00 2001 From: zedamota Date: Sat, 26 Nov 2011 00:04:36 +0000 Subject: [PATCH 3/5] Added some more debug messages to help catch bugs, no that there are any. --- ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp | 1 + .../openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp index 4eca15bf9..d40db122f 100644 --- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp @@ -134,6 +134,7 @@ void ConfigGadgetWidget::onAutopilotDisconnect() { void ConfigGadgetWidget::onAutopilotConnect() { + qDebug()<<"ConfigGadgetWidget onAutopilotConnect"; // First of all, check what Board type we are talking to, and // if necessary, remove/add tabs in the config gadget: ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); diff --git a/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp b/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp index f63c6e7da..9dfa46518 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp +++ b/ground/openpilotgcs/src/plugins/coreplugin/connectionmanager.cpp @@ -358,7 +358,10 @@ void ConnectionManager::devChanged(IConnection *connection) if(m_mainWindow->generalSettings()->autoConnect() || m_mainWindow->generalSettings()->autoSelect()) m_availableDevList->setCurrentIndex(m_availableDevList->count()-1); if(m_mainWindow->generalSettings()->autoConnect()) + { connectDevice(); + qDebug()<<"ConnectionManager::devChanged autoconnected USB device"; + } } } if(m_ioDev)//if a device is connected make it the one selected on the dropbox From 27de9fcb08fa4c5bcb08833378046dec23612980 Mon Sep 17 00:00:00 2001 From: zedamota Date: Sat, 26 Nov 2011 00:06:45 +0000 Subject: [PATCH 4/5] Some tweaks to detection and connection timings. Should fix some issues with "halt". --- .../src/plugins/rawhid/usbmonitor_win.cpp | 23 +++++++++++++++---- .../src/plugins/uploader/op_dfu.cpp | 12 +++++++--- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_win.cpp b/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_win.cpp index 4eded8e7c..c2ab1fa9c 100644 --- a/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_win.cpp +++ b/ground/openpilotgcs/src/plugins/rawhid/usbmonitor_win.cpp @@ -28,7 +28,8 @@ #include #include #include - +#include +#include #include "usbmonitor.h" #include #define printf qDebug @@ -78,9 +79,9 @@ QList USBMonitor::availableDevices(int vid, int pid, int bcdDeviceM { QList allPorts = availableDevices(); QList thePortsWeWant; - + qDebug()<<"USBMonitor::availableDevices bcdLSB="< devices; devices = USBMonitor::instance()->availableDevices(0x20a0,-1,-1,USBMonitor::Bootloader); if (devices.length()==1) { hidHandle.open(1,devices.first().vendorID,devices.first().productID,0,0); + qDebug()<<"OP_DFU detected first time"; } else { // Wait for the board to appear on the USB bus: - QEventLoop m_eventloop; connect(USBMonitor::instance(), SIGNAL(deviceDiscovered(USBPortInfo)),&m_eventloop, SLOT(quit())); - QTimer::singleShot(5000,&m_eventloop, SLOT(quit())); + QTimer::singleShot(15000,&m_eventloop, SLOT(quit())); m_eventloop.exec(); + disconnect(USBMonitor::instance(), SIGNAL(deviceDiscovered(USBPortInfo)),&m_eventloop, SLOT(quit())); devices = USBMonitor::instance()->availableDevices(0x20a0,-1,-1,USBMonitor::Bootloader); if (devices.length()==1) { - delay::msleep(2000); // Let the USB Subsystem settle (especially important on Mac!) + QTimer::singleShot(1000,&m_eventloop, SLOT(quit())); + m_eventloop.exec(); hidHandle.open(1,devices.first().vendorID,devices.first().productID,0,0); + qDebug()<<"OP_DFU detected after delay"; } else { qDebug() << devices.length() << " device(s) detected, don't know what to do!"; From 9b32d2f1198d094d50e6033ea1df3658d0ebd66d Mon Sep 17 00:00:00 2001 From: Michael Schulz Date: Sat, 26 Nov 2011 13:52:02 +0100 Subject: [PATCH 5/5] little layout fix for channelforms --- .../src/plugins/config/inputchannelform.ui | 12 ++++++++++++ .../src/plugins/config/outputchannelform.ui | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/inputchannelform.ui b/ground/openpilotgcs/src/plugins/config/inputchannelform.ui index b1b69c052..044e2437f 100644 --- a/ground/openpilotgcs/src/plugins/config/inputchannelform.ui +++ b/ground/openpilotgcs/src/plugins/config/inputchannelform.ui @@ -142,6 +142,12 @@ true + + + 0 + 0 + + Neutral @@ -149,6 +155,12 @@ + + + 0 + 0 + + Qt::Horizontal diff --git a/ground/openpilotgcs/src/plugins/config/outputchannelform.ui b/ground/openpilotgcs/src/plugins/config/outputchannelform.ui index 5c7dbd79a..49924e06e 100644 --- a/ground/openpilotgcs/src/plugins/config/outputchannelform.ui +++ b/ground/openpilotgcs/src/plugins/config/outputchannelform.ui @@ -99,7 +99,7 @@ - + 0 0 @@ -187,7 +187,7 @@ - + 0 0