From 97191bd60f536b4add2e27e3b2124a375e465e17 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Tue, 27 Feb 2024 13:25:17 +0100 Subject: [PATCH] autopilot_tester: for mission end timeout check take speed factor into account And increase the (simulation time) timeouts. Signed-off-by: Silvan Fuhrer --- test/mavsdk_tests/autopilot_tester.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/test/mavsdk_tests/autopilot_tester.cpp b/test/mavsdk_tests/autopilot_tester.cpp index e1bbe9efde..f3ba47f871 100644 --- a/test/mavsdk_tests/autopilot_tester.cpp +++ b/test/mavsdk_tests/autopilot_tester.cpp @@ -271,9 +271,16 @@ void AutopilotTester::execute_mission() REQUIRE(poll_condition_with_timeout( [this]() { return _mission->start_mission() == Mission::Result::Success; }, std::chrono::seconds(3))); - // TODO: Adapt time limit based on mission size, flight speed, sim speed factor, etc. + float speed_factor = 1.0f; - wait_for_mission_finished(std::chrono::seconds(90)); + if (_info != nullptr) { + speed_factor = _info->get_speed_factor().second; + } + + const float mission_finish_waiting_time_in_simulation_s = 500.f; + float mission_finish_waiting_time_in_real_s = mission_finish_waiting_time_in_simulation_s / speed_factor; + + wait_for_mission_finished(std::chrono::seconds(static_cast(mission_finish_waiting_time_in_real_s))); } void AutopilotTester::execute_mission_and_lose_gps() @@ -388,9 +395,16 @@ void AutopilotTester::execute_mission_raw() { REQUIRE(_mission->start_mission() == Mission::Result::Success); - // TODO: Adapt time limit based on mission size, flight speed, sim speed factor, etc. + float speed_factor = 1.0f; - wait_for_mission_raw_finished(std::chrono::seconds(120)); + if (_info != nullptr) { + speed_factor = _info->get_speed_factor().second; + } + + const float waiting_time_simulation_time_s = 300.f; // currently this is tuned for the VTOL wind test + float waiting_time_absolute_s = waiting_time_simulation_time_s / speed_factor; + + wait_for_mission_raw_finished(std::chrono::seconds(static_cast(waiting_time_absolute_s))); } void AutopilotTester::execute_rtl()