summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libsensors/GyroSensor.cpp12
-rw-r--r--libsensors/GyroSensor.h1
-rw-r--r--libsensors/sensors.cpp2
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, { } },
};