You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
367 lines
16 KiB
367 lines
16 KiB
/* |
|
* Copyright (C) 2014 Invensense, Inc. |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
|
|
#ifndef ANDROID_SENSORS_H |
|
#define ANDROID_SENSORS_H |
|
|
|
#include <stdint.h> |
|
#include <errno.h> |
|
#include <sys/cdefs.h> |
|
#include <sys/types.h> |
|
|
|
#include <linux/input.h> |
|
|
|
#include <hardware/hardware.h> |
|
#include <hardware/sensors.h> |
|
|
|
__BEGIN_DECLS |
|
|
|
/*****************************************************************************/ |
|
|
|
#ifndef ARRAY_SIZE |
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) |
|
#endif |
|
|
|
#undef ENABLE_PRESSURE |
|
|
|
enum { |
|
ID_GY = 0, |
|
ID_RG, |
|
ID_A, |
|
ID_M, |
|
ID_RM, |
|
#ifdef ENABLE_PRESSURE |
|
ID_PS, |
|
#endif |
|
ID_O, |
|
ID_RV, |
|
ID_GRV, |
|
ID_LA, |
|
ID_GR, |
|
ID_SM, |
|
ID_P, |
|
ID_SC, |
|
ID_GMRV, |
|
ID_SO |
|
}; |
|
|
|
enum { |
|
Gyro = 0, |
|
RawGyro, |
|
Accelerometer, |
|
MagneticField, |
|
RawMagneticField, |
|
#ifdef ENABLE_PRESSURE |
|
Pressure, |
|
#endif |
|
Orientation, |
|
RotationVector, |
|
GameRotationVector, |
|
LinearAccel, |
|
Gravity, |
|
SignificantMotion, |
|
StepDetector, |
|
StepCounter, |
|
GeomagneticRotationVector, |
|
NumSensors |
|
}; |
|
|
|
#ifdef ENABLE_PRESSURE |
|
#define LAST_HW_SENSOR Pressure |
|
#else |
|
#define LAST_HW_SENSOR RawMagneticField |
|
#endif |
|
|
|
/* Physical parameters of the sensors supported by Invensense MPL */ |
|
#define SENSORS_GYROSCOPE_HANDLE (ID_GY) |
|
#define SENSORS_RAW_GYROSCOPE_HANDLE (ID_RG) |
|
#define SENSORS_ACCELERATION_HANDLE (ID_A) |
|
#define SENSORS_MAGNETIC_FIELD_HANDLE (ID_M) |
|
#define SENSORS_RAW_MAGNETIC_FIELD_HANDLE (ID_RM) |
|
#define SENSORS_PRESSURE_HANDLE (ID_PS) |
|
#define SENSORS_ORIENTATION_HANDLE (ID_O) |
|
#define SENSORS_ROTATION_VECTOR_HANDLE (ID_RV) |
|
#define SENSORS_GAME_ROTATION_VECTOR_HANDLE (ID_GRV) |
|
#define SENSORS_LINEAR_ACCEL_HANDLE (ID_LA) |
|
#define SENSORS_GRAVITY_HANDLE (ID_GR) |
|
#define SENSORS_SIGNIFICANT_MOTION_HANDLE (ID_SM) |
|
#define SENSORS_PEDOMETER_HANDLE (ID_P) |
|
#define SENSORS_STEP_COUNTER_HANDLE (ID_SC) |
|
#define SENSORS_GEOMAGNETIC_ROTATION_VECTOR_HANDLE (ID_GMRV) |
|
#define SENSORS_SCREEN_ORIENTATION_HANDLE (ID_SO) |
|
|
|
/*****************************************************************************/ |
|
|
|
/* |
|
Android Lollipop |
|
Populate sensor_t structure according to hardware sensors.h |
|
{name, vendor, version, handle, |
|
type, maxRange, resolution, power, minDelay, fifoReservedEventCount, fifoMaxEventCount, |
|
stringType, requiredPermission, maxDelay, flags, reserved[]} |
|
*/ |
|
#if defined ANDROID_LOLLIPOP |
|
|
|
static struct sensor_t sBaseSensorList[] = |
|
{ |
|
{"MPL Gyroscope", "Invensense", 1, SENSORS_GYROSCOPE_HANDLE, |
|
SENSOR_TYPE_GYROSCOPE, 2000.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_GYROSCOPE, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Raw Gyroscope", "Invensense", 1, SENSORS_RAW_GYROSCOPE_HANDLE, |
|
SENSOR_TYPE_GYROSCOPE_UNCALIBRATED, 2000.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_GYROSCOPE_UNCALIBRATED, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Accelerometer", "Invensense", 1, SENSORS_ACCELERATION_HANDLE, |
|
SENSOR_TYPE_ACCELEROMETER, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_ACCELEROMETER, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Magnetic Field", "Invensense", 1, SENSORS_MAGNETIC_FIELD_HANDLE, |
|
SENSOR_TYPE_MAGNETIC_FIELD, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_MAGNETIC_FIELD, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Raw Magnetic Field", "Invensense", 1, SENSORS_RAW_MAGNETIC_FIELD_HANDLE, |
|
SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
#ifdef ENABLE_PRESSURE |
|
{"MPL Pressure", "Invensense", 1, SENSORS_PRESSURE_HANDLE, |
|
SENSOR_TYPE_PRESSURE, 10240.0f, 1.0f, 0.5f, 10000, 0, 165, |
|
SENSOR_STRING_TYPE_PRESSURE, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
#endif |
|
{"MPL Orientation", "Invensense", 1, SENSORS_ORIENTATION_HANDLE, |
|
SENSOR_TYPE_ORIENTATION, 360.0f, 1.0f, 9.7f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_ORIENTATION, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Rotation Vector", "Invensense", 1, SENSORS_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_ROTATION_VECTOR, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Game Rotation Vector", "Invensense", 1, SENSORS_GAME_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_GAME_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 62, |
|
SENSOR_STRING_TYPE_GAME_ROTATION_VECTOR, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Linear Acceleration", "Invensense", 1, SENSORS_LINEAR_ACCEL_HANDLE, |
|
SENSOR_TYPE_LINEAR_ACCELERATION, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_LINEAR_ACCELERATION, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Gravity", "Invensense", 1, SENSORS_GRAVITY_HANDLE, |
|
SENSOR_TYPE_GRAVITY, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_GRAVITY, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Significant Motion", "Invensense", 1, SENSORS_SIGNIFICANT_MOTION_HANDLE, |
|
SENSOR_TYPE_SIGNIFICANT_MOTION, 100.0f, 1.0f, 1.1f, 0, 0, 0, |
|
SENSOR_STRING_TYPE_SIGNIFICANT_MOTION, "", 0, |
|
SENSOR_FLAG_ONE_SHOT_MODE | SENSOR_FLAG_WAKE_UP, {}}, |
|
{"MPL Step Detector", "Invensense", 1, SENSORS_PEDOMETER_HANDLE, |
|
SENSOR_TYPE_STEP_DETECTOR, 100.0f, 1.0f, 1.1f, 0, 0, 124, |
|
SENSOR_STRING_TYPE_STEP_DETECTOR, "", 0, SENSOR_FLAG_SPECIAL_REPORTING_MODE, {}}, |
|
{"MPL Step Counter", "Invensense", 1, SENSORS_STEP_COUNTER_HANDLE, |
|
SENSOR_TYPE_STEP_COUNTER, 100.0f, 1.0f, 1.1f, 0, 0, 0, |
|
SENSOR_STRING_TYPE_STEP_COUNTER, "", 0, SENSOR_FLAG_ON_CHANGE_MODE, {}}, |
|
{"MPL Geomagnetic Rotation Vector", "Invensense", 1, |
|
SENSORS_GEOMAGNETIC_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 5000, 0, 0, |
|
SENSOR_STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
#ifdef ENABLE_DMP_SCREEN_AUTO_ROTATION |
|
{"MPL Screen Orientation", "Invensense ", 1, SENSORS_SCREEN_ORIENTATION_HANDLE, |
|
SENSOR_TYPE_SCREEN_ORIENTATION, 100.0f, 1.0f, 1.1f, 0, 0, 0, |
|
SENSOR_STRING_TYPE_SCREEN_ORIENTATION, "", 0, SENSOR_FLAG_ON_CHANGE_MODE, {}}, |
|
#endif |
|
}; |
|
/* |
|
Android KitKat |
|
Populate sensor_t structure according to hardware sensors.h |
|
{name, vendor, version, |
|
handle, |
|
type, maxRange, resolution, power, minDelay, fifoReservedEventCount, fifoMaxEventCount, reserved[]} |
|
*/ |
|
#elif defined ANDROID_KITKAT |
|
static struct sensor_t sBaseSensorList[] = |
|
{ |
|
{"MPL Gyroscope", "Invensense", 1, SENSORS_GYROSCOPE_HANDLE, |
|
SENSOR_TYPE_GYROSCOPE, 2000.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_GYROSCOPE, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Raw Gyroscope", "Invensense", 1, SENSORS_RAW_GYROSCOPE_HANDLE, |
|
SENSOR_TYPE_GYROSCOPE_UNCALIBRATED, 2000.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_GYROSCOPE_UNCALIBRATED, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Accelerometer", "Invensense", 1, SENSORS_ACCELERATION_HANDLE, |
|
SENSOR_TYPE_ACCELEROMETER, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_ACCELEROMETER, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Magnetic Field", "Invensense", 1, SENSORS_MAGNETIC_FIELD_HANDLE, |
|
SENSOR_TYPE_MAGNETIC_FIELD, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_MAGNETIC_FIELD, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Raw Magnetic Field", "Invensense", 1, SENSORS_RAW_MAGNETIC_FIELD_HANDLE, |
|
SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, |
|
SENSOR_STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
#ifdef ENABLE_PRESSURE |
|
{"MPL Pressure", "Invensense", 1, SENSORS_PRESSURE_HANDLE, |
|
SENSOR_TYPE_PRESSURE, 10240.0f, 1.0f, 0.5f, 10000, 0, 165, |
|
SENSOR_STRING_TYPE_PRESSURE, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
#endif |
|
{"MPL Orientation", "Invensense", 1, SENSORS_ORIENTATION_HANDLE, |
|
SENSOR_TYPE_ORIENTATION, 360.0f, 1.0f, 9.7f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_ORIENTATION, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Rotation Vector", "Invensense", 1, SENSORS_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_ROTATION_VECTOR, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Game Rotation Vector", "Invensense", 1, SENSORS_GAME_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_GAME_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 62, |
|
SENSOR_STRING_TYPE_GAME_ROTATION_VECTOR, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Linear Acceleration", "Invensense", 1, SENSORS_LINEAR_ACCEL_HANDLE, |
|
SENSOR_TYPE_LINEAR_ACCELERATION, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_LINEAR_ACCELERATION, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Gravity", "Invensense", 1, SENSORS_GRAVITY_HANDLE, |
|
SENSOR_TYPE_GRAVITY, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, |
|
SENSOR_STRING_TYPE_GRAVITY, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
{"MPL Significant Motion", "Invensense", 1, SENSORS_SIGNIFICANT_MOTION_HANDLE, |
|
SENSOR_TYPE_SIGNIFICANT_MOTION, 100.0f, 1.0f, 1.1f, 0, 0, 0, |
|
SENSOR_STRING_TYPE_SIGNIFICANT_MOTION, 0, 0, |
|
SENSOR_FLAG_ONE_SHOT_MODE | SENSOR_FLAG_WAKE_UP, {}}, |
|
{"MPL Step Detector", "Invensense", 1, SENSORS_PEDOMETER_HANDLE, |
|
SENSOR_TYPE_STEP_DETECTOR, 100.0f, 1.0f, 1.1f, 0, 0, 124, |
|
SENSOR_STRING_TYPE_STEP_DETECTOR, 0, 0, SENSOR_FLAG_SPECIAL_REPORTING_MODE, {}}, |
|
{"MPL Step Counter", "Invensense", 1, SENSORS_STEP_COUNTER_HANDLE, |
|
SENSOR_TYPE_STEP_COUNTER, 100.0f, 1.0f, 1.1f, 0, 0, 0, |
|
SENSOR_STRING_TYPE_STEP_COUNTER, 0, 0, SENSOR_FLAG_ON_CHANGE_MODE, {}}, |
|
{"MPL Geomagnetic Rotation Vector", "Invensense", 1, |
|
SENSORS_GEOMAGNETIC_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 5000, 0, 0, |
|
SENSOR_STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR, 0, 0, SENSOR_FLAG_CONTINUOUS_MODE, {}}, |
|
#ifdef ENABLE_DMP_SCREEN_AUTO_ROTATION |
|
{"MPL Screen Orientation", "Invensense ", 1, SENSORS_SCREEN_ORIENTATION_HANDLE, |
|
SENSOR_TYPE_SCREEN_ORIENTATION, 100.0f, 1.0f, 1.1f, 0, 0, 0, |
|
SENSOR_STRING_TYPE_SCREEN_ORIENTATION, 0, 0, SENSOR_FLAG_ON_CHANGE_MODE, {}}, |
|
#endif |
|
}; |
|
#else //ANDROID_KITKAT END |
|
static struct sensor_t sBaseSensorList[] = |
|
{ |
|
{"MPL Gyroscope", "Invensense", 1, |
|
SENSORS_GYROSCOPE_HANDLE, |
|
SENSOR_TYPE_GYROSCOPE, 2000.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Raw Gyroscope", "Invensense", 1, |
|
SENSORS_RAW_GYROSCOPE_HANDLE, |
|
SENSOR_TYPE_GYROSCOPE_UNCALIBRATED, 2000.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Accelerometer", "Invensense", 1, |
|
SENSORS_ACCELERATION_HANDLE, |
|
SENSOR_TYPE_ACCELEROMETER, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Magnetic Field", "Invensense", 1, |
|
SENSORS_MAGNETIC_FIELD_HANDLE, |
|
SENSOR_TYPE_MAGNETIC_FIELD, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Raw Magnetic Field", "Invensense", 1, |
|
SENSORS_RAW_MAGNETIC_FIELD_HANDLE, |
|
SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
#ifdef ENABLE_PRESSURE |
|
{"MPL Pressure", "Invensense", 1, |
|
SENSORS_PRESSURE_HANDLE, |
|
SENSOR_TYPE_PRESSURE, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
#endif |
|
{"MPL Orientation", "Invensense", 1, |
|
SENSORS_ORIENTATION_HANDLE, |
|
SENSOR_TYPE_ORIENTATION, 360.0f, 1.0f, 9.7f, 10000, {}}, |
|
{"MPL Rotation Vector", "Invensense", 1, |
|
SENSORS_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Game Rotation Vector", "Invensense", 1, |
|
SENSORS_GAME_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_GAME_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Linear Acceleration", "Invensense", 1, |
|
SENSORS_LINEAR_ACCEL_HANDLE, |
|
SENSOR_TYPE_LINEAR_ACCELERATION, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Gravity", "Invensense", 1, |
|
SENSORS_GRAVITY_HANDLE, |
|
SENSOR_TYPE_GRAVITY, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
{"MPL Significant Motion", "Invensense", 1, |
|
SENSORS_SIGNIFICANT_MOTION_HANDLE, |
|
SENSOR_TYPE_SIGNIFICANT_MOTION, 100.0f, 1.0f, 1.1f, 0, {}}, |
|
{"MPL Step Detector", "Invensense", 1, |
|
SENSORS_PEDOMETER_HANDLE, |
|
SENSOR_TYPE_STEP_DETECTOR, 100.0f, 1.0f, 1.1f, 0, {}}, |
|
{"MPL Step Counter", "Invensense", 1, |
|
SENSORS_STEP_COUNTER_HANDLE, |
|
SENSOR_TYPE_STEP_COUNTER, 100.0f, 1.0f, 1.1f, 0, {}}, |
|
{"MPL Geomagnetic Rotation Vector", "Invensense", 1, |
|
SENSORS_GEOMAGNETIC_ROTATION_VECTOR_HANDLE, |
|
SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, {}}, |
|
#ifdef ENABLE_DMP_SCREEN_AUTO_ROTATION |
|
{"MPL Screen Orientation", "Invensense ", 1, |
|
SENSORS_SCREEN_ORIENTATION_HANDLE, |
|
SENSOR_TYPE_SCREEN_ORIENTATION, 100.0f, 1.0f, 1.1f, 0, {}}, |
|
#endif |
|
}; |
|
#endif //ANDROID_JELLYBEAN END |
|
|
|
/*****************************************************************************/ |
|
|
|
/* |
|
* The SENSORS Module |
|
*/ |
|
|
|
/* ITG3500 */ |
|
#define EVENT_TYPE_GYRO_X REL_X |
|
#define EVENT_TYPE_GYRO_Y REL_Y |
|
#define EVENT_TYPE_GYRO_Z REL_Z |
|
/* MPU6050 MPU9150 */ |
|
#define EVENT_TYPE_IACCEL_X REL_RX |
|
#define EVENT_TYPE_IACCEL_Y REL_RY |
|
#define EVENT_TYPE_IACCEL_Z REL_RZ |
|
/* MPU6050 MPU9150 */ |
|
#define EVENT_TYPE_ICOMPASS_X REL_X |
|
#define EVENT_TYPE_ICOMPASS_Y REL_Y |
|
#define EVENT_TYPE_ICOMPASS_Z REL_Z |
|
/* MPUxxxx */ |
|
#define EVENT_TYPE_TIMESTAMP_HI REL_MISC |
|
#define EVENT_TYPE_TIMESTAMP_LO REL_WHEEL |
|
|
|
/* Accel BMA250 */ |
|
#define EVENT_TYPE_ACCEL_X ABS_X |
|
#define EVENT_TYPE_ACCEL_Y ABS_Y |
|
#define EVENT_TYPE_ACCEL_Z ABS_Z |
|
#define LSG (1000.0f) |
|
|
|
// conversion of acceleration data to SI units (m/s^2) |
|
#define RANGE_A (4*GRAVITY_EARTH) |
|
#define RESOLUTION_A (GRAVITY_EARTH / LSG) |
|
#define CONVERT_A (GRAVITY_EARTH / LSG) |
|
#define CONVERT_A_X (CONVERT_A) |
|
#define CONVERT_A_Y (CONVERT_A) |
|
#define CONVERT_A_Z (CONVERT_A) |
|
|
|
/* AKM compasses */ |
|
#define EVENT_TYPE_MAGV_X ABS_RX |
|
#define EVENT_TYPE_MAGV_Y ABS_RY |
|
#define EVENT_TYPE_MAGV_Z ABS_RZ |
|
#define EVENT_TYPE_MAGV_STATUS ABS_RUDDER |
|
|
|
/* conversion of magnetic data to uT units */ |
|
#define CONVERT_M (0.06f) |
|
|
|
/* conversion of sensor rates */ |
|
#define hertz_request = 200; |
|
#define DEFAULT_MPL_GYRO_RATE (20000L) //us |
|
#define DEFAULT_MPL_COMPASS_RATE (20000L) //us |
|
|
|
#define DEFAULT_HW_GYRO_RATE (100) //Hz |
|
#define DEFAULT_HW_ACCEL_RATE (20) //ms |
|
#define DEFAULT_HW_COMPASS_RATE (20000000L) //ns |
|
#define DEFAULT_HW_AKMD_COMPASS_RATE (200000000L) //ns |
|
|
|
/* convert ns to hardware units */ |
|
#define HW_GYRO_RATE_NS (1000000000LL / rate_request) // to Hz |
|
#define HW_ACCEL_RATE_NS (rate_request / (1000000L)) // to ms |
|
#define HW_COMPASS_RATE_NS (rate_request) // to ns |
|
|
|
/* convert Hz to hardware units */ |
|
#define HW_GYRO_RATE_HZ (hertz_request) |
|
#define HW_ACCEL_RATE_HZ (1000 / hertz_request) |
|
#define HW_COMPASS_RATE_HZ (1000000000LL / hertz_request) |
|
|
|
#define RATE_200HZ 5000000LL |
|
#define RATE_15HZ 66667000LL |
|
#define RATE_5HZ 200000000LL |
|
__END_DECLS |
|
|
|
#endif // ANDROID_SENSORS_H
|
|
|