| /* |
| * Copyright (C) 2008-2014 The Android Open Source Project |
| * |
| * 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 <errno.h> |
| #include <stdint.h> |
| #include <sys/cdefs.h> |
| #include <sys/types.h> |
| |
| #include <linux/input.h> |
| |
| #include <hardware/hardware.h> |
| #include <hardware/sensors.h> |
| |
| __BEGIN_DECLS |
| |
| /*****************************************************************************/ |
| |
| #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) |
| |
| #define ID_A 0//CW_ACCELERATION |
| #define ID_M 1//CW_MAGNETIC |
| #define ID_GY 2//CW_GYRO |
| #define ID_L 3//CW_LIGHT |
| #define ID_PS 4//CW_PRESSURE |
| #define ID_O 5//CW_ORIENTATION |
| #define ID_RV 6//CW_ROTATIONVECTOR |
| #define ID_LA 7//CW_LINEARACCELERATION |
| #define ID_G 8//CW_GRAVITY |
| |
| #define ID_CW_MAGNETIC_UNCALIBRATED 9//CW_MAGNETIC_UNCALIBRATED |
| #define ID_CW_GYROSCOPE_UNCALIBRATED 10//CW_GYROSCOPE_UNCALIBRATED |
| #define ID_CW_GAME_ROTATION_VECTOR 11//CW_GAME_ROTATION_VECTOR |
| #define ID_CW_GEOMAGNETIC_ROTATION_VECTOR 12//CW_GEOMAGNETIC_ROTATION_VECTOR |
| #define ID_CW_SIGNIFICANT_MOTION 13//CW_SIGNIFICANT_MOTION |
| #define ID_CW_STEP_DETECTOR 14//CW_STEP_DETECTOR |
| #define ID_CW_STEP_COUNTER 15//CW_STEP_COUNTER |
| |
| #define ID_A_W 16//CW_ACCELERATION_WAKE_UP |
| #define ID_M_W 17//CW_MAGNETIC_WAKE_UP |
| #define ID_GY_W 18//CW_GYRO_WAKE_UP |
| #define ID_PS_W 19//CW_PRESSURE_WAKE_UP |
| #define ID_O_W 20//CW_ORIENTATION_WAKE_UP |
| #define ID_RV_W 21//CW_ROTATIONVECTOR_WAKE_UP |
| #define ID_LA_W 22//CW_LINEARACCELERATION_WAKE_UP |
| #define ID_G_W 23//CW_GRAVITY_WAKE_UP |
| #define ID_CW_MAGNETIC_UNCALIBRATED_W 24//CW_MAGNETIC_UNCALIBRATED_WAKE_UP |
| #define ID_CW_GYROSCOPE_UNCALIBRATED_W 25//CW_GYROSCOPE_UNCALIBRATED_WAKE_UP |
| #define ID_CW_GAME_ROTATION_VECTOR_W 26//CW_GAME_ROTATION_VECTOR_WAKE_UP |
| #define ID_CW_GEOMAGNETIC_ROTATION_VECTOR_W 27//CW_GEOMAGNETIC_ROTATION_VECTOR_WAKE_UP |
| #define ID_CW_STEP_DETECTOR_W 28//CW_STEP_DETECTOR_WAKE_UP |
| #define ID_CW_STEP_COUNTER_W 29//CW_STEP_COUNTER_WAKE_UP |
| /*****************************************************************************/ |
| |
| // The SENSORS Module |
| #define EVENT_TYPE_LIGHT ABS_MISC |
| |
| enum ABS_status { |
| CW_ABS_X = 0x01, |
| CW_ABS_Y, |
| CW_ABS_Z, |
| CW_ABS_X1, |
| CW_ABS_Y1, |
| CW_ABS_Z1, |
| CW_ABS_TIMEDIFF, |
| ABS_MAG_ACCURACY = 0x0A, |
| ABS_ORI_ACCURACY = 0x0B, |
| ABS_PRESSURE_X = 0x10, |
| ABS_PRESSURE_Y = 0x11, |
| ABS_PRESSURE_Z = 0x12, |
| ABS_STEP_DETECTOR = 0x23, |
| ABS_STEP_COUNTER = 0x24, |
| ABS_TRANSPORT_BUFFER_FULL = 0x2E, |
| }; |
| |
| #define CONVERT_A 0.01f |
| #define CONVERT_M 0.01f |
| #define CONVERT_GYRO 0.01f |
| #define CONVERT_PS 1.0f |
| #define CONVERT_O 0.1f |
| #define CONVERT_ALL 0.01f |
| #define CONVERT_PRESSURE 100 |
| #define CONVERT_RV 10000 |
| |
| #define CONVERT_1 1.0f |
| #define CONVERT_10 0.1f |
| #define CONVERT_100 0.01f |
| #define CONVERT_1000 0.001f |
| #define CONVERT_10000 0.0001f |
| |
| #define RANGE_A (4*GRAVITY_EARTH) |
| |
| #define SENSOR_STATE_MASK (0x7FFF) |
| |
| /*****************************************************************************/ |
| |
| __END_DECLS |
| |
| #endif // ANDROID_SENSORS_H |