diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2012-11-14 13:42:16 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2012-11-14 13:42:16 +0100 |
commit | ffac5cba2fb91d30334c36b296a982686fcd166a (patch) | |
tree | 51bb163aa78fe5b1699615a8fb1f5db716311205 /apps/sensors | |
parent | c2abe3997c730c183a7a5a094cadf1575951f86c (diff) | |
download | px4-firmware-ffac5cba2fb91d30334c36b296a982686fcd166a.tar.gz px4-firmware-ffac5cba2fb91d30334c36b296a982686fcd166a.tar.bz2 px4-firmware-ffac5cba2fb91d30334c36b296a982686fcd166a.zip |
Requiring at least four channels for a successful PPM frame
Diffstat (limited to 'apps/sensors')
-rw-r--r-- | apps/sensors/sensors.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/apps/sensors/sensors.cpp b/apps/sensors/sensors.cpp index 7c1503f0d..eea51cc1e 100644 --- a/apps/sensors/sensors.cpp +++ b/apps/sensors/sensors.cpp @@ -870,7 +870,12 @@ Sensors::ppm_poll() /* we are accepting this message */ _ppm_last_valid = ppm_last_valid_decode; - if (ppm_decoded_channels > 2 && hrt_absolute_time() - _ppm_last_valid < PPM_INPUT_TIMEOUT_INTERVAL) { + /* + * relying on two decoded channels is very noise-prone, + * in particular if nothing is connected to the pins. + * requiring a minimum of four channels + */ + if (ppm_decoded_channels > 4 && hrt_absolute_time() - _ppm_last_valid < PPM_INPUT_TIMEOUT_INTERVAL) { for (int i = 0; i < ppm_decoded_channels; i++) { raw.values[i] = ppm_buffer[i]; @@ -898,8 +903,8 @@ Sensors::ppm_poll() struct manual_control_setpoint_s manual_control; - /* require at least two chanels to consider the signal valid */ - if (rc_input.channel_count < 2) + /* require at least four channels to consider the signal valid */ + if (rc_input.channel_count < 4) return; unsigned channel_limit = rc_input.channel_count; |