/* * 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