Commit da5d69d6 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #5197 from DonLakeFlyer/IMAGE_START_CAPTURE

Bring up to date with new IMAGE_START_CAPTURE spec
parents 3c89ca65 5ef3229c
...@@ -138,12 +138,12 @@ void CameraSection::appendSectionItems(QList<MissionItem*>& items, QObject* miss ...@@ -138,12 +138,12 @@ void CameraSection::appendSectionItems(QList<MissionItem*>& items, QObject* miss
item = new MissionItem(nextSequenceNumber++, item = new MissionItem(nextSequenceNumber++,
MAV_CMD_IMAGE_START_CAPTURE, MAV_CMD_IMAGE_START_CAPTURE,
MAV_FRAME_MISSION, MAV_FRAME_MISSION,
0, // Camera ID, all cameras
_cameraPhotoIntervalTimeFact.rawValue().toInt(), // Interval _cameraPhotoIntervalTimeFact.rawValue().toInt(), // Interval
0, // Unlimited photo count 0, // Unlimited photo count
-1, // Max resolution -1, // Max horizontal resolution
0, 0, // param 4-5 not used -1, // Max vertical resolution
0, // Camera ID, all cameras 0, 0, // param 6-7 not used
0, // param 7 not used
true, // autoContinue true, // autoContinue
false, // isCurrentItem false, // isCurrentItem
missionItemParent); missionItemParent);
...@@ -264,7 +264,7 @@ bool CameraSection::scanForSection(QmlObjectListModel* visualItems, int scanInde ...@@ -264,7 +264,7 @@ bool CameraSection::scanForSection(QmlObjectListModel* visualItems, int scanInde
break; break;
case MAV_CMD_IMAGE_START_CAPTURE: 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; foundCameraAction = true;
cameraAction()->setRawValue(TakePhotosIntervalTime); cameraAction()->setRawValue(TakePhotosIntervalTime);
cameraPhotoIntervalTime()->setRawValue(missionItem.param1()); cameraPhotoIntervalTime()->setRawValue(missionItem.param1());
......
...@@ -42,7 +42,7 @@ void CameraSectionTest::init(void) ...@@ -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), 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); this);
_validTimeItem = new SimpleMissionItem(_offlineVehicle, _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); this);
_validDistanceItem = new SimpleMissionItem(_offlineVehicle, _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), 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) ...@@ -442,7 +442,7 @@ void CameraSectionTest::_testAppendSectionItems(void)
// Test camera actions // Test camera actions
_cameraSection->cameraAction()->setRawValue(CameraSection::TakePhotosIntervalTime); _cameraSection->cameraAction()->setRawValue(CameraSection::TakePhotosIntervalTime);
_cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param1()); _cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param2());
_cameraSection->appendSectionItems(rgMissionItems, this, seqNum); _cameraSection->appendSectionItems(rgMissionItems, this, seqNum);
QCOMPARE(rgMissionItems.count(), 1); QCOMPARE(rgMissionItems.count(), 1);
QCOMPARE(seqNum, 1); QCOMPARE(seqNum, 1);
...@@ -494,7 +494,7 @@ void CameraSectionTest::_testAppendSectionItems(void) ...@@ -494,7 +494,7 @@ void CameraSectionTest::_testAppendSectionItems(void)
_cameraSection->gimbalPitch()->setRawValue(_validGimbalItem->missionItem().param1()); _cameraSection->gimbalPitch()->setRawValue(_validGimbalItem->missionItem().param1());
_cameraSection->gimbalYaw()->setRawValue(_validGimbalItem->missionItem().param3()); _cameraSection->gimbalYaw()->setRawValue(_validGimbalItem->missionItem().param3());
_cameraSection->cameraAction()->setRawValue(CameraSection::TakePhotosIntervalTime); _cameraSection->cameraAction()->setRawValue(CameraSection::TakePhotosIntervalTime);
_cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param1()); _cameraSection->cameraPhotoIntervalTime()->setRawValue(_validTimeItem->missionItem().param2());
_cameraSection->appendSectionItems(rgMissionItems, this, seqNum); _cameraSection->appendSectionItems(rgMissionItems, this, seqNum);
QCOMPARE(rgMissionItems.count(), 2); QCOMPARE(rgMissionItems.count(), 2);
QCOMPARE(seqNum, 2); QCOMPARE(seqNum, 2);
...@@ -678,7 +678,7 @@ void CameraSectionTest::_testScanForPhotoIntervalTimeSection(void) ...@@ -678,7 +678,7 @@ void CameraSectionTest::_testScanForPhotoIntervalTimeSection(void)
// Image start command but incorrect settings // Image start command but incorrect settings
SimpleMissionItem invalidSimpleItem(_offlineVehicle, _validTimeItem->missionItem()); SimpleMissionItem invalidSimpleItem(_offlineVehicle, _validTimeItem->missionItem());
invalidSimpleItem.missionItem().setParam2(10); // must be unlimited invalidSimpleItem.missionItem().setParam3(10); // must be unlimited
visualItems.append(&invalidSimpleItem); visualItems.append(&invalidSimpleItem);
QCOMPARE(_cameraSection->scanForSection(&visualItems, scanIndex), false); QCOMPARE(_cameraSection->scanForSection(&visualItems, scanIndex), false);
QCOMPARE(visualItems.count(), 1); QCOMPARE(visualItems.count(), 1);
......
...@@ -54,19 +54,19 @@ void SectionTest::_createSpy(Section* section, MultiSignalSpy** sectionSpy) ...@@ -54,19 +54,19 @@ void SectionTest::_createSpy(Section* section, MultiSignalSpy** sectionSpy)
*sectionSpy = spy; *sectionSpy = spy;
} }
void SectionTest::_missionItemsEqual(MissionItem& item1, MissionItem& item2) void SectionTest::_missionItemsEqual(MissionItem& actual, MissionItem& expected)
{ {
QCOMPARE(item1.command(), item2.command()); QCOMPARE(actual.command(), expected.command());
QCOMPARE(item1.frame(), item2.frame()); QCOMPARE(actual.frame(), expected.frame());
QCOMPARE(item1.autoContinue(), item2.autoContinue()); QCOMPARE(actual.autoContinue(), expected.autoContinue());
QVERIFY(UnitTest::doubleNaNCompare(item1.param1(), item2.param1())); QVERIFY(UnitTest::doubleNaNCompare(actual.param1(), expected.param1()));
QVERIFY(UnitTest::doubleNaNCompare(item1.param2(), item2.param2())); QVERIFY(UnitTest::doubleNaNCompare(actual.param2(), expected.param2()));
QVERIFY(UnitTest::doubleNaNCompare(item1.param3(), item2.param3())); QVERIFY(UnitTest::doubleNaNCompare(actual.param3(), expected.param3()));
QVERIFY(UnitTest::doubleNaNCompare(item1.param4(), item2.param4())); QVERIFY(UnitTest::doubleNaNCompare(actual.param4(), expected.param4()));
QVERIFY(UnitTest::doubleNaNCompare(item1.param5(), item2.param5())); QVERIFY(UnitTest::doubleNaNCompare(actual.param5(), expected.param5()));
QVERIFY(UnitTest::doubleNaNCompare(item1.param6(), item2.param6())); QVERIFY(UnitTest::doubleNaNCompare(actual.param6(), expected.param6()));
QVERIFY(UnitTest::doubleNaNCompare(item1.param7(), item2.param7())); QVERIFY(UnitTest::doubleNaNCompare(actual.param7(), expected.param7()));
} }
void SectionTest::_commonScanTest(Section* section) void SectionTest::_commonScanTest(Section* section)
......
...@@ -25,7 +25,7 @@ public: ...@@ -25,7 +25,7 @@ public:
protected: protected:
void _createSpy(Section* section, MultiSignalSpy** sectionSpy); void _createSpy(Section* section, MultiSignalSpy** sectionSpy);
void _missionItemsEqual(MissionItem& item1, MissionItem& item2); void _missionItemsEqual(MissionItem& actual, MissionItem& expected);
void _commonScanTest(Section* section); void _commonScanTest(Section* section);
enum { enum {
......
...@@ -510,6 +510,10 @@ bool UnitTest::doubleNaNCompare(double value1, double value2) ...@@ -510,6 +510,10 @@ bool UnitTest::doubleNaNCompare(double value1, double value2)
if (qIsNaN(value1) && qIsNaN(value2)) { if (qIsNaN(value1) && qIsNaN(value2)) {
return true; return true;
} else { } else {
return qFuzzyCompare(value1, value2); bool ret = qFuzzyCompare(value1, value2);
if (!ret) {
qDebug() << value1 << value2;
}
return ret;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment