diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2014-01-21 15:26:51 +0100 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2014-01-21 15:26:51 +0100 |
commit | eb9fd154fef4f01c6eda1bb87ee7ea87c6c04133 (patch) | |
tree | 8c5d1cbe7c9274bfebb0a6f81ea67c53e186bf49 /src | |
parent | 2e472cf918074cd2c4addc7d32abc09933d4ee2d (diff) | |
download | px4-firmware-eb9fd154fef4f01c6eda1bb87ee7ea87c6c04133.tar.gz px4-firmware-eb9fd154fef4f01c6eda1bb87ee7ea87c6c04133.tar.bz2 px4-firmware-eb9fd154fef4f01c6eda1bb87ee7ea87c6c04133.zip |
commander: more robust RC failsafe, but still hotfix, needs to be rewritten
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/commander/commander.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 6a668fcd7..47053838c 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -1133,12 +1133,17 @@ int commander_thread_main(int argc, char *argv[]) mavlink_log_critical(mavlink_fd, "#audio: CRITICAL: RC SIGNAL LOST"); status.rc_signal_lost = true; status_changed = true; - if (status.main_state != MAIN_STATE_AUTO && armed.armed) { - transition_result_t res = main_state_transition(&status, MAIN_STATE_AUTO); + } + if (status.main_state != MAIN_STATE_AUTO && armed.armed) { + transition_result_t res = main_state_transition(&status, MAIN_STATE_AUTO); + if (res == TRANSITION_CHANGED) { + mavlink_log_critical(mavlink_fd, "#audio: failsafe, switching to RTL mode"); + status.set_nav_state = NAV_STATE_RTL; + status.set_nav_state_timestamp = hrt_absolute_time(); + } else if (status.main_state != MAIN_STATE_SEATBELT) { + res = main_state_transition(&status, MAIN_STATE_SEATBELT); if (res == TRANSITION_CHANGED) { - mavlink_log_critical(mavlink_fd, "#audio: switching to RTL mode"); - status.set_nav_state = NAV_STATE_RTL; - status.set_nav_state_timestamp = hrt_absolute_time(); + mavlink_log_critical(mavlink_fd, "#audio: failsafe, switching to SEATBELT mode"); } } } |