From ec0f015d975e56a1ce8111f51356dfe609313b82 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Mon, 21 May 2018 11:40:50 -0700 Subject: [PATCH] Fix standalone coords affecting time/distance --- src/MissionManager/MavCmdInfoCommon.json | 1 + src/MissionManager/MissionController.cc | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/MissionManager/MavCmdInfoCommon.json b/src/MissionManager/MavCmdInfoCommon.json index 63a3459c3..49c116bab 100644 --- a/src/MissionManager/MavCmdInfoCommon.json +++ b/src/MissionManager/MavCmdInfoCommon.json @@ -640,6 +640,7 @@ "friendlyName": "ROI to next waypoint" , "description": "Sets the region of interest to point towards the next waypoint with optional offsets.", "specifiesCoordinate": false, + "standaloneCoordinate": true, "friendlyEdit": true, "category": "Camera", "param5": { diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index e518d4a64..b97ee137d 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1343,12 +1343,6 @@ void MissionController::_recalcMissionFlightStatus() _addCommandTimeDelay(simpleItem, vtolInHover); if (item->specifiesCoordinate()) { - // Update vehicle yaw assuming direction to next waypoint - if (item != lastCoordinateItem) { - _missionFlightStatus.vehicleYaw = lastCoordinateItem->exitCoordinate().azimuthTo(item->coordinate()); - lastCoordinateItem->setMissionVehicleYaw(_missionFlightStatus.vehicleYaw); - } - // Keep track of the min/max altitude for all waypoints so we can show altitudes as a percentage double absoluteAltitude = item->coordinate().altitude(); @@ -1366,6 +1360,13 @@ void MissionController::_recalcMissionFlightStatus() if (!item->isStandaloneCoordinate()) { firstCoordinateItem = false; + + // Update vehicle yaw assuming direction to next waypoint + if (item != lastCoordinateItem) { + _missionFlightStatus.vehicleYaw = lastCoordinateItem->exitCoordinate().azimuthTo(item->coordinate()); + lastCoordinateItem->setMissionVehicleYaw(_missionFlightStatus.vehicleYaw); + } + if (lastCoordinateItem != _settingsItem || linkStartToHome) { // This is a subsequent waypoint or we are forcing the first waypoint back to home double azimuth, distance, altDifference; @@ -1395,9 +1396,9 @@ void MissionController::_recalcMissionFlightStatus() } item->setMissionFlightStatus(_missionFlightStatus); - } - lastCoordinateItem = item; + lastCoordinateItem = item; + } } } lastCoordinateItem->setMissionVehicleYaw(_missionFlightStatus.vehicleYaw); -- 2.22.0