diff options
| author | Mathias Agopian <mathias@google.com> | 2010-11-08 19:38:28 -0800 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-11-08 19:38:28 -0800 |
| commit | f8c24a66a7318554604ae63d0ae4948c41b0d6e1 (patch) | |
| tree | 394c44d91f694e0b5070effc048a21339c14a4ae | |
| parent | 3c09ba3f798c8dafed4846c6782bc489b841cdbb (diff) | |
| parent | cd43fbb4537487a9c3185e919904f8b0c93daee6 (diff) | |
| download | frameworks_base-f8c24a66a7318554604ae63d0ae4948c41b0d6e1.zip frameworks_base-f8c24a66a7318554604ae63d0ae4948c41b0d6e1.tar.gz frameworks_base-f8c24a66a7318554604ae63d0ae4948c41b0d6e1.tar.bz2 | |
am cd43fbb4: Merge "improve sensorservice dumpsys and increase the max sensor rate to 1 ms (1000Hz)" into gingerbread
* commit 'cd43fbb4537487a9c3185e919904f8b0c93daee6':
improve sensorservice dumpsys and increase the max sensor rate to 1 ms (1000Hz)
| -rw-r--r-- | services/sensorservice/SensorService.cpp | 3 | ||||
| -rw-r--r-- | services/sensorservice/SensorService.h | 4 | ||||
| -rw-r--r-- | services/sensorservice/tests/sensorservicetest.cpp | 14 |
3 files changed, 16 insertions, 5 deletions
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp index e204e04..c9ab992 100644 --- a/services/sensorservice/SensorService.cpp +++ b/services/sensorservice/SensorService.cpp @@ -175,10 +175,11 @@ status_t SensorService::dump(int fd, const Vector<String16>& args) for (size_t i=0 ; i<mSensorList.size() ; i++) { const Sensor& s(mSensorList[i]); const sensors_event_t& e(mLastEventSeen.valueFor(s.getHandle())); - snprintf(buffer, SIZE, "%s (vendor=%s, handle=%d, last=<%5.1f,%5.1f,%5.1f>)\n", + snprintf(buffer, SIZE, "%s (vendor=%s, handle=%d, maxRate=%.2fHz, last=<%5.1f,%5.1f,%5.1f>)\n", s.getName().string(), s.getVendor().string(), s.getHandle(), + s.getMinDelay() ? (1000000.0f / s.getMinDelay()) : 0.0f, e.data[0], e.data[1], e.data[2]); result.append(buffer); } diff --git a/services/sensorservice/SensorService.h b/services/sensorservice/SensorService.h index 9f37799..dfb1c0e 100644 --- a/services/sensorservice/SensorService.h +++ b/services/sensorservice/SensorService.h @@ -49,8 +49,8 @@ class SensorService : { friend class BinderService<SensorService>; - static const nsecs_t MINIMUM_EVENTS_PERIOD = 10000000; // 10ms - static const nsecs_t DEFAULT_EVENTS_PERIOD = 200000000; // 200 ms + static const nsecs_t MINIMUM_EVENTS_PERIOD = 1000000; // 1000 Hz + static const nsecs_t DEFAULT_EVENTS_PERIOD = 200000000; // 5 Hz SensorService(); virtual ~SensorService(); diff --git a/services/sensorservice/tests/sensorservicetest.cpp b/services/sensorservice/tests/sensorservicetest.cpp index 42bf983..aea1062 100644 --- a/services/sensorservice/tests/sensorservicetest.cpp +++ b/services/sensorservice/tests/sensorservicetest.cpp @@ -27,15 +27,25 @@ int receiver(int fd, int events, void* data) sp<SensorEventQueue> q((SensorEventQueue*)data); ssize_t n; ASensorEvent buffer[8]; + + static nsecs_t oldTimeStamp = 0; + while ((n = q->read(buffer, 8)) > 0) { for (int i=0 ; i<n ; i++) { - if (buffer[i].type == Sensor::TYPE_ACCELEROMETER) { + if (buffer[i].type == Sensor::TYPE_GYROSCOPE) { printf("time=%lld, value=<%5.1f,%5.1f,%5.1f>\n", buffer[i].timestamp, buffer[i].acceleration.x, buffer[i].acceleration.y, buffer[i].acceleration.z); } + + if (oldTimeStamp) { + float t = float(buffer[i].timestamp - oldTimeStamp) / s2ns(1); + printf("%f ms (%f Hz)\n", t*1000, 1.0/t); + } + oldTimeStamp = buffer[i].timestamp; + } } if (n<0 && n != -EAGAIN) { @@ -56,7 +66,7 @@ int main(int argc, char** argv) sp<SensorEventQueue> q = mgr.createEventQueue(); printf("queue=%p\n", q.get()); - Sensor const* accelerometer = mgr.getDefaultSensor(Sensor::TYPE_ACCELEROMETER); + Sensor const* accelerometer = mgr.getDefaultSensor(Sensor::TYPE_GYROSCOPE); printf("accelerometer=%p (%s)\n", accelerometer, accelerometer->getName().string()); q->enableSensor(accelerometer); |
