diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2012-12-27 18:36:37 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2012-12-27 18:36:37 +0100 |
commit | e2196bca4f574c783f2b1883e7a9cec20e8283e1 (patch) | |
tree | 640d1349d5e1f814a910c075eccea492aa5e16e5 /apps/commander/commander.c | |
parent | f5bad08bd0f4e0f6506deeac9d369b2b9c2d9e32 (diff) | |
download | px4-firmware-e2196bca4f574c783f2b1883e7a9cec20e8283e1.tar.gz px4-firmware-e2196bca4f574c783f2b1883e7a9cec20e8283e1.tar.bz2 px4-firmware-e2196bca4f574c783f2b1883e7a9cec20e8283e1.zip |
Added position lock check
Diffstat (limited to 'apps/commander/commander.c')
-rw-r--r-- | apps/commander/commander.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/commander/commander.c b/apps/commander/commander.c index b5df8a8b3..e0ee500dc 100644 --- a/apps/commander/commander.c +++ b/apps/commander/commander.c @@ -1589,6 +1589,26 @@ int commander_thread_main(int argc, char *argv[]) state_changed = true; } + /* + * Mark the position of the first position lock as return to launch (RTL) + * position. The MAV will return here on command or emergency. + * + * Conditions: + * + * 1) The system aquired position lock just now + * 2) The system has not aquired position lock before + * 3) The system is not armed (on the ground) + */ + if (!current_status.flag_valid_launch_position && + !vector_flight_mode_ok && current_status.flag_vector_flight_mode_ok && + !current_status.flag_system_armed) { + /* first time a valid position, store it and emit it */ + + // XXX implement storage and publication of RTL position + current_status.flag_valid_launch_position = true; + current_status.flag_auto_flight_mode_ok = true; + state_changed = true; + } /* Check if last transition deserved an audio event */ |