diff options
-rw-r--r-- | libsensors/GyroSensor.cpp | 12 | ||||
-rw-r--r-- | libsensors/GyroSensor.h | 1 | ||||
-rw-r--r-- | libsensors/sensors.cpp | 2 |
3 files changed, 10 insertions, 5 deletions
diff --git a/libsensors/GyroSensor.cpp b/libsensors/GyroSensor.cpp index 7f6b864..ecebb61 100644 --- a/libsensors/GyroSensor.cpp +++ b/libsensors/GyroSensor.cpp @@ -26,14 +26,15 @@ #include "GyroSensor.h" #define FETCH_FULL_EVENT_BEFORE_RETURN 1 - +#define IGNORE_EVENT_TIME 350000000 /*****************************************************************************/ GyroSensor::GyroSensor() : SensorBase(NULL, "gyro"), mEnabled(0), mInputReader(4), - mHasPendingEvent(false) + mHasPendingEvent(false), + mEnabledTime(0) { mPendingEvent.version = sizeof(sensors_event_t); mPendingEvent.sensor = ID_GY; @@ -86,6 +87,7 @@ int GyroSensor::enable(int32_t, int en) { buf[1] = 0; if (flags) { buf[0] = '1'; + mEnabledTime = getTimestamp() + IGNORE_EVENT_TIME; } else { buf[0] = '0'; } @@ -155,9 +157,11 @@ again: } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { - *data++ = mPendingEvent; + if (mPendingEvent.timestamp >= mEnabledTime) { + *data++ = mPendingEvent; + numEventReceived++; + } count--; - numEventReceived++; } } else { LOGE("GyroSensor: unknown event (type=%d, code=%d)", diff --git a/libsensors/GyroSensor.h b/libsensors/GyroSensor.h index e5a9241..e8997de 100644 --- a/libsensors/GyroSensor.h +++ b/libsensors/GyroSensor.h @@ -37,6 +37,7 @@ class GyroSensor : public SensorBase { bool mHasPendingEvent; char input_sysfs_path[PATH_MAX]; int input_sysfs_path_len; + int64_t mEnabledTime; int setInitialState(); diff --git a/libsensors/sensors.cpp b/libsensors/sensors.cpp index 4ba1265..ec2d754 100644 --- a/libsensors/sensors.cpp +++ b/libsensors/sensors.cpp @@ -90,7 +90,7 @@ static const struct sensor_t sSensorList[] = { { "K3G Gyroscope sensor", "STMicroelectronics", 1, SENSORS_GYROSCOPE_HANDLE, - SENSOR_TYPE_GYROSCOPE, RANGE_GYRO, CONVERT_GYRO, 6.1f, 1200, { } }, + SENSOR_TYPE_GYROSCOPE, RANGE_GYRO, CONVERT_GYRO, 6.1f, 1190, { } }, }; |