From 82b92297b3e18805654d76e5ed34679858e8c738 Mon Sep 17 00:00:00 2001 From: Remek Zajac Date: Tue, 5 May 2020 15:25:27 +0200 Subject: [PATCH] introduce gimbal yaw visiblity setting --- src/MissionManager/MissionController.cc | 5 +++-- src/Settings/PlanView.SettingsGroup.json | 17 +++++++++++++---- src/Settings/PlanViewSettings.cc | 1 + src/Settings/PlanViewSettings.h | 1 + 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index aeffa6db4..61ce47bf4 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1464,6 +1464,7 @@ void MissionController::_recalcMissionFlightStatus() bool foundRTL = false; bool vehicleYawSpecificallySet = false; double totalHorizontalDistance = 0; + bool showGimbalOnlyWhenSet = _planViewSettings->showGimbalWhen()->enumStringValue() == "Set"; for (int i=0; i<_visualItems->count(); i++) { VisualMissionItem* item = qobject_cast(_visualItems->get(i)); @@ -1511,11 +1512,11 @@ void MissionController::_recalcMissionFlightStatus() // Look for specific gimbal changes double gimbalYaw = item->specifiedGimbalYaw(); - if (!qIsNaN(gimbalYaw)) { + if (!qIsNaN(gimbalYaw) || showGimbalOnlyWhenSet) { _missionFlightStatus.gimbalYaw = gimbalYaw; } double gimbalPitch = item->specifiedGimbalPitch(); - if (!qIsNaN(gimbalPitch)) { + if (!qIsNaN(gimbalPitch) || showGimbalOnlyWhenSet) { _missionFlightStatus.gimbalPitch = gimbalPitch; } diff --git a/src/Settings/PlanView.SettingsGroup.json b/src/Settings/PlanView.SettingsGroup.json index dcb198bc9..851438c55 100644 --- a/src/Settings/PlanView.SettingsGroup.json +++ b/src/Settings/PlanView.SettingsGroup.json @@ -24,9 +24,18 @@ "defaultValue": false }, { - "name": "useConditionGate", - "shortDescription": "Use MAV_CMD_CONDITION_GATE for pattern generation", - "type": "bool", - "defaultValue": false + "name": "useConditionGate", + "shortDescription": "Use MAV_CMD_CONDITION_GATE for pattern generation", + "type": "bool", + "defaultValue": false +}, +{ + "name": "showGimbalWhen", + "shortDescription": "Show gimbal yaw visual when yaw known/set", + "longDescription": "Shows the gimbal yaw when the it's explcitly set by the user or simply when known (propagated from previous)", + "type": "uint32", + "enumValues": "0,1", + "enumStrings": "Known,Set", + "defaultValue": 0 } ] diff --git a/src/Settings/PlanViewSettings.cc b/src/Settings/PlanViewSettings.cc index 9af8227d7..608cb3268 100644 --- a/src/Settings/PlanViewSettings.cc +++ b/src/Settings/PlanViewSettings.cc @@ -22,3 +22,4 @@ DECLARE_SETTINGSFACT(PlanViewSettings, aboveTerrainWarning) DECLARE_SETTINGSFACT(PlanViewSettings, showMissionItemStatus) DECLARE_SETTINGSFACT(PlanViewSettings, useConditionGate) DECLARE_SETTINGSFACT(PlanViewSettings, takeoffItemNotRequired) +DECLARE_SETTINGSFACT(PlanViewSettings, showGimbalWhen) diff --git a/src/Settings/PlanViewSettings.h b/src/Settings/PlanViewSettings.h index c9bed1346..34bb984fa 100644 --- a/src/Settings/PlanViewSettings.h +++ b/src/Settings/PlanViewSettings.h @@ -25,4 +25,5 @@ public: DEFINE_SETTINGFACT(showMissionItemStatus) DEFINE_SETTINGFACT(useConditionGate) DEFINE_SETTINGFACT(takeoffItemNotRequired) + DEFINE_SETTINGFACT(showGimbalWhen) }; -- 2.22.0