Browse Source

Merge pull request #6604 from DonLakeFlyer/StructureScanSeq

Structure Scan: Fix lastSequenceNumber calc
QGC4.4
Don Gagne 7 years ago committed by GitHub
parent
commit
18ee215707
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      src/MissionManager/StructureScanComplexItem.cc
  2. 2
      src/MissionManager/StructureScanComplexItem.h
  3. 2
      src/MissionManager/StructureScanComplexItemTest.cc

22
src/MissionManager/StructureScanComplexItem.cc

@ -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)
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)

2
src/MissionManager/StructureScanComplexItem.h

@ -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);

2
src/MissionManager/StructureScanComplexItemTest.cc

@ -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());
} }

Loading…
Cancel
Save