From 49a9c91f3fae304b48f4acc050d4c3e661dd8327 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Tue, 19 Nov 2019 12:57:50 -0800 Subject: [PATCH] Fix gimbal yaw visual problems --- src/MissionManager/CameraSection.cc | 4 +--- src/MissionManager/MissionController.cc | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/MissionManager/CameraSection.cc b/src/MissionManager/CameraSection.cc index e605a7b..6a1c551 100644 --- a/src/MissionManager/CameraSection.cc +++ b/src/MissionManager/CameraSection.cc @@ -543,9 +543,7 @@ double CameraSection::specifiedGimbalPitch(void) const void CameraSection::_updateSpecifiedGimbalYaw(void) { - if (_specifyGimbal) { - emit specifiedGimbalYawChanged(specifiedGimbalYaw()); - } + emit specifiedGimbalYawChanged(specifiedGimbalYaw()); } void CameraSection::_updateSpecifiedGimbalPitch(void) diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index 9505a1b..0b5bce2 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1419,7 +1419,21 @@ void MissionController::_recalcMissionFlightStatus() _missionFlightStatus.vehicleSpeed = newSpeed; } - // Look for gimbal change + // ROI commands cancel out previous gimbal yaw/pitch + if (simpleItem) { + switch (simpleItem->command()) { + case MAV_CMD_NAV_ROI: + case MAV_CMD_DO_SET_ROI_LOCATION: + case MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET: + _missionFlightStatus.gimbalYaw = std::numeric_limits::quiet_NaN(); + _missionFlightStatus.gimbalPitch = std::numeric_limits::quiet_NaN(); + break; + default: + break; + } + } + + // Look for specific gimbal changes double gimbalYaw = item->specifiedGimbalYaw(); if (!qIsNaN(gimbalYaw)) { _missionFlightStatus.gimbalYaw = gimbalYaw;