aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2015-01-20 14:21:03 +0100
committerLorenz Meier <lm@inf.ethz.ch>2015-01-20 14:21:03 +0100
commit81082c4119c715d4b8e22040052115ecbff6cc4d (patch)
tree03999149bebeacbfaec5563c1dbc5c4df47cdfb2
parent603b43b6d840bf6a730c56f15a0bb35b2af8ea17 (diff)
downloadpx4-firmware-81082c4119c715d4b8e22040052115ecbff6cc4d.tar.gz
px4-firmware-81082c4119c715d4b8e22040052115ecbff6cc4d.tar.bz2
px4-firmware-81082c4119c715d4b8e22040052115ecbff6cc4d.zip
Fix CID 12453
-rw-r--r--src/drivers/px4io/px4io.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp
index 0e4e38c2f..5698dbc57 100644
--- a/src/drivers/px4io/px4io.cpp
+++ b/src/drivers/px4io/px4io.cpp
@@ -1144,11 +1144,13 @@ PX4IO::io_set_control_state(unsigned group)
break;
}
- if (!changed)
+ if (!changed) {
return -1;
+ }
- for (unsigned i = 0; i < _max_controls; i++)
+ for (unsigned i = 0; i < _max_controls; i++) {
regs[i] = FLOAT_TO_REG(controls.control[i]);
+ }
/* copy values to registers in IO */
return io_reg_set(PX4IO_PAGE_CONTROLS, group * PX4IO_PROTOCOL_MAX_CONTROL_COUNT, regs, _max_controls);
@@ -3240,7 +3242,13 @@ px4io_main(int argc, char *argv[])
if (!strcmp(argv[1], "limit")) {
if ((argc > 2)) {
- g_dev->set_update_rate(atoi(argv[2]));
+ int limitrate = atoi(argv[2]);
+
+ if (limitrate > 0) {
+ g_dev->set_update_rate(limitrate);
+ } else {
+ errx(1, "invalid rate: %d", limitrate);
+ }
} else {
errx(1, "missing argument (50 - 500 Hz)");