diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2012-09-05 11:37:17 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2012-09-05 11:37:17 +0200 |
commit | 84e11a0cac53f753f65b0bea4659e1f2d9c0b35e (patch) | |
tree | 05ca5f3573c7cfbc1c43e71a3cbdc5ca58d3cee5 /apps/commander/state_machine_helper.c | |
parent | 86a2a4fb9fd2b5ed38b330923823e06b96af01f3 (diff) | |
download | px4-firmware-84e11a0cac53f753f65b0bea4659e1f2d9c0b35e.tar.gz px4-firmware-84e11a0cac53f753f65b0bea4659e1f2d9c0b35e.tar.bz2 px4-firmware-84e11a0cac53f753f65b0bea4659e1f2d9c0b35e.zip |
Fixed correct RC loss detection, AR.Drone is now shutting down motors after 1 s of RC loss. Added debug topic.
Diffstat (limited to 'apps/commander/state_machine_helper.c')
-rw-r--r-- | apps/commander/state_machine_helper.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/commander/state_machine_helper.c b/apps/commander/state_machine_helper.c index 4e2166a3a..51ed95114 100644 --- a/apps/commander/state_machine_helper.c +++ b/apps/commander/state_machine_helper.c @@ -199,10 +199,7 @@ int do_state_update(int status_pub, struct vehicle_status_s *current_status, con if (invalid_state == false || old_state != new_state) { current_status->state_machine = new_state; state_machine_publish(status_pub, current_status, mavlink_fd); - struct actuator_armed_s armed; - armed.armed = current_status->flag_system_armed; - orb_advert_t armed_pub = orb_advertise(ORB_ID(actuator_armed), &armed); - orb_publish(ORB_ID(actuator_armed), armed_pub, &armed); + publish_armed_status(current_status); ret = OK; } if (invalid_state) { @@ -220,6 +217,14 @@ void state_machine_publish(int status_pub, struct vehicle_status_s *current_stat printf("[commander] new state: %s\n", system_state_txt[current_status->state_machine]); } +void publish_armed_status(const struct vehicle_status_s *current_status) { + struct actuator_armed_s armed; + armed.armed = current_status->flag_system_armed; + armed.failsafe = current_status->rc_signal_lost; + orb_advert_t armed_pub = orb_advertise(ORB_ID(actuator_armed), &armed); + orb_publish(ORB_ID(actuator_armed), armed_pub, &armed); +} + /* * Private functions, update the state machine |