Unverified Commit 18ee2157 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #6604 from DonLakeFlyer/StructureScanSeq

Structure Scan: Fix lastSequenceNumber calc
parents 888a5d54 83d2035f
...@@ -63,9 +63,11 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie ...@@ -63,9 +63,11 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie
connect(&_altitudeFact, &Fact::valueChanged, this, &StructureScanComplexItem::_updateCoordinateAltitudes); connect(&_altitudeFact, &Fact::valueChanged, this, &StructureScanComplexItem::_updateCoordinateAltitudes);
connect(&_structurePolygon, &QGCMapPolygon::dirtyChanged, this, &StructureScanComplexItem::_polygonDirtyChanged); connect(&_structurePolygon, &QGCMapPolygon::dirtyChanged, this, &StructureScanComplexItem::_polygonDirtyChanged);
connect(&_structurePolygon, &QGCMapPolygon::countChanged, this, &StructureScanComplexItem::_polygonCountChanged);
connect(&_structurePolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon); connect(&_structurePolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon);
connect(&_structurePolygon, &QGCMapPolygon::countChanged, this, &StructureScanComplexItem::_updateLastSequenceNumber);
connect(&_layersFact, &Fact::valueChanged, this, &StructureScanComplexItem::_updateLastSequenceNumber);
connect(&_flightPolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_flightPathChanged); connect(&_flightPolygon, &QGCMapPolygon::pathChanged, this, &StructureScanComplexItem::_flightPathChanged);
connect(_cameraCalc.distanceToSurface(), &Fact::valueChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon); connect(_cameraCalc.distanceToSurface(), &Fact::valueChanged, this, &StructureScanComplexItem::_rebuildFlightPolygon);
...@@ -108,19 +110,23 @@ void StructureScanComplexItem::_clearInternal(void) ...@@ -108,19 +110,23 @@ void StructureScanComplexItem::_clearInternal(void)
emit lastSequenceNumberChanged(lastSequenceNumber()); emit lastSequenceNumberChanged(lastSequenceNumber());
} }
void StructureScanComplexItem::_polygonCountChanged(int count) void StructureScanComplexItem::_updateLastSequenceNumber(void)
{ {
Q_UNUSED(count);
emit lastSequenceNumberChanged(lastSequenceNumber()); emit lastSequenceNumberChanged(lastSequenceNumber());
} }
int StructureScanComplexItem::lastSequenceNumber(void) const int StructureScanComplexItem::lastSequenceNumber(void) const
{ {
return _sequenceNumber + // Each structure layer contains:
(_layersFact.rawValue().toInt() * // 1 waypoint for each polygon vertex + 1 to go back to first polygon vertex for each layer
((_flightPolygon.count() + 1) + // 1 waypoint for each polygon vertex + 1 to go back to first polygon vertex for each layer // Two commands for camera trigger start/stop
2)) + // Camera trigger start/stop for each layer int layerItemCount = _flightPolygon.count() + 1 + 2;
2; // ROI_WPNEXT_OFFSET and ROI_NONE commands
int multiLayerItemCount = layerItemCount * _layersFact.rawValue().toInt();
int itemCount = multiLayerItemCount + 2; // +2 for ROI_WPNEXT_OFFSET and ROI_NONE commands
return _sequenceNumber + itemCount - 1;
} }
void StructureScanComplexItem::setDirty(bool dirty) void StructureScanComplexItem::setDirty(bool dirty)
......
...@@ -107,13 +107,13 @@ signals: ...@@ -107,13 +107,13 @@ signals:
private slots: private slots:
void _setDirty(void); void _setDirty(void);
void _polygonDirtyChanged (bool dirty); void _polygonDirtyChanged (bool dirty);
void _polygonCountChanged (int count);
void _flightPathChanged (void); void _flightPathChanged (void);
void _clearInternal (void); void _clearInternal (void);
void _updateCoordinateAltitudes (void); void _updateCoordinateAltitudes (void);
void _rebuildFlightPolygon (void); void _rebuildFlightPolygon (void);
void _recalcCameraShots (void); void _recalcCameraShots (void);
void _recalcLayerInfo (void); void _recalcLayerInfo (void);
void _updateLastSequenceNumber (void);
private: private:
void _setExitCoordinate(const QGeoCoordinate& coordinate); void _setExitCoordinate(const QGeoCoordinate& coordinate);
......
...@@ -134,6 +134,6 @@ void StructureScanComplexItemTest::_testItemCount(void) ...@@ -134,6 +134,6 @@ void StructureScanComplexItemTest::_testItemCount(void)
_initItem(); _initItem();
_structureScanItem->appendMissionItems(items, this); _structureScanItem->appendMissionItems(items, this);
QCOMPARE(items.count(), _structureScanItem->lastSequenceNumber()); QCOMPARE(items.count() - 1, _structureScanItem->lastSequenceNumber());
} }
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