Browse Source

Change in vehicle speed requires transect rebuild to recalc terrain max climb/descent rate based setup

QGC4.4
DonLakeFlyer 5 years ago
parent
commit
dee30f13a6
  1. 12
      src/MissionManager/TransectStyleComplexItem.cc
  2. 2
      src/MissionManager/TransectStyleComplexItem.h

12
src/MissionManager/TransectStyleComplexItem.cc

@ -327,8 +327,10 @@ double TransectStyleComplexItem::greatestDistanceTo(const QGeoCoordinate &other)
void TransectStyleComplexItem::setMissionFlightStatus(MissionController::MissionFlightStatus_t& missionFlightStatus) void TransectStyleComplexItem::setMissionFlightStatus(MissionController::MissionFlightStatus_t& missionFlightStatus)
{ {
ComplexMissionItem::setMissionFlightStatus(missionFlightStatus); ComplexMissionItem::setMissionFlightStatus(missionFlightStatus);
if (!qFuzzyCompare(_cruiseSpeed, missionFlightStatus.vehicleSpeed)) { if (!qFuzzyCompare(_vehicleSpeed, missionFlightStatus.vehicleSpeed)) {
_cruiseSpeed = missionFlightStatus.vehicleSpeed; _vehicleSpeed = missionFlightStatus.vehicleSpeed;
// Vehicle speed change affects max climb/descent rates calcs for terrain so we need to re-adjust
_rebuildTransects();
emit timeBetweenShotsChanged(); emit timeBetweenShotsChanged();
} }
} }
@ -707,9 +709,9 @@ int TransectStyleComplexItem::_maxPathHeight(const TerrainPathQuery::PathHeightI
void TransectStyleComplexItem::_adjustForMaxRates(QList<CoordInfo_t>& transect) void TransectStyleComplexItem::_adjustForMaxRates(QList<CoordInfo_t>& transect)
{ {
double maxClimbRate = _terrainAdjustMaxClimbRateFact.rawValue().toDouble(); double maxClimbRate = _terrainAdjustMaxClimbRateFact.rawValue().toDouble();
double maxDescentRate = _terrainAdjustMaxDescentRateFact.rawValue().toDouble(); double maxDescentRate = _terrainAdjustMaxDescentRateFact.rawValue().toDouble();
double flightSpeed = _missionFlightStatus.vehicleSpeed; double flightSpeed = _vehicleSpeed;
if (qIsNaN(flightSpeed) || (maxClimbRate == 0 && maxDescentRate == 0)) { if (qIsNaN(flightSpeed) || (maxClimbRate == 0 && maxDescentRate == 0)) {
if (qIsNaN(flightSpeed)) { if (qIsNaN(flightSpeed)) {

2
src/MissionManager/TransectStyleComplexItem.h

@ -185,7 +185,7 @@ protected:
double _complexDistance = qQNaN(); double _complexDistance = qQNaN();
int _cameraShots = 0; int _cameraShots = 0;
double _timeBetweenShots = 0; double _timeBetweenShots = 0;
double _cruiseSpeed = 0; double _vehicleSpeed = 5;
CameraCalc _cameraCalc; CameraCalc _cameraCalc;
bool _followTerrain = false; bool _followTerrain = false;
double _minAMSLAltitude = qQNaN(); double _minAMSLAltitude = qQNaN();

Loading…
Cancel
Save