fixing takeoff mission and swtiching to previous flight mode after land/takeoff

This commit is contained in:
Andreas Antener
2015-12-18 11:24:21 +01:00
committed by Lorenz Meier
parent 64349c7a09
commit f17c5d8d55
3 changed files with 20 additions and 15 deletions
+8 -12
View File
@@ -2352,20 +2352,16 @@ int commander_thread_main(int argc, char *argv[])
}
}
/* reset main state after takeoff and land */
if (status.main_state == vehicle_status_s::MAIN_STATE_AUTO_TAKEOFF
&& mission_result.finished) {
/* reset main state after takeoff or land has been completed */
/* only switch back to at least altitude controlled modes */
if (status.main_state_prev == vehicle_status_s::MAIN_STATE_POSCTL ||
status.main_state_prev == vehicle_status_s::MAIN_STATE_ALTCTL) {
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);
}
if ((status.main_state == vehicle_status_s::MAIN_STATE_AUTO_TAKEOFF
&& mission_result.finished) ||
(status.main_state == vehicle_status_s::MAIN_STATE_AUTO_LAND
&& status.condition_landed)) {
} else if (status.main_state == vehicle_status_s::MAIN_STATE_AUTO_LAND
&& status.arming_state == vehicle_status_s::ARMING_STATE_STANDBY) {
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);
}
}