diff --git a/qgcunittest.pro b/qgcunittest.pro index 5aea295778c8b3c05880e4b1d303781afe8d9ceb..f51452df91f7aadf2a7eec15f66e4a2e1385208d 100644 --- a/qgcunittest.pro +++ b/qgcunittest.pro @@ -34,7 +34,7 @@ QT += network \ TEMPLATE = app TARGET = qgcunittest BASEDIR = $${IN_PWD} -TESTDIR = $$BASEDIR/qgcunittest +TESTDIR = $$BASEDIR/src/qgcunittest linux-g++|linux-g++-64{ debug { TARGETDIR = $${OUT_PWD}/debug diff --git a/qgcunittest/AutoTest.h b/src/qgcunittest/AutoTest.h similarity index 100% rename from qgcunittest/AutoTest.h rename to src/qgcunittest/AutoTest.h diff --git a/qgcunittest/UASUnitTest.cc b/src/qgcunittest/UASUnitTest.cc similarity index 93% rename from qgcunittest/UASUnitTest.cc rename to src/qgcunittest/UASUnitTest.cc index cf2c49a1d7e808f2d0bec08471c2c11d4e988d62..5280e808598fbdc8851f6150d582f0dac33f8576 100644 --- a/qgcunittest/UASUnitTest.cc +++ b/src/qgcunittest/UASUnitTest.cc @@ -1,5 +1,6 @@ #include "UASUnitTest.h" #include +#include UASUnitTest::UASUnitTest() { } @@ -15,8 +16,10 @@ void UASUnitTest::cleanup() { delete mav; mav = NULL; + if(uas != NULL){ delete uas; uas = NULL; + } } void UASUnitTest::getUASID_test() @@ -167,8 +170,9 @@ void UASUnitTest::getSelected_test() } void UASUnitTest::getSystemType_test() -{ //best guess: it is not initialized in the constructor, - //what should it be initialized to? +{ //check that system type is set to MAV_TYPE_GENERIC when initialized + QCOMPARE(uas->getSystemType(), 0); + uas->setSystemType(13); QCOMPARE(uas->getSystemType(), 13); } @@ -251,33 +255,36 @@ void UASUnitTest::getWaypoint_test() void UASUnitTest::signalWayPoint_test() { - QSignalSpy spy(uas->getWaypointManager(), SIGNAL(waypointListChanged(UASID))); - - Waypoint* wp = new Waypoint(0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,false, false, MAV_FRAME_GLOBAL, MAV_CMD_MISSION_START, "blah"); + QSignalSpy spy(uas->getWaypointManager(), SIGNAL(waypointEditableListChanged())); + + Waypoint* wp = new Waypoint(0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,false, false, MAV_FRAME_GLOBAL, MAV_CMD_MISSION_START, "blah"); uas->getWaypointManager()->addWaypointEditable(wp, true); - printf("spy.count = %d\n", spy.count()); - //QCOMPARE(spy.count(), 1); // 1 listChanged for add wayPoint + + QCOMPARE(spy.count(), 1); // 1 listChanged for add wayPoint uas->getWaypointManager()->removeWaypoint(0); QCOMPARE(spy.count(), 2); // 2 listChanged for remove wayPoint + QSignalSpy spyDestroyed(uas->getWaypointManager(), SIGNAL(destroyed())); QVERIFY(spyDestroyed.isValid()); QCOMPARE( spyDestroyed.count(), 0 ); delete uas;// delete(destroyed) uas for validating + uas = NULL; QCOMPARE(spyDestroyed.count(), 1);// count destroyed uas should are 1 - uas = new UAS(mav,UASID); - QSignalSpy spy2(uas->getWaypointManager(), SIGNAL(waypointListChanged())); + QSignalSpy spy2(uas->getWaypointManager(), SIGNAL(waypointEditableListChanged())); QCOMPARE(spy2.count(), 0); + Waypoint* wp2 = new Waypoint(0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,false, false, MAV_FRAME_GLOBAL, MAV_CMD_MISSION_START, "blah"); - uas->getWaypointManager()->addWaypointEditable(wp, true); + uas->getWaypointManager()->addWaypointEditable(wp2, true); QCOMPARE(spy2.count(), 1); uas->getWaypointManager()->clearWaypointList(); QVector wpList = uas->getWaypointManager()->getWaypointEditableList(); QCOMPARE(wpList.count(), 1); + delete wp2; } void UASUnitTest::signalUASLink_test() diff --git a/qgcunittest/UASUnitTest.h b/src/qgcunittest/UASUnitTest.h similarity index 100% rename from qgcunittest/UASUnitTest.h rename to src/qgcunittest/UASUnitTest.h diff --git a/qgcunittest/testSuite.cc b/src/qgcunittest/testSuite.cc similarity index 100% rename from qgcunittest/testSuite.cc rename to src/qgcunittest/testSuite.cc diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index f555ef806fde01fb08bd5da7fa7ef53d1946341e..30f3f3e140a535a575373b9602c1156d19dcd4c9 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -111,7 +111,8 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(), connect(statusTimeout, SIGNAL(timeout()), this, SLOT(updateState())); connect(this, SIGNAL(systemSpecsChanged(int)), this, SLOT(writeSettings())); statusTimeout->start(500); - readSettings(); + readSettings(); + type = MAV_TYPE_GENERIC; // Initial signals emit disarmed(); emit armingChanged(false); @@ -2081,21 +2082,25 @@ void UAS::requestParameter(int component, const QString& parameter) void UAS::setSystemType(int systemType) { - type = systemType; - // If the airframe is still generic, change it to a close default type - if (airframe == 0) + if((systemType >= MAV_TYPE_GENERIC) && (systemType < MAV_TYPE_ENUM_END)) { - switch (systemType) - { - case MAV_TYPE_FIXED_WING: - airframe = QGC_AIRFRAME_EASYSTAR; - break; - case MAV_TYPE_QUADROTOR: - airframe = QGC_AIRFRAME_MIKROKOPTER; - break; - } - } - emit systemSpecsChanged(uasId); + type = systemType; + + // If the airframe is still generic, change it to a close default type + if (airframe == 0) + { + switch (systemType) + { + case MAV_TYPE_FIXED_WING: + airframe = QGC_AIRFRAME_EASYSTAR; + break; + case MAV_TYPE_QUADROTOR: + airframe = QGC_AIRFRAME_MIKROKOPTER; + break; + } + } + emit systemSpecsChanged(uasId); + } } void UAS::setUASName(const QString& name) diff --git a/src/uas/UAS.h b/src/uas/UAS.h index bab9d55478b6cf7b6cfe097a3d0187da730a05e0..3f2e591c6bf8d607335cc8edb351112d789dea88 100644 --- a/src/uas/UAS.h +++ b/src/uas/UAS.h @@ -490,7 +490,7 @@ public slots: /** @brief Set the specific airframe type */ void setAirframe(int airframe) { - if((airframe >= 0) && (airframe < 12)) + if((airframe >= QGC_AIRFRAME_GENERIC) && (airframe < QGC_AIRFRAME_END_OF_ENUM)) { this->airframe = airframe; emit systemSpecsChanged(uasId); @@ -643,7 +643,6 @@ public slots: void stopDataRecording(); void deleteSettings(); signals: - /** @brief The main/battery voltage has changed/was updated */ //void voltageChanged(int uasId, double voltage); // Defined in UASInterface already /** @brief An actuator value has changed */