From 55ed021ed47f966032302f1907f14b9568ebbae0 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Tue, 17 Jan 2012 11:02:43 -0800 Subject: [PATCH 01/13] Fixed unused variable warning in WaypointList.cc --- src/ui/WaypointList.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/WaypointList.cc b/src/ui/WaypointList.cc index eb59d36..842a9ba 100644 --- a/src/ui/WaypointList.cc +++ b/src/ui/WaypointList.cc @@ -194,7 +194,7 @@ void WaypointList::loadWaypoints() msgBox.setInformativeText("You are using the offline mission editor. Please don't forget to save your mission plan before connecting the UAV, otherwise it will be lost."); msgBox.setStandardButtons(QMessageBox::Ok); msgBox.setDefaultButton(QMessageBox::Ok); - int ret = msgBox.exec(); + msgBox.exec(); showOfflineWarning = false; } QString fileName = QFileDialog::getOpenFileName(this, tr("Load File"), ".", tr("Waypoint File (*.txt)")); @@ -260,7 +260,7 @@ void WaypointList::addEditable() msgBox.setInformativeText("You are using the offline mission editor. Please don't forget to save your mission plan before connecting the UAV, otherwise it will be lost."); msgBox.setStandardButtons(QMessageBox::Ok); msgBox.setDefaultButton(QMessageBox::Ok); - int ret = msgBox.exec(); + msgBox.exec(); showOfflineWarning = false; } } From 6dbf6dab38fdf27347f1a7a565d54995265b4cef Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Wed, 25 Jan 2012 23:05:57 -0800 Subject: [PATCH 02/13] Added tooltip to all the appropriate labels on the toolbar. Also reorganized the code to be more readable. --- src/ui/QGCToolBar.cc | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/src/ui/QGCToolBar.cc b/src/ui/QGCToolBar.cc index 00ac31c..c786f14 100644 --- a/src/ui/QGCToolBar.cc +++ b/src/ui/QGCToolBar.cc @@ -55,18 +55,28 @@ QGCToolBar::QGCToolBar(QWidget *parent) : // Add internal actions // Add MAV widget symbolButton = new QToolButton(this); + symbolButton->setStyleSheet("QWidget { background-color: #050508; color: #DDDDDF; background-clip: border; } QToolButton { font-weight: bold; font-size: 12px; border: 0px solid #999999; border-radius: 5px; min-width:22px; max-width: 22px; min-height: 22px; max-height: 22px; padding: 0px; margin: 0px 0px 0px 20px; background-color: none; }"); + addWidget(symbolButton); + toolBarNameLabel = new QLabel("------", this); + toolBarNameLabel->setToolTip(tr("Currently controlled vehicle")); + addWidget(toolBarNameLabel); + toolBarSafetyLabel = new QLabel("SAFE", this); toolBarSafetyLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #14C814; }"); + toolBarSafetyLabel->setToolTip(tr("Vehicle safety state")); + addWidget(toolBarSafetyLabel); + toolBarModeLabel = new QLabel("------", this); toolBarModeLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #3C7B9E; }"); + toolBarModeLabel->setToolTip(tr("Vehicle mode")); + addWidget(toolBarModeLabel); + toolBarStateLabel = new QLabel("------", this); toolBarStateLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #FEC654; }"); - toolBarWpLabel = new QLabel("WP--", this); - toolBarWpLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 18px; color: #3C7B9E; }"); - toolBarDistLabel = new QLabel("--- ---- m", this); - toolBarMessageLabel = new QLabel("No system messages.", this); - toolBarMessageLabel->setStyleSheet("QLabel { margin: 0px 4px; font: 12px; font-style: italic; color: #3C7B9E; }"); + toolBarStateLabel->setToolTip(tr("Vehicle state")); + addWidget(toolBarStateLabel); + toolBarBatteryBar = new QProgressBar(this); toolBarBatteryBar->setStyleSheet("QProgressBar:horizontal { margin: 0px 4px 0px 0px; border: 1px solid #4A4A4F; border-radius: 4px; text-align: center; padding: 2px; color: #111111; background-color: #111118; height: 10px; } QProgressBar:horizontal QLabel { font-size: 9px; color: #111111; } QProgressBar::chunk { background-color: green; }"); toolBarBatteryBar->setMinimum(0); @@ -74,26 +84,34 @@ QGCToolBar::QGCToolBar(QWidget *parent) : toolBarBatteryBar->setMinimumWidth(20); toolBarBatteryBar->setMaximumWidth(100); toolBarBatteryBar->setToolTip(tr("Battery charge level")); + addWidget(toolBarBatteryBar); + toolBarBatteryVoltageLabel = new QLabel("xx.x V"); toolBarBatteryVoltageLabel->setStyleSheet(QString("QLabel { margin: 0px 0px 0px 4px; font: 14px; color: %1; }").arg(QColor(Qt::green).name())); - symbolButton->setStyleSheet("QWidget { background-color: #050508; color: #DDDDDF; background-clip: border; } QToolButton { font-weight: bold; font-size: 12px; border: 0px solid #999999; border-radius: 5px; min-width:22px; max-width: 22px; min-height: 22px; max-height: 22px; padding: 0px; margin: 0px 0px 0px 20px; background-color: none; }"); - addWidget(symbolButton); - addWidget(toolBarNameLabel); - addWidget(toolBarSafetyLabel); - addWidget(toolBarModeLabel); - addWidget(toolBarStateLabel); - addWidget(toolBarBatteryBar); + toolBarBatteryVoltageLabel->setToolTip(tr("Battery voltage")); addWidget(toolBarBatteryVoltageLabel); + + toolBarWpLabel = new QLabel("WP--", this); + toolBarWpLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 18px; color: #3C7B9E; }"); + toolBarWpLabel->setToolTip(tr("Current mission")); addWidget(toolBarWpLabel); + + toolBarDistLabel = new QLabel("--- ---- m", this); + toolBarDistLabel->setToolTip(tr("Distance to current mission")); addWidget(toolBarDistLabel); + + toolBarMessageLabel = new QLabel("No system messages.", this); + toolBarMessageLabel->setStyleSheet("QLabel { margin: 0px 4px; font: 12px; font-style: italic; color: #3C7B9E; }"); + toolBarMessageLabel->setToolTip(tr("Most recent system message")); addWidget(toolBarMessageLabel); - //addWidget(new QSpacerItem(20, 0, QSizePolicy::Expanding)); // DONE INITIALIZING BUTTONS + // Configure the toolbar for the current default UAS setActiveUAS(UASManager::instance()->getActiveUAS()); connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(setActiveUAS(UASInterface*))); + // Set the toolbar to be updated every 2s connect(&updateViewTimer, SIGNAL(timeout()), this, SLOT(updateView())); updateViewTimer.start(2000); } From 6821ff47c305fc944b2c9ef7e37d028f063c7182 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Sun, 29 Jan 2012 14:58:09 -0800 Subject: [PATCH 03/13] Added support for reading uint8 values from an autopilot via QGC. Still need to add support for writing them. --- src/uas/UAS.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index b5b5509..4125518 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -667,6 +667,17 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) qDebug() << "RECEIVED PARAM:" << param; } break; + case MAVLINK_TYPE_UINT8_T: + { + // Variant + QVariant param(val.param_uint8); + parameters.value(component)->insert(parameterName, param); + // Emit change + emit parameterChanged(uasId, message.compid, parameterName, param); + emit parameterChanged(uasId, message.compid, value.param_count, value.param_index, parameterName, param); + qDebug() << "RECEIVED PARAM:" << param; + } + break; default: qCritical() << "INVALID DATA TYPE USED AS PARAMETER VALUE: " << value.param_type; } From fcdf550b1bd55e820b3d017b281d7d7649969472 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Mon, 30 Jan 2012 10:13:33 -0800 Subject: [PATCH 04/13] Removed some sources for warnings. Also removed redundant code in QGCMapWidget.cc. --- src/ui/map/QGCMapWidget.cc | 31 +------------------------------ src/ui/mavlink/QGCMAVLinkMessageSender.cc | 3 +-- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/src/ui/map/QGCMapWidget.cc b/src/ui/map/QGCMapWidget.cc index d0c95be..6758263 100644 --- a/src/ui/map/QGCMapWidget.cc +++ b/src/ui/map/QGCMapWidget.cc @@ -303,9 +303,6 @@ void QGCMapWidget::updateLocalPosition() } // Set new lat/lon position of UAV icon - double latitude = UASManager::instance()->getHomeLatitude(); - double longitude = UASManager::instance()->getHomeLongitude(); - double altitude = UASManager::instance()->getHomeAltitude(); internals::PointLatLng pos_lat_lon = internals::PointLatLng(system->getLatitude(), system->getLongitude()); uav->SetUAVPos(pos_lat_lon, system->getAltitude()); // Follow status @@ -317,33 +314,7 @@ void QGCMapWidget::updateLocalPosition() void QGCMapWidget::updateLocalPositionEstimates() { - QList systems = UASManager::instance()->getUASList(); - foreach (UASInterface* system, systems) - { - // Get reference to graphic UAV item - mapcontrol::UAVItem* uav = GetUAV(system->getUASID()); - // Check if reference is valid, else create a new one - if (uav == NULL) - { - MAV2DIcon* newUAV = new MAV2DIcon(map, this, system); - AddUAV(system->getUASID(), newUAV); - uav = newUAV; - uav->SetTrailTime(1); - uav->SetTrailDistance(5); - uav->SetTrailType(mapcontrol::UAVTrailType::ByTimeElapsed); - } - - // Set new lat/lon position of UAV icon - double latitude = UASManager::instance()->getHomeLatitude(); - double longitude = UASManager::instance()->getHomeLongitude(); - double altitude = UASManager::instance()->getHomeAltitude(); - internals::PointLatLng pos_lat_lon = internals::PointLatLng(system->getLatitude(), system->getLongitude()); - uav->SetUAVPos(pos_lat_lon, system->getAltitude()); - // Follow status - if (followUAVEnabled && system->getUASID() == followUAVID) SetCurrentPosition(pos_lat_lon); - // Convert from radians to degrees and apply - uav->SetUAVHeading((system->getYaw()/M_PI)*180.0f); - } + updateLocalPosition(); } diff --git a/src/ui/mavlink/QGCMAVLinkMessageSender.cc b/src/ui/mavlink/QGCMAVLinkMessageSender.cc index 630d79a..227934f 100644 --- a/src/ui/mavlink/QGCMAVLinkMessageSender.cc +++ b/src/ui/mavlink/QGCMAVLinkMessageSender.cc @@ -23,7 +23,6 @@ QGCMAVLinkMessageSender::QGCMAVLinkMessageSender(MAVLinkProtocol* mavlink, QWidg void QGCMAVLinkMessageSender::refresh() { - unsigned int maxUpdateRate = 0; // Send messages foreach (unsigned int i, managementItems.keys()) { @@ -79,7 +78,7 @@ bool QGCMAVLinkMessageSender::sendMessage(unsigned int msgid) uint8_t* nums = m+messageInfo[msgid].fields[fieldid].wire_offset; for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) { - if (field->data(1, Qt::DisplayRole).toString().split(" ").size() > j) + if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) { nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toInt(); } From 75792ccfe11e477c4399a34bbbb5258440d6412f Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Mon, 30 Jan 2012 10:14:13 -0800 Subject: [PATCH 05/13] Fixed problems copying support files during Windows compilation. --- qgroundcontrol.pri | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index dacd2ac..a859648 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -432,7 +432,7 @@ DEFINES += QGC_OSG_ENABLED TARGETDIR_WIN = $$replace(TARGETDIR,"/","\\") - exists($$TARGETDIR/debug) { + debug { QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\debug\\audio" /E /I $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\debug\\files" /E /I $$escape_expand(\\n)) @@ -453,7 +453,7 @@ DEFINES += QGC_OSG_ENABLED QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtXmlPatternsd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) } - exists($$TARGETDIR/release) { + release { QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\release\\audio" /E /I $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\release\\files" /E /I $$escape_expand(\\n)) From 216b023695e1b0697b811a78d4e33dc1c6845349 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Mon, 30 Jan 2012 11:18:47 -0800 Subject: [PATCH 06/13] Compilation on Windows VS2010 now properly copies necessary support libraries to the /debug and /release directories based on which is currently building. These copies are also only done if they are necessary. I removed copying of the plugins folder from Qt to the executable directory as I don't believe it's necessary anymore. --- qgroundcontrol.pri | 78 ++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 40 deletions(-) diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index a859648..d82552a 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -432,48 +432,46 @@ DEFINES += QGC_OSG_ENABLED TARGETDIR_WIN = $$replace(TARGETDIR,"/","\\") - debug { - QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\debug\\audio" /E /I $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\debug\\files" /E /I $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\models" "$$TARGETDIR_WIN\\debug\\models" /E /I $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\images\\earth.html" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$(QTDIR)\\plugins" "$$TARGETDIR_WIN\\debug" /E /I /EXCLUDE:copydebug.txt $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\phonond4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtCored4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtGuid4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtMultimediad4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtNetworkd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtOpenGLd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtSqld4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtSvgd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtWebKitd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtXmld4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtXmlPatternsd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + CONFIG(debug, debug|release) { + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\debug\\audio" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\debug\\files" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\images\\earth.html" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\plugins" "$$TARGETDIR_WIN\\debug" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\phonond4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtCored4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtGuid4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtMultimediad4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtNetworkd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtOpenGLd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtSqld4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtSvgd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtWebKitd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtXmld4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtXmlPatternsd4.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) } - release { - QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\release\\audio" /E /I $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\release\\files" /E /I $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$BASEDIR_WIN\\models" "$$TARGETDIR_WIN\\release\\models" /E /I $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\images\\earth.html" "$$TARGETDIR_WIN\\release\\earth.html" $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /Y "$$(QTDIR)\\plugins" "$$TARGETDIR_WIN\\release" /E /I /EXCLUDE:copyrelease.txt $$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\phonon4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtCore4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtGui4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtMultimedia4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtNetwork4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtOpenGL4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtSql4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtSvg4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtWebKit4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtXml4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(copy /Y "$$(QTDIR)\\bin\\QtXmlPatterns4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\qgroundcontrol.exp"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\qgroundcontrol.lib"$$escape_expand(\\n)) + CONFIG(release, debug|release) { + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D/Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\release\\audio" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\release\\files" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\images\\earth.html" "$$TARGETDIR_WIN\\release\\earth.html" $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\plugins" "$$TARGETDIR_WIN\\release" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\phonon4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtCore4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtGui4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtMultimedia4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtNetwork4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtOpenGL4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtSql4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtSvg4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtWebKit4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtXml4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\bin\\QtXmlPatterns4.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\qgroundcontrol.exp"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(del /F "$$TARGETDIR_WIN\\release\\qgroundcontrol.lib"$$escape_expand(\\n)) } } From 7dfac409634b5697e327dd22a109276a5f58aab3 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Tue, 14 Feb 2012 10:32:48 -0800 Subject: [PATCH 07/13] Refactored part of MAVLinkProtocol::receiveBytes() as I was trying to debug within it. Nothing major, though I did remove an unnecessary loop. --- src/comm/MAVLinkProtocol.cc | 58 ++++++++++++++++++++++----------------------- src/comm/MAVLinkProtocol.h | 2 +- src/uas/UAS.cc | 7 +++--- 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/comm/MAVLinkProtocol.cc b/src/comm/MAVLinkProtocol.cc index f764749..77f309f 100644 --- a/src/comm/MAVLinkProtocol.cc +++ b/src/comm/MAVLinkProtocol.cc @@ -344,39 +344,42 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b) // Only count message if UAS exists for this message if (uas != NULL) { + // Increase receive counter totalReceiveCounter++; currReceiveCounter++; - // Update last packet index - if (lastIndex[message.sysid][message.compid] == -1) + + // Update last message sequence ID + uint8_t expectedIndex; + if (lastIndex[message.sysid][message.compid] == -1) { lastIndex[message.sysid][message.compid] = message.seq; - } + expectedIndex = message.seq; + } else { - uint8_t expectedIndex = lastIndex[message.sysid][message.compid]; - // Now increase to the expected index - expectedIndex++; - - //qDebug() << "SYSID" << message.sysid << "COMPID" << message.compid << "MSGID" << message.msgid << "EXPECTED INDEX:" << expectedIndex << "SEQ" << message.seq; - while(expectedIndex != message.seq) - { - expectedIndex++; - totalLossCounter++; - currLossCounter++; - //qDebug() << "COUNTING ONE DROP!"; - } - - // Set new lastindex - lastIndex[message.sysid][message.compid] = message.seq; - } - // if (lastIndex.contains(message.sysid)) - // { - // QMap* lastCompIndex = lastIndex.value(message.sysid); - // if (lastCompIndex->contains(message.compid)) - // while (lastCompIndex->value(message.compid, 0)+1 ) - // } - //if () + // NOTE: Using uint8_t here auto-wraps the number around to 0. + expectedIndex = lastIndex[message.sysid][message.compid] + 1; + } + + // Make some noise if a message was skipped + //qDebug() << "SYSID" << message.sysid << "COMPID" << message.compid << "MSGID" << message.msgid << "EXPECTED INDEX:" << expectedIndex << "SEQ" << message.seq; + if (message.seq != expectedIndex) + { + // Determine how many messages were skipped accounting for 0-wraparound + int16_t lostMessages = message.seq - expectedIndex; + if (lostMessages < 0) + { + lostMessages += 256; + } + qDebug() << QString("Lost %1 messages: expected sequence ID %2 but received %3.").arg(lostMessages).arg(expectedIndex).arg(message.seq); + + totalLossCounter += lostMessages; + currLossCounter += lostMessages; + } + + // Update the last sequence ID + lastIndex[message.sysid][message.compid] = message.seq; // Update on every 32th packet if (totalReceiveCounter % 32 == 0) @@ -385,11 +388,9 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b) // Receive loss float receiveLoss = (double)currLossCounter/(double)(currReceiveCounter+currLossCounter); receiveLoss *= 100.0f; - // qDebug() << "LOSSCHANGED" << receiveLoss; currLossCounter = 0; currReceiveCounter = 0; emit receiveLossChanged(message.sysid, receiveLoss); - //qDebug() << "LOSSCHANGED" << message.sysid<<" "<getSystemId()); } } break; @@ -764,14 +764,13 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) { mavlink_mission_item_t wp; mavlink_msg_mission_item_decode(&message, &wp); - //qDebug() << "got waypoint (" << wp.seq << ") from ID " << message.sysid << " x=" << wp.x << " y=" << wp.y << " z=" << wp.z; if(wp.target_system == mavlink->getSystemId()) { waypointManager.handleWaypoint(message.sysid, message.compid, &wp); } else { - qDebug() << "Got waypoint message, but was not for me"; + qDebug() << QString("Received mission item, but was for %1 not me (%2)").arg(wp.target_system).arg(mavlink->getSystemId()); } } break; @@ -797,7 +796,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) } else { - qDebug() << "Got waypoint message, but was not for me"; + qDebug() << QString("Received mission request, but was for %1 not me (%2)").arg(wpr.target_system).arg(mavlink->getSystemId()); } } break; From 260e9ca9f56682265686d66abca011e9b9ad4fad Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Tue, 14 Feb 2012 11:26:27 -0800 Subject: [PATCH 08/13] Added a workaround to the mission management code where it would only accept messages addressed to the MAV_ID_MISSIONPLANNER component. This was causing problems with the send-loss value being calculated, so I decided to add this until a proper solution can be developed. --- src/uas/UASWaypointManager.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/uas/UASWaypointManager.cc b/src/uas/UASWaypointManager.cc index 91c65cd..2799323 100644 --- a/src/uas/UASWaypointManager.cc +++ b/src/uas/UASWaypointManager.cc @@ -132,7 +132,7 @@ void UASWaypointManager::handleGlobalPositionChanged(UASInterface* mav, double l void UASWaypointManager::handleWaypointCount(quint8 systemId, quint8 compId, quint16 count) { - if (current_state == WP_GETLIST && systemId == current_partner_systemid && compId == current_partner_compid) { + if (current_state == WP_GETLIST && systemId == current_partner_systemid && ((compId == current_partner_compid || compId == MAV_COMP_ID_ALL) || compId == MAV_COMP_ID_ALL)) { protocol_timer.start(PROTOCOL_TIMEOUT_MS); current_retries = PROTOCOL_MAX_RETRIES; @@ -172,7 +172,7 @@ void UASWaypointManager::handleWaypointCount(quint8 systemId, quint8 compId, qui void UASWaypointManager::handleWaypoint(quint8 systemId, quint8 compId, mavlink_mission_item_t *wp) { - if (systemId == current_partner_systemid && compId == current_partner_compid && current_state == WP_GETLIST_GETWPS && wp->seq == current_wp_id) { + if (systemId == current_partner_systemid && (compId == current_partner_compid || compId == MAV_COMP_ID_ALL) && current_state == WP_GETLIST_GETWPS && wp->seq == current_wp_id) { protocol_timer.start(PROTOCOL_TIMEOUT_MS); current_retries = PROTOCOL_MAX_RETRIES; @@ -222,7 +222,7 @@ void UASWaypointManager::handleWaypoint(quint8 systemId, quint8 compId, mavlink_ void UASWaypointManager::handleWaypointAck(quint8 systemId, quint8 compId, mavlink_mission_ack_t *wpa) { - if (systemId == current_partner_systemid && compId == current_partner_compid) { + if (systemId == current_partner_systemid && (compId == current_partner_compid || compId == MAV_COMP_ID_ALL)) { if((current_state == WP_SENDLIST || current_state == WP_SENDLIST_SENDWPS) && (current_wp_id == waypoint_buffer.count()-1 && wpa->type == 0)) { //all waypoints sent and ack received protocol_timer.stop(); @@ -241,7 +241,7 @@ void UASWaypointManager::handleWaypointAck(quint8 systemId, quint8 compId, mavli void UASWaypointManager::handleWaypointRequest(quint8 systemId, quint8 compId, mavlink_mission_request_t *wpr) { - if (systemId == current_partner_systemid && compId == current_partner_compid && ((current_state == WP_SENDLIST && wpr->seq == 0) || (current_state == WP_SENDLIST_SENDWPS && (wpr->seq == current_wp_id || wpr->seq == current_wp_id + 1)))) { + if (systemId == current_partner_systemid && (compId == current_partner_compid || compId == MAV_COMP_ID_ALL) && ((current_state == WP_SENDLIST && wpr->seq == 0) || (current_state == WP_SENDLIST_SENDWPS && (wpr->seq == current_wp_id || wpr->seq == current_wp_id + 1)))) { protocol_timer.start(PROTOCOL_TIMEOUT_MS); current_retries = PROTOCOL_MAX_RETRIES; From b03070d0d689e21febce14828bc43c4838cc2586 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Wed, 15 Feb 2012 10:12:23 -0800 Subject: [PATCH 09/13] Expanded documentation for UASInfoWidget::update*Loss. Changed the drop rate from a SYS_STATUS message to follow the MAVLink specs along with some extra range checking. --- src/uas/UAS.cc | 12 +++++++++--- src/ui/uas/UASInfoWidget.h | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 3ff07c4..165c2d9 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -428,9 +428,15 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) stopLowBattAlarm(); } - // COMMUNICATIONS DROP RATE - // FIXME - emit dropRateChanged(this->getUASID(), state.drop_rate_comm/10000.0f); + // Trigger drop rate updates as needed. Here we convert the incoming + // drop_rate_comm value from 1/100 of a percent in a uint16 to a true + // percentage as a float. We also cap the incoming value at 100% as defined + // by the MAVLink specifications. + if (state.drop_rate_comm > 10000) { + emit dropRateChanged(this->getUASID(), 100.0f); + } else { + emit dropRateChanged(this->getUASID(), state.drop_rate_comm/100.0f); + } } break; case MAVLINK_MSG_ID_ATTITUDE: diff --git a/src/ui/uas/UASInfoWidget.h b/src/ui/uas/UASInfoWidget.h index 81a8179..ec977c8 100644 --- a/src/ui/uas/UASInfoWidget.h +++ b/src/ui/uas/UASInfoWidget.h @@ -57,10 +57,20 @@ public slots: void updateBattery(UASInterface* uas, double voltage, double percent, int seconds); void updateCPULoad(UASInterface* uas, double load); - /** @brief Set the loss rate of packets received by the MAV */ + /** + * @brief Set the loss rate of packets received by the MAV. + * @param uasId UNUSED + * @param receiveLoss A percentage value (0-100) of how many message the UAS has failed to receive. + */ void updateReceiveLoss(int uasId, float receiveLoss); - /** @brief Set the loss rate of packets sent from the MAV */ + + /** + * @brief Set the loss rate of packets sent from the MAV + * @param uasId UNUSED + * @param sendLoss A percentage value (0-100) of how many message QGC has failed to receive. + */ void updateSendLoss(int uasId, float sendLoss); + /** @brief Update the error count */ void updateErrorCount(int uasid, QString component, QString device, int count); From e58b34c7f64af4faf713d1964c9cb40b674abad4 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Wed, 15 Feb 2012 10:26:22 -0800 Subject: [PATCH 10/13] Removed redundant boolean comparison. --- src/uas/UASWaypointManager.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uas/UASWaypointManager.cc b/src/uas/UASWaypointManager.cc index 2799323..7ed06d8 100644 --- a/src/uas/UASWaypointManager.cc +++ b/src/uas/UASWaypointManager.cc @@ -132,7 +132,7 @@ void UASWaypointManager::handleGlobalPositionChanged(UASInterface* mav, double l void UASWaypointManager::handleWaypointCount(quint8 systemId, quint8 compId, quint16 count) { - if (current_state == WP_GETLIST && systemId == current_partner_systemid && ((compId == current_partner_compid || compId == MAV_COMP_ID_ALL) || compId == MAV_COMP_ID_ALL)) { + if (current_state == WP_GETLIST && systemId == current_partner_systemid && (compId == current_partner_compid || compId == MAV_COMP_ID_ALL)) { protocol_timer.start(PROTOCOL_TIMEOUT_MS); current_retries = PROTOCOL_MAX_RETRIES; From 7ce3400323c92f5e742251d9b50edf0fe86525f7 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Wed, 15 Feb 2012 11:27:52 -0800 Subject: [PATCH 11/13] Fixed unused variable warning during compilation. --- src/ui/HSIDisplay.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ui/HSIDisplay.cc b/src/ui/HSIDisplay.cc index 5a25f5d..c61b2e4 100644 --- a/src/ui/HSIDisplay.cc +++ b/src/ui/HSIDisplay.cc @@ -952,6 +952,7 @@ void HSIDisplay::updateAttitude(UASInterface* uas, double roll, double pitch, do void HSIDisplay::updateUserPositionSetpoints(int uasid, float xDesired, float yDesired, float zDesired, float yawDesired) { + Q_UNUSED(uasid); uiXSetCoordinate = xDesired; uiYSetCoordinate = yDesired; uiZSetCoordinate = zDesired; @@ -962,8 +963,8 @@ void HSIDisplay::updateUserPositionSetpoints(int uasid, float xDesired, float yD void HSIDisplay::updatePositionSetpoints(int uasid, float xDesired, float yDesired, float zDesired, float yawDesired, quint64 usec) { - Q_UNUSED(usec); Q_UNUSED(uasid); + Q_UNUSED(usec); bodyXSetCoordinate = xDesired; bodyYSetCoordinate = yDesired; bodyZSetCoordinate = zDesired; From c3ebf0796c0dff58e502be805c20a2b749214bc7 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Wed, 15 Feb 2012 11:31:00 -0800 Subject: [PATCH 12/13] Re-add copying of /models directory that was accidentally removed during last merge. --- qgroundcontrol.pri | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index 62e3a89..121b7bf 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -450,8 +450,8 @@ DEFINES += QGC_OSG_ENABLED CONFIG(debug, debug|release) { QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\debug\\audio" /E /I $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\debug\\files" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\models" "$$TARGETDIR_WIN\\debug\\models" /E /I $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\images\\earth.html" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\plugins" "$$TARGETDIR_WIN\\debug" /E /I $$escape_expand(\\n)) @@ -470,8 +470,8 @@ DEFINES += QGC_OSG_ENABLED CONFIG(release, debug|release) { QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) - QMAKE_POST_LINK += $$quote(xcopy /D/Y "$$BASEDIR_WIN\\audio" "$$TARGETDIR_WIN\\release\\audio" /E /I $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\files" "$$TARGETDIR_WIN\\release\\files" /E /I $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\models" "$$TARGETDIR_WIN\\release\\models" /E /I $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\images\\earth.html" "$$TARGETDIR_WIN\\release\\earth.html" $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy /D /Y "$$(QTDIR)\\plugins" "$$TARGETDIR_WIN\\release" /E /I $$escape_expand(\\n)) From 19805a92932d0ef5a12eb74cf227004860b6d464 Mon Sep 17 00:00:00 2001 From: Bryant Mairs Date: Wed, 15 Feb 2012 11:32:05 -0800 Subject: [PATCH 13/13] Fixed borked Windows compilation introduced with mavlink/qgroundcontrol:864e6ae8. --- qgroundcontrol.pro | 36 ++++++++++++++++++------------------ qgroundcontrol.qrc | 4 ++-- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index ffb7e9b..1d4641e 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -361,14 +361,7 @@ HEADERS += src/MG.h \ src/ui/mavlink/QGCMAVLinkMessageSender.h \ src/ui/firmwareupdate/QGCFirmwareUpdateWidget.h \ src/ui/QGCPluginHost.h \ - src/ui/firmwareupdate/QGCPX4FirmwareUpdate.h \ - src/ui/map3D/gpl.h \ - src/ui/map3D/CameraParams.h \ - src/ui/map3D/ViewParamWidget.h \ - src/ui/map3D/SystemContainer.h \ - src/ui/map3D/SystemViewParams.h \ - src/ui/map3D/GlobalViewParams.h \ - src/ui/map3D/SystemGroupNode.h + src/ui/firmwareupdate/QGCPX4FirmwareUpdate.h # Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::HEADERS += src/ui/map3D/QGCGoogleEarthView.h @@ -376,7 +369,14 @@ contains(DEPENDENCIES_PRESENT, osg) { message("Including headers for OpenSceneGraph") # Enable only if OpenSceneGraph is available - HEADERS += src/ui/map3D/Q3DWidget.h \ + HEADERS += src/ui/map3D/gpl.h \ + src/ui/map3D/CameraParams.h \ + src/ui/map3D/ViewParamWidget.h \ + src/ui/map3D/SystemContainer.h \ + src/ui/map3D/SystemViewParams.h \ + src/ui/map3D/GlobalViewParams.h \ + src/ui/map3D/SystemGroupNode.h \ + src/ui/map3D/Q3DWidget.h \ src/ui/map3D/GCManipulator.h \ src/ui/map3D/ImageWindowGeode.h \ src/ui/map3D/PixhawkCheetahGeode.h \ @@ -501,14 +501,7 @@ SOURCES += src/main.cc \ src/ui/mavlink/QGCMAVLinkMessageSender.cc \ src/ui/firmwareupdate/QGCFirmwareUpdateWidget.cc \ src/ui/QGCPluginHost.cc \ - src/ui/firmwareupdate/QGCPX4FirmwareUpdate.cc \ - src/ui/map3D/gpl.cc \ - src/ui/map3D/CameraParams.cc \ - src/ui/map3D/ViewParamWidget.cc \ - src/ui/map3D/SystemContainer.cc \ - src/ui/map3D/SystemViewParams.cc \ - src/ui/map3D/GlobalViewParams.cc \ - src/ui/map3D/SystemGroupNode.cc + src/ui/firmwareupdate/QGCPX4FirmwareUpdate.cc # Enable Google Earth only on Mac OS and Windows with Visual Studio compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc @@ -518,7 +511,14 @@ contains(DEPENDENCIES_PRESENT, osg) { message("Including sources for OpenSceneGraph") # Enable only if OpenSceneGraph is available - SOURCES += src/ui/map3D/Q3DWidget.cc \ + SOURCES += src/ui/map3D/gpl.cc \ + src/ui/map3D/CameraParams.cc \ + src/ui/map3D/ViewParamWidget.cc \ + src/ui/map3D/SystemContainer.cc \ + src/ui/map3D/SystemViewParams.cc \ + src/ui/map3D/GlobalViewParams.cc \ + src/ui/map3D/SystemGroupNode.cc \ + src/ui/map3D/Q3DWidget.cc \ src/ui/map3D/ImageWindowGeode.cc \ src/ui/map3D/GCManipulator.cc \ src/ui/map3D/PixhawkCheetahGeode.cc \ diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index 1c7619e..42b43b3 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -75,10 +75,10 @@ images/status/audio-volume-medium.svg images/status/audio-volume-low.svg images/status/audio-volume-high.svg - images/status/colorbars.png + images/status/colorbars.png images/style-mission.css images/splash.png - audio/alert.wav + files/audio/alert.wav demo-log.txt images/mapproviders/openstreetmap.png images/mapproviders/google.png