Android - акселерометр на мотодроиде 1 сначала сообщает неверные значения? - PullRequest
2 голосов
/ 04 ноября 2010

Итак, я пишу приложение, которое обнаруживает движение и нуждается в калибровке для различных движений.За последние несколько дней я заметил, что сразу после регистрации SensorEventListener, onSensorChanged(SensorEvent) выбрасывает неполное (и, следовательно, ошибочное) .values[].Такое поведение портит мой процесс калибровки, и величина силы, которая означает движение, слишком велика.Я подтвердил, что это относится ко всем загруженным и протестированным приложениям регистрации акселерометра, поэтому это не ошибка, характерная для моего кода.Я думаю, что это может быть вызвано плохим оборудованием (возможно, специфичным для моего moto droid 1) или программной ошибкой из-за используемого мной пользовательского ПЗУ (Simply Stunning 4.9, из источника Froyo 2.2.1.)

Пример:

sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SENSOR_DELAY);
....
onSensorChanged(SensorEvent event){
    // event.values[0] = 0.0
    // event.values[1] = -0.47
    // event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
    // event.values[0] = 0.08
    // event.values[1] = -0.47
    // event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
   // event.values[0] = 0.08 
   // event.values[1] = -0.47 
   // event.values[2] = 10.1
}

Как видите, для того, чтобы все правильные значения стали доступны, часто требуется 2 чтения.

Может ли кто-нибудь подтвердить или опровергнуть это поведение на moto droid 1 или другомТелефон?Как вы думаете, хорошим решением будет просто сбросить первые 2 или 3 показания, чтобы они не искажали мою калибровку?

1 Ответ

2 голосов
/ 05 ноября 2010

Звучит разумно для меня. Возможно, вы могли бы сначала зарегистрировать слушателя с самой быстрой задержкой, чтобы быстро убрать эти несколько плохих показаний, а затем заново зарегистрироваться с желаемой частотой обновления для вашей калибровки. Вы можете использовать двух разных слушателей, первый убирает с дороги, затем отменяет регистрацию и регистрирует другого (хорошего).

...