aboutsummaryrefslogtreecommitdiff
path: root/src/modules/commander/gyro_calibration.cpp
diff options
context:
space:
mode:
authorhauptmech <hauptmech@gmail.com>2015-01-28 15:45:00 +1300
committerLorenz Meier <lm@inf.ethz.ch>2015-01-31 15:53:34 +0100
commit0b784c20c8bf69cee281f6717f055b0309d331b1 (patch)
tree9de9bf48368b35e213569ee1f26fe9083790cc73 /src/modules/commander/gyro_calibration.cpp
parente9bcc0a2624c77c6f71bb926347e85b8c7592e34 (diff)
downloadpx4-firmware-0b784c20c8bf69cee281f6717f055b0309d331b1.tar.gz
px4-firmware-0b784c20c8bf69cee281f6717f055b0309d331b1.tar.bz2
px4-firmware-0b784c20c8bf69cee281f6717f055b0309d331b1.zip
Save and check device id for acc and gyro calibration parameters.config_all_devices
Fix config utility to work with all devices of each type. Accel, gyro and mag devices correctly set their device_id devtype. Combo devices (mpu6000 lsm303d) now correctly return their devtype. config util shows device id for all sensor types. Add, save during calibration and check during preflight ID parameters for accelerometer and gyro
Diffstat (limited to 'src/modules/commander/gyro_calibration.cpp')
-rw-r--r--src/modules/commander/gyro_calibration.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/modules/commander/gyro_calibration.cpp b/src/modules/commander/gyro_calibration.cpp
index 2be0e881e..8410297ef 100644
--- a/src/modules/commander/gyro_calibration.cpp
+++ b/src/modules/commander/gyro_calibration.cpp
@@ -62,6 +62,7 @@ static const char *sensor_name = "gyro";
int do_gyro_calibration(int mavlink_fd)
{
+ int32_t device_id;
mavlink_log_info(mavlink_fd, CAL_STARTED_MSG, sensor_name);
mavlink_log_info(mavlink_fd, "HOLD STILL");
@@ -81,6 +82,9 @@ int do_gyro_calibration(int mavlink_fd)
/* reset all offsets to zero and all scales to one */
int fd = open(GYRO_DEVICE_PATH, 0);
+
+ device_id = ioctl(fd, DEVIOCGDEVICEID, 0);
+
res = ioctl(fd, GYROIOCSSCALE, (long unsigned int)&gyro_scale);
close(fd);
@@ -277,6 +281,9 @@ int do_gyro_calibration(int mavlink_fd)
mavlink_log_critical(mavlink_fd, "ERROR: failed to set scale params");
res = ERROR;
}
+ if (param_set(param_find("SENS_GYRO_ID"), &(device_id))) {
+ res = ERROR;
+ }
}
if (res == OK) {