From a2aa9dd8fd6f0d870f871e12d9b59d659b4a269c Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sat, 22 Dec 2012 00:56:37 +0100 Subject: [PATCH 1/2] Made MPU-6000 gyro optional --- apps/drivers/mpu6000/mpu6000.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/drivers/mpu6000/mpu6000.cpp b/apps/drivers/mpu6000/mpu6000.cpp index ed79440ccd..b6c8cacfda 100644 --- a/apps/drivers/mpu6000/mpu6000.cpp +++ b/apps/drivers/mpu6000/mpu6000.cpp @@ -446,8 +446,13 @@ MPU6000::init() // write_reg(MPUREG_PWR_MGMT_1,MPU_CLK_SEL_PLLGYROZ); usleep(1000); - /* do CDev init for the gyro device node */ - ret = _gyro->init(); + /* do CDev init for the gyro device node, keep it optional */ + int gyro_ret = _gyro->init(); + + if (gyro_ret != OK) { + ::close(_gyro_topic); + _gyro_topic = -1; + } return ret; } @@ -938,7 +943,9 @@ MPU6000::measure() /* and publish for subscribers */ orb_publish(ORB_ID(sensor_accel), _accel_topic, &_accel_report); - orb_publish(ORB_ID(sensor_gyro), _gyro_topic, &_gyro_report); + if (_gyro_topic != -1) { + orb_publish(ORB_ID(sensor_gyro), _gyro_topic, &_gyro_report); + } /* stop measuring */ perf_end(_sample_perf); From a8451a2d1873b1e242d55926a70dae0d65024bbe Mon Sep 17 00:00:00 2001 From: px4dev Date: Sun, 23 Dec 2012 11:24:54 -0800 Subject: [PATCH 2/2] Update apps/drivers/mpu6000/mpu6000.cpp Don't call ::close on ORB publication handles. --- apps/drivers/mpu6000/mpu6000.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/drivers/mpu6000/mpu6000.cpp b/apps/drivers/mpu6000/mpu6000.cpp index b6c8cacfda..55b7cfa85c 100644 --- a/apps/drivers/mpu6000/mpu6000.cpp +++ b/apps/drivers/mpu6000/mpu6000.cpp @@ -450,7 +450,6 @@ MPU6000::init() int gyro_ret = _gyro->init(); if (gyro_ret != OK) { - ::close(_gyro_topic); _gyro_topic = -1; }