aboutsummaryrefslogtreecommitdiff
path: root/apps/drivers/px4io/px4io.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-02-25 09:07:13 +0100
committerLorenz Meier <lm@inf.ethz.ch>2013-02-25 09:07:13 +0100
commitca794265c6a33f5aa9de87d97a222ed331c59aec (patch)
tree08cec606afe38c5a5730bb1dc61af21e26ac2a97 /apps/drivers/px4io/px4io.cpp
parent2284e668ebab8fd452ecb5ca86d386e599f19ff1 (diff)
downloadpx4-firmware-ca794265c6a33f5aa9de87d97a222ed331c59aec.tar.gz
px4-firmware-ca794265c6a33f5aa9de87d97a222ed331c59aec.tar.bz2
px4-firmware-ca794265c6a33f5aa9de87d97a222ed331c59aec.zip
Fixed input indexing, stupid 1-based indices on the GCS side (MP/QGC) caused confusion
Diffstat (limited to 'apps/drivers/px4io/px4io.cpp')
-rw-r--r--apps/drivers/px4io/px4io.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/drivers/px4io/px4io.cpp b/apps/drivers/px4io/px4io.cpp
index 4006f88cf..2611c4e9c 100644
--- a/apps/drivers/px4io/px4io.cpp
+++ b/apps/drivers/px4io/px4io.cpp
@@ -694,21 +694,26 @@ PX4IO::io_set_rc_config()
for (unsigned i = 0; i < _max_rc_input; i++)
input_map[i] = -1;
+ /*
+ * NOTE: The indices for mapped channels are 1-based
+ * for compatibility reasons with existing
+ * autopilots / GCS'.
+ */
param_get(param_find("RC_MAP_ROLL"), &ichan);
if ((ichan >= 0) && (ichan < (int)_max_rc_input))
- input_map[ichan] = 0;
+ input_map[ichan - 1] = 0;
param_get(param_find("RC_MAP_PITCH"), &ichan);
if ((ichan >= 0) && (ichan < (int)_max_rc_input))
- input_map[ichan] = 1;
+ input_map[ichan - 1] = 1;
param_get(param_find("RC_MAP_YAW"), &ichan);
if ((ichan >= 0) && (ichan < (int)_max_rc_input))
- input_map[ichan] = 2;
+ input_map[ichan - 1] = 2;
param_get(param_find("RC_MAP_THROTTLE"), &ichan);
if ((ichan >= 0) && (ichan < (int)_max_rc_input))
- input_map[ichan] = 3;
+ input_map[ichan - 1] = 3;
ichan = 4;
for (unsigned i = 0; i < _max_rc_input; i++)