2013-09-30 2 views
3

Как получить доступ к значениям поля и датчик гироскопа случае магнитного при доступе датчиков изначально на Android:гироскоп и датчик магнитного поля событий в Android NDK

if(event.type == ASENSOR_TYPE_ACCELEROMETER) { 
     float x = event.acceleration.x; 
      ... 
    } 
else if(event.type == ASENSOR_TYPE_GYROSCOPE) { 
     ??? 
    } 
else if(event.type == ASENSOR_TYPE_MAGNETIC_FIELD) { 
     ??? 
    } 

Благодаря

+0

значения находятся в event.values ​​[] массив - все это описано здесь: http://developer.android.com/ руководство/темы/датчики/sensors_overview.html – pootle

+0

Я не думаю, что это совершенно правильно. Структура ASensorEvent выглядит следующим образом: http://mobilepearls.com/labs/native-android-api/include/android/sensor.h – user2830438

+0

А! извините, я вожу их в java, если вы в C, то они, похоже, находятся в ускорении или магнитном союзе, что сделает его event.magnetic.x или event.acceleration.azimuth - но они все одинаковы внизу – pootle

ответ

3

Посмотрите в заголовок файла датчика:

ANDROID-НДК-ROOT-DIR/платформы/android-/арки рычага/USR/включать/Android/sensor.h

typedef struct ASensorVector { 
    union { 
     float v[3]; 
     struct { 
      float x; 
      float y; 
      float z; 
     }; 
     struct { 
      float azimuth; 
      float pitch; 
      float roll; 
     }; 
    }; 
    int8_t status; 
    uint8_t reserved[3]; 
} ASensorVector; 

typedef struct ASensorEvent { 
    int32_t version; /* sizeof(struct ASensorEvent) */ 
    int32_t sensor; 
    int32_t type; 
    int32_t reserved0; 
    int64_t timestamp; 
    union { 
     float   data[16]; 
     ASensorVector vector; 
     ASensorVector acceleration; 
     ASensorVector magnetic; 
     float   temperature; 
     float   distance; 
     float   light; 
     float   pressure; 
    }; 
    int32_t reserved1[4]; 
} ASensorEvent; 

Кстати, я обнаружил, что пример:

https://github.com/Uroc327Mirrors/pixellight/blob/43a661e762034054b47766d7e38d94baf22d2038/Base/PLInput/src/Backend/Android/AndroidSensorManagerDevice.cpp

Смежные вопросы