From 43fb84a63b678ff1201c5c4e5d7dea16679aa991 Mon Sep 17 00:00:00 2001 From: Matthias Grob <maetugr@gmail.com> Date: Sun, 13 Jan 2019 19:16:47 +0100 Subject: [PATCH] mc_pos_control: make sure task gets started after idle delay --- src/modules/mc_pos_control/mc_pos_control_main.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/modules/mc_pos_control/mc_pos_control_main.cpp b/src/modules/mc_pos_control/mc_pos_control_main.cpp index 442c75f8a5..f92e585386 100644 --- a/src/modules/mc_pos_control/mc_pos_control_main.cpp +++ b/src/modules/mc_pos_control/mc_pos_control_main.cpp @@ -649,18 +649,17 @@ MulticopterPositionControl::run() _wv_controller->update(matrix::Quatf(_att_sp.q_d), _states.yaw); } - if (_control_mode.flag_armed) { + // arm hysteresis prevents vehicle to takeoff + // before propeller reached idle speed. + _arm_hysteresis.set_state_and_update(_control_mode.flag_armed); + + if (_arm_hysteresis.get_state()) { // as soon vehicle is armed check for flighttask start_flight_task(); - // arm hysteresis prevents vehicle to takeoff - // before propeller reached idle speed. - _arm_hysteresis.set_state_and_update(true); } else { // disable flighttask _flight_tasks.switchTask(FlightTaskIndex::None); - // reset arm hysteresis - _arm_hysteresis.set_state_and_update(false); } // check if any task is active -- GitLab