aboutsummaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-04-05 11:11:06 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-04-05 11:11:06 +0200
commit1d0b2b4aa821ede26b0b2fd5ad91382cbbd2e8ee (patch)
treee171b7033d0cfffee8165eb2403f9462b43c08d6 /src/drivers
parent797698a7a114032c7eea62c5f48f2b229ca973b7 (diff)
parent9a0b2b7610d39f88b627046e0d90f66aada1e88f (diff)
downloadpx4-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.cpp24
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 */