aboutsummaryrefslogtreecommitdiff
path: root/apps/drivers/mpu6000/mpu6000.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2012-08-28 11:30:45 +0200
committerLorenz Meier <lm@inf.ethz.ch>2012-08-28 11:30:45 +0200
commitd8210a8e2f35bb3260875968424a7985012766a6 (patch)
tree29373df6e708a17bbfdead057ace323c06df21b0 /apps/drivers/mpu6000/mpu6000.cpp
parent9a750ae6988814a07975e28368d949292710589f (diff)
downloadpx4-firmware-d8210a8e2f35bb3260875968424a7985012766a6.tar.gz
px4-firmware-d8210a8e2f35bb3260875968424a7985012766a6.tar.bz2
px4-firmware-d8210a8e2f35bb3260875968424a7985012766a6.zip
Implemented missing IOCTLs to set MPU scalings
Diffstat (limited to 'apps/drivers/mpu6000/mpu6000.cpp')
-rw-r--r--apps/drivers/mpu6000/mpu6000.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/apps/drivers/mpu6000/mpu6000.cpp b/apps/drivers/mpu6000/mpu6000.cpp
index 7c5ff2ee0..83bd13860 100644
--- a/apps/drivers/mpu6000/mpu6000.cpp
+++ b/apps/drivers/mpu6000/mpu6000.cpp
@@ -589,9 +589,14 @@ MPU6000::ioctl(struct file *filp, int cmd, unsigned long arg)
return -EINVAL;
case ACCELIOCSSCALE:
+ /* copy scale in */
+ memcpy(&_accel_scale, (struct accel_scale*) arg, sizeof(_accel_scale));
+ return OK;
+
case ACCELIOCGSCALE:
- /* XXX not implemented */
- return -EINVAL;
+ /* copy scale out */
+ memcpy((struct accel_scale*) arg, &_accel_scale, sizeof(_accel_scale));
+ return OK;
case ACCELIOCSRANGE:
case ACCELIOCGRANGE:
@@ -631,9 +636,14 @@ MPU6000::gyro_ioctl(struct file *filp, int cmd, unsigned long arg)
return -EINVAL;
case GYROIOCSSCALE:
+ /* copy scale in */
+ memcpy(&_gyro_scale, (struct gyro_scale*) arg, sizeof(_gyro_scale));
+ return OK;
+
case GYROIOCGSCALE:
- /* XXX not implemented */
- return -EINVAL;
+ /* copy scale out */
+ memcpy((struct gyro_scale*) arg, &_gyro_scale, sizeof(_gyro_scale));
+ return OK;
case GYROIOCSRANGE:
case GYROIOCGRANGE: