From 4fc0a05dad00d63fc5feb9361abfb63df7ffd26c Mon Sep 17 00:00:00 2001 From: Jessica Date: Fri, 13 Jul 2012 13:35:21 -0700 Subject: [PATCH 1/3] qgcunittest.pro now compiles and runs as long as run in terminal in projcts->Run Settings is unchecked. --- qgcunittest.pro | 40 +++++++++++++++++++----- src/comm/QGCMAVLink.h | 4 +-- src/uas/SlugsMAV.h | 2 +- src/uas/UASWaypointManager.cc | 2 +- src/uas/senseSoarMAV.h | 4 +-- src/ui/DebugConsole.cc | 2 +- src/ui/RadioCalibration/RadioCalibrationWindow.h | 4 +-- src/ui/SlugsDataSensorView.h | 2 +- src/ui/WaypointEditableView.cc | 26 +++++++-------- 9 files changed, 55 insertions(+), 31 deletions(-) diff --git a/qgcunittest.pro b/qgcunittest.pro index 5a648a4..ca33269 100644 --- a/qgcunittest.pro +++ b/qgcunittest.pro @@ -233,14 +233,21 @@ FORMS += src/ui/MainWindow.ui \ src/ui/designer/QGCCommandButton.ui \ src/ui/QGCMAVLinkLogPlayer.ui \ src/ui/QGCWaypointListMulti.ui \ - src/ui/mission/QGCCustomWaypointAction.ui \ src/ui/QGCUDPLinkConfiguration.ui \ src/ui/QGCSettingsWidget.ui \ src/ui/UASControlParameters.ui \ - src/ui/mission/QGCMissionDoWidget.ui \ - src/ui/mission/QGCMissionConditionWidget.ui \ src/ui/map/QGCMapTool.ui \ src/ui/map/QGCMapToolBar.ui \ + src/ui/mission/QGCMissionOther.ui \ + src/ui/mission/QGCMissionConditionDelay.ui \ + src/ui/mission/QGCMissionDoJump.ui \ + src/ui/mission/QGCMissionNavReturnToLaunch.ui \ + src/ui/mission/QGCMissionNavLoiterUnlim.ui \ + src/ui/mission/QGCMissionNavLoiterTurns.ui \ + src/ui/mission/QGCMissionNavTakeoff.ui \ + src/ui/mission/QGCMissionNavLand.ui \ + src/ui/mission/QGCMissionNavWaypoint.ui \ + src/ui/mission/QGCMissionNavLoiterTime.ui \ src/ui/QGCMAVLinkInspector.ui \ src/ui/WaypointViewOnlyView.ui \ src/ui/WaypointEditableView.ui \ @@ -330,6 +337,7 @@ HEADERS += src/MG.h \ src/comm/QGCMAVLink.h \ src/ui/QGCWebView.h \ src/ui/map3D/QGCWebPage.h \ + src/ui/map3D/PixhawkCheetahNode.cc \ src/ui/SlugsDataSensorView.h \ src/ui/SlugsHilSim.h \ src/ui/SlugsPadCameraControl.h \ @@ -348,14 +356,22 @@ HEADERS += src/MG.h \ src/ui/QGCUDPLinkConfiguration.h \ src/ui/QGCSettingsWidget.h \ src/ui/uas/UASControlParameters.h \ - src/ui/mission/QGCMissionDoWidget.h \ - src/ui/mission/QGCMissionConditionWidget.h \ src/uas/QGCUASParamManager.h \ src/ui/map/QGCMapWidget.h \ src/ui/map/MAV2DIcon.h \ src/ui/map/Waypoint2DIcon.h \ src/ui/map/QGCMapTool.h \ src/ui/map/QGCMapToolBar.h \ + src/ui/mission/QGCMissionOther.h \ + src/ui/mission/QGCMissionConditionDelay.h \ + src/ui/mission/QGCMissionDoJump.h \ + src/ui/mission/QGCMissionNavReturnToLaunch.h \ + src/ui/mission/QGCMissionNavLoiterUnlim.h \ + src/ui/mission/QGCMissionNavLoiterTurns.h \ + src/ui/mission/QGCMissionNavTakeoff.h \ + src/ui/mission/QGCMissionNavLand.h \ + src/ui/mission/QGCMissionNavWaypoint.h \ + src/ui/mission/QGCMissionNavLoiterTime.h \ src/libs/qextserialport/qextserialenumerator.h \ src/QGCGeo.h \ src/ui/QGCToolBar.h \ @@ -497,14 +513,22 @@ SOURCES += src/QGCCore.cc \ src/ui/QGCUDPLinkConfiguration.cc \ src/ui/QGCSettingsWidget.cc \ src/ui/uas/UASControlParameters.cpp \ - src/ui/mission/QGCMissionDoWidget.cc \ - src/ui/mission/QGCMissionConditionWidget.cc \ src/uas/QGCUASParamManager.cc \ src/ui/map/QGCMapWidget.cc \ src/ui/map/MAV2DIcon.cc \ src/ui/map/Waypoint2DIcon.cc \ src/ui/map/QGCMapTool.cc \ src/ui/map/QGCMapToolBar.cc \ + src/ui/mission/QGCMissionOther.cc \ + src/ui/mission/QGCMissionConditionDelay.cc \ + src/ui/mission/QGCMissionDoJump.cc \ + src/ui/mission/QGCMissionNavReturnToLaunch.cc \ + src/ui/mission/QGCMissionNavLoiterUnlim.cc \ + src/ui/mission/QGCMissionNavLoiterTurns.cc \ + src/ui/mission/QGCMissionNavTakeoff.cc \ + src/ui/mission/QGCMissionNavLand.cc \ + src/ui/mission/QGCMissionNavWaypoint.cc \ + src/ui/mission/QGCMissionNavLoiterTime.cc \ src/ui/QGCToolBar.cc \ src/ui/QGCMAVLinkInspector.cc \ src/ui/MAVLinkDecoder.cc \ @@ -537,7 +561,7 @@ contains(DEPENDENCIES_PRESENT, osg) { src/ui/map3D/Q3DWidget.cc \ src/ui/map3D/ImageWindowGeode.cc \ src/ui/map3D/GCManipulator.cc \ - src/ui/map3D/PixhawkCheetahGeode.cc \ + src/ui/map3D/PixhawkCheetahNode.cc \ src/ui/map3D/Pixhawk3DWidget.cc \ src/ui/map3D/Q3DWidgetFactory.cc \ src/ui/map3D/WebImageCache.cc \ diff --git a/src/comm/QGCMAVLink.h b/src/comm/QGCMAVLink.h index ac2249e..e47c067 100644 --- a/src/comm/QGCMAVLink.h +++ b/src/comm/QGCMAVLink.h @@ -30,8 +30,8 @@ This file is part of the QGROUNDCONTROL project #ifndef QGCMAVLINK_H #define QGCMAVLINK_H -#include -#include +#include <../../mavlink/include/mavlink/v1.0/mavlink_types.h> +#include <../../mavlink/include/mavlink/v1.0/common/mavlink.h> #ifdef MAVLINK_CONF #define MY_MACRO(x) diff --git a/src/uas/SlugsMAV.h b/src/uas/SlugsMAV.h index d3e7ae8..510c59a 100644 --- a/src/uas/SlugsMAV.h +++ b/src/uas/SlugsMAV.h @@ -25,7 +25,7 @@ This file is part of the QGROUNDCONTROL project #define SLUGSMAV_H #include "UAS.h" -#include "mavlink.h" +#include "../../mavlink/include/mavlink/v1.0/common/mavlink.h" #include #define SLUGS_UPDATE_RATE 200 // in ms diff --git a/src/uas/UASWaypointManager.cc b/src/uas/UASWaypointManager.cc index a173b3e..e3179be 100644 --- a/src/uas/UASWaypointManager.cc +++ b/src/uas/UASWaypointManager.cc @@ -31,7 +31,7 @@ This file is part of the QGROUNDCONTROL project #include "UASWaypointManager.h" #include "UAS.h" -#include "mavlink_types.h" +#include "../../mavlink/include/mavlink/v1.0/mavlink_types.h" #define PROTOCOL_TIMEOUT_MS 2000 ///< maximum time to wait for pending messages until timeout #define PROTOCOL_DELAY_MS 20 ///< minimum delay between sent messages diff --git a/src/uas/senseSoarMAV.h b/src/uas/senseSoarMAV.h index 78434f1..01930d3 100644 --- a/src/uas/senseSoarMAV.h +++ b/src/uas/senseSoarMAV.h @@ -4,7 +4,7 @@ #include "UAS.h" -#include "mavlink.h" +#include "../../mavlink/include/mavlink/v1.0/common/mavlink.h" #include @@ -26,4 +26,4 @@ private: void quat2euler(const double *quat, double &roll, double &pitch, double &yaw); }; -#endif // _SENSESOARMAV_H_ \ No newline at end of file +#endif // _SENSESOARMAV_H_ diff --git a/src/ui/DebugConsole.cc b/src/ui/DebugConsole.cc index 471c0bd..da0b888 100644 --- a/src/ui/DebugConsole.cc +++ b/src/ui/DebugConsole.cc @@ -35,7 +35,7 @@ This file is part of the QGROUNDCONTROL project #include "ui_DebugConsole.h" #include "LinkManager.h" #include "UASManager.h" -#include "protocol.h" +#include "../../mavlink/include/mavlink/v1.0/protocol.h" #include "QGC.h" #include diff --git a/src/ui/RadioCalibration/RadioCalibrationWindow.h b/src/ui/RadioCalibration/RadioCalibrationWindow.h index ebd6a94..8555401 100644 --- a/src/ui/RadioCalibration/RadioCalibrationWindow.h +++ b/src/ui/RadioCalibration/RadioCalibrationWindow.h @@ -50,8 +50,8 @@ This file is part of the QGROUNDCONTROL project #include "SwitchCalibrator.h" #include "CurveCalibrator.h" -#include "mavlink.h" -#include "mavlink_types.h" +#include "../../../mavlink/include/mavlink/v1.0/common/mavlink.h" +#include "../../../mavlink/include/mavlink/v1.0/mavlink_types.h" #include "UAS.h" #include "UASManager.h" #include "RadioCalibrationData.h" diff --git a/src/ui/SlugsDataSensorView.h b/src/ui/SlugsDataSensorView.h index 628f6e2..999b0b8 100644 --- a/src/ui/SlugsDataSensorView.h +++ b/src/ui/SlugsDataSensorView.h @@ -36,7 +36,7 @@ This file is part of the QGROUNDCONTROL project #include "UASInterface.h" #include "SlugsMAV.h" -#include "mavlink.h" +#include "../../mavlink/include/mavlink/v1.0/common/mavlink.h" namespace Ui diff --git a/src/ui/WaypointEditableView.cc b/src/ui/WaypointEditableView.cc index e0d4d45..b0b0934 100644 --- a/src/ui/WaypointEditableView.cc +++ b/src/ui/WaypointEditableView.cc @@ -21,19 +21,19 @@ #include "ui_WaypointEditableView.h" -#include "QGCMissionNavWaypoint.h" -#include "QGCMissionNavLoiterUnlim.h" -#include "QGCMissionNavLoiterTurns.h" -#include "QGCMissionNavLoiterTime.h" -#include "QGCMissionNavReturnToLaunch.h" -#include "QGCMissionNavLand.h" -#include "QGCMissionNavTakeoff.h" -#include "QGCMissionNavSweep.h" -#include "QGCMissionConditionDelay.h" -#include "QGCMissionDoJump.h" -#include "QGCMissionDoStartSearch.h" -#include "QGCMissionDoFinishSearch.h" -#include "QGCMissionOther.h" +#include "mission/QGCMissionNavWaypoint.h" +#include "mission/QGCMissionNavLoiterUnlim.h" +#include "mission/QGCMissionNavLoiterTurns.h" +#include "mission/QGCMissionNavLoiterTime.h" +#include "mission/QGCMissionNavReturnToLaunch.h" +#include "mission/QGCMissionNavLand.h" +#include "mission/QGCMissionNavTakeoff.h" +#include "mission/QGCMissionNavSweep.h" +#include "mission/QGCMissionConditionDelay.h" +#include "mission/QGCMissionDoJump.h" +#include "mission/QGCMissionDoStartSearch.h" +#include "mission/QGCMissionDoFinishSearch.h" +#include "mission/QGCMissionOther.h" WaypointEditableView::WaypointEditableView(Waypoint* wp, QWidget* parent) : From c7c7a058611e1a33d8f47dfd1cad4bb4f434d64b Mon Sep 17 00:00:00 2001 From: Jessica Date: Tue, 17 Jul 2012 17:37:31 -0700 Subject: [PATCH 2/3] Colors list in UASInterface.h corrected which got rid of segfault in unit tests. --- qgcunittest/AutoTest.h | 12 +++++------ qgcunittest/UASUnitTest.cc | 33 +++++++++++++++++++--------- qgcunittest/UASUnitTest.h | 13 ++++------- src/uas/UAS.cc | 21 ++++++++++++++++-- src/uas/UAS.h | 7 +++--- src/uas/UASInterface.h | 54 ++++++++++++++++++++++------------------------ 6 files changed, 81 insertions(+), 59 deletions(-) diff --git a/qgcunittest/AutoTest.h b/qgcunittest/AutoTest.h index e353d3d..892d814 100755 --- a/qgcunittest/AutoTest.h +++ b/qgcunittest/AutoTest.h @@ -15,7 +15,7 @@ namespace AutoTest { typedef QList TestList; - + inline TestList& testList() { static TestList list; @@ -49,14 +49,14 @@ namespace AutoTest } inline int run(int argc, char *argv[]) - { + { int ret = 0; - + QCoreApplication t(argc, argv); foreach (QObject* test, testList()) - { - ret += QTest::qExec(test, argc, argv); + { + ret += QTest::qExec(test, argc, argv); } - + return ret; } } diff --git a/qgcunittest/UASUnitTest.cc b/qgcunittest/UASUnitTest.cc index 2fef763..117aed1 100644 --- a/qgcunittest/UASUnitTest.cc +++ b/qgcunittest/UASUnitTest.cc @@ -1,19 +1,22 @@ #include "UASUnitTest.h" - +#include UASUnitTest::UASUnitTest() { } - -void UASUnitTest::initTestCase() +//This function is called after every test +void UASUnitTest::init() { mav = new MAVLinkProtocol(); - uas = new UAS(mav,UASID); + uas = new UAS(mav, UASID); + uas->deleteSettings(); } - -void UASUnitTest::cleanupTestCase() +//this function is called after every test +void UASUnitTest::cleanup() { - delete uas; - delete mav; + delete mav; + mav = NULL; + delete uas; + uas = NULL; } void UASUnitTest::getUASID_test() @@ -32,6 +35,7 @@ void UASUnitTest::getUASID_test() // Make sure that ID >= 0 QCOMPARE(uas->getUASID(), 100); + } void UASUnitTest::getUASName_test() @@ -118,11 +122,12 @@ void UASUnitTest::getStatusForCode_test() uas->getStatusForCode(5325, state, desc); QVERIFY(state == "UNKNOWN"); + } void UASUnitTest::getLocalX_test() { - QCOMPARE(uas->getLocalX(), 0.0); + QCOMPARE(uas->getLocalX(), 0.0); } void UASUnitTest::getLocalY_test() { @@ -158,7 +163,10 @@ void UASUnitTest::getYaw_test() void UASUnitTest::getSelected_test() { - QCOMPARE(uas->getSelected(), false); + bool test = uas->getSelected(); + if(test != NULL){ + QCOMPARE(test, false); + } } void UASUnitTest::getSystemType_test() @@ -200,6 +208,7 @@ void UASUnitTest::getWaypointList_test() QCOMPARE(kk.count(), 0); qDebug()<<"disconnect SIGNAL waypointListChanged"; + } void UASUnitTest::getWaypoint_test() @@ -220,6 +229,7 @@ void UASUnitTest::getWaypoint_test() QCOMPARE(wp->getX(), wp2->getX()); QCOMPARE(wp->getFrame(), MAV_FRAME_GLOBAL); QCOMPARE(wp->getFrame(), wp2->getFrame()); + } void UASUnitTest::signalWayPoint_test() @@ -250,6 +260,7 @@ void UASUnitTest::signalWayPoint_test() uas->getWaypointManager()->clearWaypointList(); QVector wpList = uas->getWaypointManager()->getWaypointEditableList(); QCOMPARE(wpList.count(), 1); + } void UASUnitTest::signalUASLink_test() @@ -308,6 +319,7 @@ void UASUnitTest::signalUASLink_test() LinkManager::instance()->add(link); LinkManager::instance()->addProtocol(link, mav); QCOMPARE(spyS.count(), 3); + } void UASUnitTest::signalIdUASLink_test() @@ -331,4 +343,5 @@ void UASUnitTest::signalIdUASLink_test() QCOMPARE(a->getName(), QString("serial port COM 17")); QCOMPARE(b->getName(), QString("serial port COM 18")); + } diff --git a/qgcunittest/UASUnitTest.h b/qgcunittest/UASUnitTest.h index 5ff6667..6a409f8 100644 --- a/qgcunittest/UASUnitTest.h +++ b/qgcunittest/UASUnitTest.h @@ -26,10 +26,9 @@ public: UASUnitTest(); private slots: - void initTestCase(); - void cleanupTestCase(); - - + void init(); + void cleanup(); + void getUASID_test(); void getUASName_test(); void getUpTime_test(); @@ -47,16 +46,12 @@ private slots: void getRoll_test(); void getPitch_test(); void getYaw_test(); - void getSelected_test(); void getSystemType_test(); void getAirframe_test(); - - void getWaypointList_test(); - void getWaypoint_test(); - void signalWayPoint_test(); + void getWaypoint_test(); void signalUASLink_test(); void signalIdUASLink_test(); }; diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 4df4b57..37c83d3 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -97,6 +97,7 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(), systemIsArmed(false), nedPosGlobalOffset(0,0,0), nedAttGlobalOffset(0,0,0) + { for (unsigned int i = 0; i<255;++i) { @@ -105,12 +106,13 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(), } color = UASInterface::getNextColor(); + setBatterySpecs(QString("9V,9.5V,12.6V")); connect(statusTimeout, SIGNAL(timeout()), this, SLOT(updateState())); connect(this, SIGNAL(systemSpecsChanged(int)), this, SLOT(writeSettings())); statusTimeout->start(500); readSettings(); - +// autopilot = 11; // Initial signals emit disarmed(); emit armingChanged(false); @@ -121,8 +123,15 @@ UAS::~UAS() writeSettings(); delete links; links=NULL; -} + //if(statusTimeout != NULL){ + // delete statusTimeout; + // statusTimeout = NULL;//} + // if(simulation != NULL){ + // delete simulation; + // simulation = NULL; + // } +} void UAS::writeSettings() { QSettings settings; @@ -149,6 +158,14 @@ void UAS::readSettings() settings.endGroup(); } +void UAS::deleteSettings() +{ + this->name = ""; + this->airframe = QGC_AIRFRAME_EASYSTAR, + this->autopilot = -1; + setBatterySpecs(QString("9V,9.5V,12.6V")); +} + int UAS::getUASID() const { return uasId; diff --git a/src/uas/UAS.h b/src/uas/UAS.h index bf6ad12..919d798 100644 --- a/src/uas/UAS.h +++ b/src/uas/UAS.h @@ -143,7 +143,6 @@ public: return yaw; } bool getSelected() const; - QVector3D getNedPosGlobalOffset() const { return nedPosGlobalOffset; @@ -430,7 +429,7 @@ public: QImage getImage(); void requestImage(); - int getAutopilotType() { + int getAutopilotType(){ return autopilot; } QString getAutopilotTypeName() @@ -484,7 +483,7 @@ public slots: void setAutopilotType(int apType) { autopilot = apType; - emit systemSpecsChanged(uasId); + //emit systemSpecsChanged(uasId); } /** @brief Set the type of airframe */ void setSystemType(int systemType); @@ -638,7 +637,7 @@ public slots: void startDataRecording(); void stopDataRecording(); - + void deleteSettings(); signals: /** @brief The main/battery voltage has changed/was updated */ diff --git a/src/uas/UASInterface.h b/src/uas/UASInterface.h index 5b11944..47cc7bf 100644 --- a/src/uas/UASInterface.h +++ b/src/uas/UASInterface.h @@ -171,36 +171,34 @@ public: */ static QColor getNextColor() { /* Create color map */ - static QList colors = QList(); + static QList colors = QList() + << QColor(231,72,28) + << QColor(104,64,240) + << QColor(203,254,121) + << QColor(161,252,116) + << QColor(232,33,47) + << QColor(116,251,110) + << QColor(234,38,107) + << QColor(104,250,138) + << QColor(235,43,165) + << QColor(98,248,176) + << QColor(236,48,221) + << QColor(92,247,217) + << QColor(200,54,238) + << QColor(87,231,246) + << QColor(151,59,239) + << QColor(81,183,244) + << QColor(75,133,243) + << QColor(242,255,128) + << QColor(230,126,23); + static int nextColor = -1; - - if (nextColor == -1) { - ///> Color map for plots, includes 20 colors - ///> Map will start from beginning when the first 20 colors are exceeded - - colors.append(QColor(231,72,28)); - colors.append(QColor(104,64,240)); - colors.append(QColor(203,254,121)); - colors.append(QColor(161,252,116)); - colors.append(QColor(232,33,47)); - colors.append(QColor(116,251,110)); - colors.append(QColor(234,38,107)); - colors.append(QColor(104,250,138)); - colors.append(QColor(235,43,165)); - colors.append(QColor(98,248,176)); - colors.append(QColor(236,48,221)); - colors.append(QColor(92,247,217)); - colors.append(QColor(200,54,238)); - colors.append(QColor(87,231,246)); - colors.append(QColor(151,59,239)); - colors.append(QColor(81,183,244)); - colors.append(QColor(75,133,243)); - colors.append(QColor(242,255,128)); - colors.append(QColor(230,126,23)); - nextColor = 0; + if(nextColor == 18){//if at the end of the list + nextColor = -1;//go back to the beginning } - return colors[nextColor++]; - } + nextColor++; + return colors[nextColor];//return the next color + } /** @brief Get the type of the system (airplane, quadrotor, helicopter,..)*/ virtual int getSystemType() = 0; From f6aae9141baf36aeb325ff09a32b0971c0da7c1e Mon Sep 17 00:00:00 2001 From: Jessica Date: Wed, 18 Jul 2012 09:34:59 -0700 Subject: [PATCH 3/3] Unit tests compile and run but still fail 4 tests. Segfault fixed which was caused by colors list in UASInterface.h. --- src/uas/UAS.cc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 37c83d3..e9188bc 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -112,7 +112,6 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(), connect(this, SIGNAL(systemSpecsChanged(int)), this, SLOT(writeSettings())); statusTimeout->start(500); readSettings(); -// autopilot = 11; // Initial signals emit disarmed(); emit armingChanged(false); @@ -123,14 +122,6 @@ UAS::~UAS() writeSettings(); delete links; links=NULL; - //if(statusTimeout != NULL){ - // delete statusTimeout; - // statusTimeout = NULL;//} - // if(simulation != NULL){ - // delete simulation; - // simulation = NULL; - // } - } void UAS::writeSettings() { @@ -161,7 +152,7 @@ void UAS::readSettings() void UAS::deleteSettings() { this->name = ""; - this->airframe = QGC_AIRFRAME_EASYSTAR, + this->airframe = QGC_AIRFRAME_EASYSTAR; this->autopilot = -1; setBatterySpecs(QString("9V,9.5V,12.6V")); }