From 2c2808b068e638fb1abc42722a8e73655b20743b Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Tue, 4 Sep 2018 14:42:45 -0700 Subject: [PATCH] Fix terrain NaN making it all the way to Planned Home altitude --- src/MissionManager/MissionController.cc | 4 +++- src/MissionManager/MissionSettingsItem.cc | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index a5054afe4..da5e9bb62 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1524,7 +1524,9 @@ void MissionController::_setPlannedHomePositionFromFirstCoordinate(void) VisualMissionItem* item = _visualItems->value(i); if (item->specifiesCoordinate()) { - _settingsItem->setCoordinate(item->coordinate().atDistanceAndAzimuth(30, 0)); + QGeoCoordinate plannedHomeCoord = item->coordinate().atDistanceAndAzimuth(30, 0); + plannedHomeCoord.setAltitude(0); + _settingsItem->setCoordinate(plannedHomeCoord); } } } diff --git a/src/MissionManager/MissionSettingsItem.cc b/src/MissionManager/MissionSettingsItem.cc index af784e765..912e67fc5 100644 --- a/src/MissionManager/MissionSettingsItem.cc +++ b/src/MissionManager/MissionSettingsItem.cc @@ -231,7 +231,7 @@ void MissionSettingsItem::setHomePositionFromVehicle(const QGeoCoordinate& coord void MissionSettingsItem::setCoordinate(const QGeoCoordinate& coordinate) { if (_plannedHomePositionCoordinate != coordinate) { - // ArduPilot tends to send crap home positions at initial vehicel boot, discard them + // ArduPilot tends to send crap home positions at initial vehicle boot, discard them if (coordinate.isValid() && (coordinate.latitude() != 0 || coordinate.longitude() != 0)) { _plannedHomePositionCoordinate = coordinate; emit coordinateChanged(coordinate); @@ -269,7 +269,6 @@ void MissionSettingsItem::_updateAltitudeInCoordinate(QVariant value) double newAltitude = value.toDouble(); if (!qFuzzyCompare(_plannedHomePositionCoordinate.altitude(), newAltitude)) { - _plannedHomePositionCoordinate.setAltitude(newAltitude); emit coordinateChanged(_plannedHomePositionCoordinate); emit exitCoordinateChanged(_plannedHomePositionCoordinate); @@ -295,7 +294,7 @@ void MissionSettingsItem::setMissionEndRTL(bool missionEndRTL) void MissionSettingsItem::_setHomeAltFromTerrain(double terrainAltitude) { - if (!_plannedHomePositionFromVehicle) { + if (!_plannedHomePositionFromVehicle && !qIsNaN(terrainAltitude)) { _plannedHomePositionAltitudeFact.setRawValue(terrainAltitude); } } -- 2.22.0