diff options
author | Kevin Powell <kpowell@invensense.com> | 2010-07-19 19:12:15 -0700 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2010-08-20 19:25:04 -0700 |
commit | 4ec14c1e233bbc0c7c7efe990f2fafe9727179ca (patch) | |
tree | ec0da09e85c000609e80b94f63c859f37d027d50 | |
parent | 76022c6f4417ac91069c010aa15044e07f7b7d2e (diff) | |
download | libhardware-4ec14c1e233bbc0c7c7efe990f2fafe9727179ca.tar.gz |
add new sensor types for handling gyro data and device orientation more efficiently.
Change-Id: I89faf5b3d57a3e726d1c347ce01d931b100188cd
-rw-r--r-- | include/hardware/sensors.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/hardware/sensors.h b/include/hardware/sensors.h index 6dccddd2..2fa6e28f 100644 --- a/include/hardware/sensors.h +++ b/include/hardware/sensors.h @@ -58,6 +58,9 @@ __BEGIN_DECLS #define SENSOR_TYPE_PRESSURE 6 #define SENSOR_TYPE_TEMPERATURE 7 #define SENSOR_TYPE_PROXIMITY 8 +#define SENSOR_TYPE_GRAVITY 9 +#define SENSOR_TYPE_LINEAR_ACCELERATION 10 +#define SENSOR_TYPE_ROTATION_VECTOR 11 /** * Values returned by the accelerometer in various locations in the universe. @@ -186,6 +189,17 @@ __BEGIN_DECLS * Magnetic Field sensors return sensor events for all 3 axes at a constant * rate defined by setDelay(). * + * Gyroscope + * --------- + * All values are in radians/second and measure the rate of rotation + * around the X, Y and Z axis. The coordinate system is the same as is + * used for the acceleration sensor. Rotation is positive in the counter-clockwise + * direction. That is, an observer looking from some positive location on the x, y. + * or z axis at a device positioned on the origin would report positive rotation + * if the device appeared to be rotating counter clockwise. Note that this is the + * standard mathematical definition of positive rotation and does not agree with the + * definition of roll given earlier. + * * Proximity * --------- * @@ -212,7 +226,32 @@ __BEGIN_DECLS * * Pressure sensors report events at a constant rate defined by setDelay(). * + * Gravity + * ------- + * A gravity output indicates the direction of and magnitude of gravity in the devices's + * coordinates. On Earth, the magnitude is 9.8. Units are m/s^2. The coordinate system + * is the same as is used for the acceleration sensor. + * + * Linear Acceleration + * ------------------- + * Indicates the linear acceleration of the device in device coordinates, not including gravity. + * This output is essentially Acceleration - Gravity. Units are m/s^2. The coordinate system is + * the same as is used for the acceleration sensor. + * + * Rotation Vector + * --------------- + * A rotation vector represents the orientation of the device as a combination + * of an angle and an axis, in which the device has rotated through an angle + * theta around an axis <x, y, z>. The three elements of the rotation vector + * are <x*sin(theta/2), y*sin(theta/2), z*sin(theta/2)>, such that the magnitude + * of the rotation vector is equal to sin(theta/2), and the direction of the + * rotation vector is equal to the direction of the axis of rotation. The three + * elements of the rotation vector are equal to the last three components of a + * unit quaternion <cos(theta/2), x*sin(theta/2), y*sin(theta/2), z*sin(theta/2)>. + * Elements of the rotation vector are unitless. The x, y, and z axis are defined + * in the same was as for the acceleration sensor. */ + typedef struct { union { float v[3]; |