diff --git a/src/MissionManager/CameraSection.cc b/src/MissionManager/CameraSection.cc index 131c2c18104f74963fbfa01fc1375cfd166f341d..98046d57b11767fb1cb522dce19bda423cf36eca 100644 --- a/src/MissionManager/CameraSection.cc +++ b/src/MissionManager/CameraSection.cc @@ -138,12 +138,12 @@ void CameraSection::appendSectionItems(QList& items, QObject* miss item = new MissionItem(nextSequenceNumber++, MAV_CMD_IMAGE_START_CAPTURE, MAV_FRAME_MISSION, + 0, // Camera ID, all cameras _cameraPhotoIntervalTimeFact.rawValue().toInt(), // Interval 0, // Unlimited photo count - -1, // Max resolution - 0, 0, // param 4-5 not used - 0, // Camera ID, all cameras - 0, // param 7 not used + -1, // Max horizontal resolution + -1, // Max vertical resolution + 0, 0, // param 6-7 not used true, // autoContinue false, // isCurrentItem missionItemParent); @@ -264,7 +264,7 @@ bool CameraSection::scanForSection(QmlObjectListModel* visualItems, int scanInde break; case MAV_CMD_IMAGE_START_CAPTURE: - if (!foundCameraAction && missionItem.param1() != 0 && missionItem.param2() == 0 && missionItem.param3() == -1 && missionItem.param4() == 0 && missionItem.param5() == 0 && missionItem.param6() == 0 && missionItem.param7() == 0) { + if (!foundCameraAction && missionItem.param1() == 0 && missionItem.param2() >= 1 && missionItem.param3() == 0 && missionItem.param4() == -1 && missionItem.param5() == -1 && missionItem.param6() == 0 && missionItem.param7() == 0) { foundCameraAction = true; cameraAction()->setRawValue(TakePhotosIntervalTime); cameraPhotoIntervalTime()->setRawValue(missionItem.param1()); diff --git a/src/MissionManager/CameraSectionTest.cc b/src/MissionManager/CameraSectionTest.cc index 4b1f9c66df5441d67dabe4e2d146ed17ca65eff3..1cf0312182091391a75e93da2344761ec0cb47e0 100644 --- a/src/MissionManager/CameraSectionTest.cc +++ b/src/MissionManager/CameraSectionTest.cc @@ -42,7 +42,7 @@ void CameraSectionTest::init(void) MissionItem(0, MAV_CMD_DO_MOUNT_CONTROL, MAV_FRAME_MISSION, 10.1234, 0, 20.1234, 0, 0, 0, MAV_MOUNT_MODE_MAVLINK_TARGETING, true, false), this); _validTimeItem = new SimpleMissionItem(_offlineVehicle, - MissionItem(0, MAV_CMD_IMAGE_START_CAPTURE, MAV_FRAME_MISSION, 48, 0,-1, 0, 0, 0, 0, true, false), + MissionItem(0, MAV_CMD_IMAGE_START_CAPTURE, MAV_FRAME_MISSION, 0, 48, 0, -1, -1, 0, 0, true, false), this); _validDistanceItem = new SimpleMissionItem(_offlineVehicle, MissionItem(0, MAV_CMD_DO_SET_CAM_TRIGG_DIST, MAV_FRAME_MISSION, 72, 0, 0, 0, 0, 0, 0, true, false), @@ -442,7 +442,7 @@ void CameraSectionTest::_testAppendSectionItems(void) // Test camera actions _cameraSection->cameraAction()->setRawValue(CameraSection::TakePhotosIntervalTime); - _cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param1()); + _cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param2()); _cameraSection->appendSectionItems(rgMissionItems, this, seqNum); QCOMPARE(rgMissionItems.count(), 1); QCOMPARE(seqNum, 1); @@ -494,7 +494,7 @@ void CameraSectionTest::_testAppendSectionItems(void) _cameraSection->gimbalPitch()->setRawValue(_validGimbalItem->missionItem().param1()); _cameraSection->gimbalYaw()->setRawValue(_validGimbalItem->missionItem().param3()); _cameraSection->cameraAction()->setRawValue(CameraSection::TakePhotosIntervalTime); - _cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param1()); + _cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param2()); _cameraSection->appendSectionItems(rgMissionItems, this, seqNum); QCOMPARE(rgMissionItems.count(), 2); QCOMPARE(seqNum, 2); @@ -678,7 +678,7 @@ void CameraSectionTest::_testScanForPhotoIntervalTimeSection(void) // Image start command but incorrect settings SimpleMissionItem invalidSimpleItem(_offlineVehicle, _validTimeItem->missionItem()); - invalidSimpleItem.missionItem().setParam2(10); // must be unlimited + invalidSimpleItem.missionItem().setParam3(10); // must be unlimited visualItems.append(&invalidSimpleItem); QCOMPARE(_cameraSection->scanForSection(&visualItems, scanIndex), false); QCOMPARE(visualItems.count(), 1); diff --git a/src/MissionManager/SectionTest.cc b/src/MissionManager/SectionTest.cc index ef7b4acc963fa650b5b8ea9f58131f55ef69fea3..e177504eaa32509177ba24d861e2414c7d98be5e 100644 --- a/src/MissionManager/SectionTest.cc +++ b/src/MissionManager/SectionTest.cc @@ -54,19 +54,19 @@ void SectionTest::_createSpy(Section* section, MultiSignalSpy** sectionSpy) *sectionSpy = spy; } -void SectionTest::_missionItemsEqual(MissionItem& item1, MissionItem& item2) +void SectionTest::_missionItemsEqual(MissionItem& actual, MissionItem& expected) { - QCOMPARE(item1.command(), item2.command()); - QCOMPARE(item1.frame(), item2.frame()); - QCOMPARE(item1.autoContinue(), item2.autoContinue()); - - QVERIFY(UnitTest::doubleNaNCompare(item1.param1(), item2.param1())); - QVERIFY(UnitTest::doubleNaNCompare(item1.param2(), item2.param2())); - QVERIFY(UnitTest::doubleNaNCompare(item1.param3(), item2.param3())); - QVERIFY(UnitTest::doubleNaNCompare(item1.param4(), item2.param4())); - QVERIFY(UnitTest::doubleNaNCompare(item1.param5(), item2.param5())); - QVERIFY(UnitTest::doubleNaNCompare(item1.param6(), item2.param6())); - QVERIFY(UnitTest::doubleNaNCompare(item1.param7(), item2.param7())); + QCOMPARE(actual.command(), expected.command()); + QCOMPARE(actual.frame(), expected.frame()); + QCOMPARE(actual.autoContinue(), expected.autoContinue()); + + QVERIFY(UnitTest::doubleNaNCompare(actual.param1(), expected.param1())); + QVERIFY(UnitTest::doubleNaNCompare(actual.param2(), expected.param2())); + QVERIFY(UnitTest::doubleNaNCompare(actual.param3(), expected.param3())); + QVERIFY(UnitTest::doubleNaNCompare(actual.param4(), expected.param4())); + QVERIFY(UnitTest::doubleNaNCompare(actual.param5(), expected.param5())); + QVERIFY(UnitTest::doubleNaNCompare(actual.param6(), expected.param6())); + QVERIFY(UnitTest::doubleNaNCompare(actual.param7(), expected.param7())); } void SectionTest::_commonScanTest(Section* section) diff --git a/src/MissionManager/SectionTest.h b/src/MissionManager/SectionTest.h index 9c85bb2c3169d7a849356f5563dfb51699440cf0..9cb5c30c811637e8b275adf3778fbb1343f1980b 100644 --- a/src/MissionManager/SectionTest.h +++ b/src/MissionManager/SectionTest.h @@ -25,7 +25,7 @@ public: protected: void _createSpy(Section* section, MultiSignalSpy** sectionSpy); - void _missionItemsEqual(MissionItem& item1, MissionItem& item2); + void _missionItemsEqual(MissionItem& actual, MissionItem& expected); void _commonScanTest(Section* section); enum { diff --git a/src/qgcunittest/UnitTest.cc b/src/qgcunittest/UnitTest.cc index 1352b175cf4c715ff0cf9c9c7b7f0ff3692d57af..8384ee09d8f34c53aff6fcb247c4cd865a359f92 100644 --- a/src/qgcunittest/UnitTest.cc +++ b/src/qgcunittest/UnitTest.cc @@ -510,6 +510,10 @@ bool UnitTest::doubleNaNCompare(double value1, double value2) if (qIsNaN(value1) && qIsNaN(value2)) { return true; } else { - return qFuzzyCompare(value1, value2); + bool ret = qFuzzyCompare(value1, value2); + if (!ret) { + qDebug() << value1 << value2; + } + return ret; } }