diff --git a/test/mavsdk_tests/autopilot_tester.cpp b/test/mavsdk_tests/autopilot_tester.cpp index 730aa1d460..a39ca1f3c9 100644 --- a/test/mavsdk_tests/autopilot_tester.cpp +++ b/test/mavsdk_tests/autopilot_tester.cpp @@ -452,8 +452,29 @@ void AutopilotTester::fly_forward_in_posctl() } CHECK(_manual_control->start_position_control() == ManualControl::Result::Success); + + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + store_home(); + + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + wait_until_ready(); + + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + arm(); // Climb up for 5 seconds @@ -490,10 +511,37 @@ void AutopilotTester::fly_forward_in_altctl() } CHECK(_manual_control->start_altitude_control() == ManualControl::Result::Success); + + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + store_home(); + + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + wait_until_ready(); + + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + arm(); + // Send something to make sure RC is available. + for (unsigned i = 0; i < 1 * manual_control_rate_hz; ++i) { + CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 0.5f, 0.f) == ManualControl::Result::Success); + sleep_for(std::chrono::milliseconds(1000 / manual_control_rate_hz)); + } + // Climb up for 5 seconds for (unsigned i = 0; i < 5 * manual_control_rate_hz; ++i) { CHECK(_manual_control->set_manual_control_input(0.f, 0.f, 1.f, 0.f) == ManualControl::Result::Success);