aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2014-01-21 15:26:51 +0100
committerAnton Babushkin <anton.babushkin@me.com>2014-01-21 15:26:51 +0100
commiteb9fd154fef4f01c6eda1bb87ee7ea87c6c04133 (patch)
tree8c5d1cbe7c9274bfebb0a6f81ea67c53e186bf49
parent2e472cf918074cd2c4addc7d32abc09933d4ee2d (diff)
downloadpx4-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
-rw-r--r--src/modules/commander/commander.cpp15
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");
}
}
}