Android의 센서 읽기 속도에 약간의 혼란 스러움이 있습니다. 아래 코드는 ~ 53ms의 지연을보고합니다 (ZTE 블레이드, 속도 센서 이벤트는 SENSOR_DELAY_FASTEST로 설정 됨).Android : onSensor 제어 방법 샘플링 속도
public void onSensorChanged(SensorEvent event) {
synchronized (this) {
switch (event.sensor.getType()) {
case Sensor.TYPE_MAGNETIC_FIELD:
TimeNew = event.timestamp;
delay = (long)((TimeNew - TimeOld)/1000000);
TimeOld = TimeNew;
Log.d("Test", delay + " ms");
break;
}
}
}
로그 : 우리는 100 개 샘플을 말할 평균 한 후 데이터를 저장하려면
DEBUG/Test(23024): 52 ms
DEBUG/Test(23024): 53 ms
DEBUG/Test(23024): 54 ms
DEBUG/Test(23024): 56 ms
DEBUG/Test(23024): 52 ms
DEBUG/Test(23024): 52 ms
DEBUG/Test(23024): 55 ms
DEBUG/Test(23024): 52 ms
, 각 100 샘플 사이의 시간이 크게 달라질 수 있습니다. 이것은 센서 값이 일정한 시간에 변하지 않기 때문인 것으로 생각됩니다.
하지만 뭔가 빠졌습니까? (더 많은) 정기적 인 측정 (예 : 100ms)을 얻을 수있는 방법이 있습니까? 아니면 샘플 수 대신 특정 기간에 평균을 내야합니까?
또한 50ms는 약간 긴 것으로 보입니다. 그것이 장치의 하드웨어 제한 일 수 있습니까? 이 번호는 플랫폼마다 다를 수 있습니까?
모든 조언을 주시면 감사하겠습니다.