aboutsummaryrefslogtreecommitdiff
path: root/src/modules/px4iofirmware/mixer.cpp
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2014-02-12 17:10:20 +0100
committerJulian Oes <julian@oes.ch>2014-02-12 17:10:20 +0100
commit3462054f73dda9303fcb1b2b5ba0a6f0882ddbd9 (patch)
tree511c63dcc6aae5222c6685e3f1648b2d8f5b2c6b /src/modules/px4iofirmware/mixer.cpp
parent76ae004e5c6c1dcc05f1eb784f6dc14cff2a3671 (diff)
parent03cfb79b29a81443665208396ba8fc0ab67a021a (diff)
downloadpx4-firmware-3462054f73dda9303fcb1b2b5ba0a6f0882ddbd9.tar.gz
px4-firmware-3462054f73dda9303fcb1b2b5ba0a6f0882ddbd9.tar.bz2
px4-firmware-3462054f73dda9303fcb1b2b5ba0a6f0882ddbd9.zip
Merge remote-tracking branch 'px4/beta' into beta_mavlink
Conflicts: src/modules/mavlink/mavlink.c src/modules/mavlink/mavlink_receiver.h src/modules/mavlink/orb_listener.c
Diffstat (limited to 'src/modules/px4iofirmware/mixer.cpp')
-rw-r--r--src/modules/px4iofirmware/mixer.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/modules/px4iofirmware/mixer.cpp b/src/modules/px4iofirmware/mixer.cpp
index 2e79f0ac6..f39fcf7ec 100644
--- a/src/modules/px4iofirmware/mixer.cpp
+++ b/src/modules/px4iofirmware/mixer.cpp
@@ -223,14 +223,25 @@ mixer_tick(void)
}
}
- if ((should_arm || should_always_enable_pwm) && !mixer_servos_armed) {
+ /* set arming */
+ bool needs_to_arm = (should_arm || should_always_enable_pwm);
+
+ /* check any conditions that prevent arming */
+ if (r_setup_arming & PX4IO_P_SETUP_ARMING_LOCKDOWN) {
+ needs_to_arm = false;
+ }
+ if (!should_arm && !should_always_enable_pwm) {
+ needs_to_arm = false;
+ }
+
+ if (needs_to_arm && !mixer_servos_armed) {
/* need to arm, but not armed */
up_pwm_servo_arm(true);
mixer_servos_armed = true;
r_status_flags |= PX4IO_P_STATUS_FLAGS_OUTPUTS_ARMED;
isr_debug(5, "> PWM enabled");
- } else if ((!should_arm && !should_always_enable_pwm) && mixer_servos_armed) {
+ } else if (!needs_to_arm && mixer_servos_armed) {
/* armed but need to disarm */
up_pwm_servo_arm(false);
mixer_servos_armed = false;