diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 12fa023a0e..0e56c9387b 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -2349,20 +2349,18 @@ int commander_thread_main(int argc, char *argv[]) } } - /* handle main state after takeoff and land */ + /* reset main state after takeoff and land */ if (status.main_state == vehicle_status_s::MAIN_STATE_AUTO_TAKEOFF && mission_result.finished) { - // transition back to state we had before takeoff if (status.main_state_prev < vehicle_status_s::MAIN_STATE_MAX && status.main_state_prev != vehicle_status_s::MAIN_STATE_AUTO_LAND) { main_state_transition(&status, status.main_state_prev); } } else if (status.main_state == vehicle_status_s::MAIN_STATE_AUTO_LAND - && status.condition_landed) { + && status.arming_state == vehicle_status_s::ARMING_STATE_STANDBY) { - // transition back to state we had before takeoff if (status.main_state_prev < vehicle_status_s::MAIN_STATE_MAX && status.main_state_prev != vehicle_status_s::MAIN_STATE_AUTO_TAKEOFF) { main_state_transition(&status, status.main_state_prev);