diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-04-05 11:11:06 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-04-05 11:11:06 +0200 |
commit | 1d0b2b4aa821ede26b0b2fd5ad91382cbbd2e8ee (patch) | |
tree | e171b7033d0cfffee8165eb2403f9462b43c08d6 /src/drivers | |
parent | 797698a7a114032c7eea62c5f48f2b229ca973b7 (diff) | |
parent | 9a0b2b7610d39f88b627046e0d90f66aada1e88f (diff) | |
download | px4-firmware-1d0b2b4aa821ede26b0b2fd5ad91382cbbd2e8ee.tar.gz px4-firmware-1d0b2b4aa821ede26b0b2fd5ad91382cbbd2e8ee.tar.bz2 px4-firmware-1d0b2b4aa821ede26b0b2fd5ad91382cbbd2e8ee.zip |
Merge branch 'sbus_failsafe' into failsafe_cleanup
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..f6125d273 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 */ + float failsafe_param_val; + param_t failsafe_param = param_find("RC_FS_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 */ |