diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-04-05 17:14:50 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-04-05 17:14:50 +0200 |
commit | 17082db97e493959933073f5c02177bf53256a88 (patch) | |
tree | fc80bbd16ebd5f1da38962654d4db56e35410b9d /src/drivers | |
parent | 188ec9896497e0bc907e164a3936b86cd742baac (diff) | |
parent | 3e5f0813a88817418cc259a5574372e5edca0432 (diff) | |
download | px4-firmware-17082db97e493959933073f5c02177bf53256a88.tar.gz px4-firmware-17082db97e493959933073f5c02177bf53256a88.tar.bz2 px4-firmware-17082db97e493959933073f5c02177bf53256a88.zip |
Merge branch 'master' into airspeed_scaling
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/px4io/px4io.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index 82f3ba044..e318e206a 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -944,8 +944,23 @@ PX4IO::task_main() int pret = io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_VBATT_SCALE, &scaling, 1); if (pret != OK) { - log("voltage scaling upload failed"); + log("vscale upload failed"); } + + /* send RC throttle failsafe value to IO */ + int32_t failsafe_param_val; + param_t failsafe_param = param_find("RC_FAILS_THR"); + + if (failsafe_param > 0) { + + param_get(failsafe_param, &failsafe_param_val); + uint16_t failsafe_thr = failsafe_param_val; + pret = io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_RC_THR_FAILSAFE_US, &failsafe_thr, 1); + if (pret != OK) { + log("failsafe upload failed"); + } + } + } } @@ -1479,10 +1494,11 @@ PX4IO::io_publish_raw_rc() } else { rc_val.input_source = RC_INPUT_SOURCE_UNKNOWN; - /* we do not know the RC input, only publish if RC OK flag is set */ - /* if no raw RC, just don't publish */ - if (!(_status & PX4IO_P_STATUS_FLAGS_RC_OK)) + /* only keep publishing RC input if we ever got a valid input */ + if (_rc_last_valid == 0) { + /* we have never seen valid RC signals, abort */ return OK; + } } /* lazily advertise on first publication */ |