am ebff73c3: Bug fix for SensorFusion data rate.

* commit 'ebff73c37d5f1581702430f4a0348c160b99b57e':
  Bug fix for SensorFusion data rate.
This commit is contained in:
Aravind Akella 2014-01-31 22:39:41 +00:00 committed by Android Git Automerger
commit e8df30b870
2 changed files with 4 additions and 13 deletions

View File

@ -102,15 +102,6 @@ status_t SensorFusion::activate(void* ident, bool enabled) {
} }
} }
if (enabled) {
ALOGD_IF(DEBUG_CONNECTIONS, "SensorFusion calling batch ident=%p ", ident);
// Activating a sensor in continuous mode is equivalent to calling batch with the default
// period and timeout equal to ZERO, followed by a call to activate.
mSensorDevice.batch(ident, mAcc.getHandle(), 0, DEFAULT_EVENTS_PERIOD, 0);
mSensorDevice.batch(ident, mMag.getHandle(), 0, DEFAULT_EVENTS_PERIOD, 0);
mSensorDevice.batch(ident, mGyro.getHandle(), 0, DEFAULT_EVENTS_PERIOD, 0);
}
mSensorDevice.activate(ident, mAcc.getHandle(), enabled); mSensorDevice.activate(ident, mAcc.getHandle(), enabled);
mSensorDevice.activate(ident, mMag.getHandle(), enabled); mSensorDevice.activate(ident, mMag.getHandle(), enabled);
mSensorDevice.activate(ident, mGyro.getHandle(), enabled); mSensorDevice.activate(ident, mGyro.getHandle(), enabled);
@ -127,9 +118,10 @@ status_t SensorFusion::activate(void* ident, bool enabled) {
} }
status_t SensorFusion::setDelay(void* ident, int64_t ns) { status_t SensorFusion::setDelay(void* ident, int64_t ns) {
mSensorDevice.setDelay(ident, mAcc.getHandle(), ns); // Call batch with timeout zero instead of setDelay().
mSensorDevice.setDelay(ident, mMag.getHandle(), ms2ns(20)); mSensorDevice.batch(ident, mAcc.getHandle(), 0, ns, 0);
mSensorDevice.setDelay(ident, mGyro.getHandle(), mTargetDelayNs); mSensorDevice.batch(ident, mMag.getHandle(), 0, ms2ns(20), 0);
mSensorDevice.batch(ident, mGyro.getHandle(), 0, mTargetDelayNs, 0);
return NO_ERROR; return NO_ERROR;
} }

View File

@ -37,7 +37,6 @@ class SensorDevice;
class SensorFusion : public Singleton<SensorFusion> { class SensorFusion : public Singleton<SensorFusion> {
friend class Singleton<SensorFusion>; friend class Singleton<SensorFusion>;
static const nsecs_t DEFAULT_EVENTS_PERIOD = 200000000; // 5 Hz
SensorDevice& mSensorDevice; SensorDevice& mSensorDevice;
Sensor mAcc; Sensor mAcc;