From d5aad58c92cb9e627ac7ecac26ee110e3ea26dd6 Mon Sep 17 00:00:00 2001
From: Alessandro Simovic <alessandro@yuneecresearch.com>
Date: Thu, 21 Feb 2019 16:35:55 +0100
Subject: [PATCH] navigator: reset vehicle_roi on mission update

---
 src/modules/navigator/mission.cpp | 5 +++++
 src/modules/navigator/navigator.h | 1 +
 2 files changed, 6 insertions(+)

diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp
index 168719be32..8ef26e7831 100644
--- a/src/modules/navigator/mission.cpp
+++ b/src/modules/navigator/mission.cpp
@@ -448,6 +448,11 @@ Mission::update_mission()
 	/* reset triplets */
 	_navigator->reset_triplets();
 
+	/* Reset vehicle_roi
+	 * Missions that do not explicitly configure ROI would not override
+	 * an existing ROI setting from previous missions */
+	_navigator->reset_vroi();
+
 	struct mission_s old_mission = _mission;
 
 	if (orb_copy(ORB_ID(mission), _navigator->get_mission_sub(), &_mission) == OK) {
diff --git a/src/modules/navigator/navigator.h b/src/modules/navigator/navigator.h
index 51b7f58be9..95bbffc504 100644
--- a/src/modules/navigator/navigator.h
+++ b/src/modules/navigator/navigator.h
@@ -159,6 +159,7 @@ public:
 	PrecLand *get_precland() { return &_precland; } /**< allow others, e.g. Mission, to use the precision land block */
 
 	const vehicle_roi_s &get_vroi() { return _vroi; }
+	void reset_vroi() { _vroi = {}; }
 
 	bool home_alt_valid() { return (_home_pos.timestamp > 0 && _home_pos.valid_alt); }
 	bool home_position_valid() { return (_home_pos.timestamp > 0 && _home_pos.valid_alt && _home_pos.valid_hpos); }
-- 
GitLab