ジャイロスコープ、磁力計、加速度計を備えた Samsung Galaxy sii 電話を使用しています。すべてNDKを使用しています。
私は toadlet ライブラリを使用して多くの電話インターフェイスを抽象化していますが、そのライブラリ内には、期待される NDK 関数を呼び出すサンプリング レートを設定する関数があります。
void AndroidSensorDevice::setSampleTime(int dt){
if(mSensor!=NULL){
ASensorEventQueue_setEventRate(mEventQueue,mSensor,dt*1000);
}
}
加速度計と磁力計のサンプリング レートを変更すると、実際のサンプリング レートの予想される変化が大まかにわかります。ただし、ジャイロスコープの場合、常に最速のレートでのみ更新されます。つまり、サンプルレートを何に設定しても、次のような時間差が得られます。
I/toadlet (10266): dt= 0.619000
I/toadlet (10266): dt= 4.423000
I/toadlet (10266): dt= 0.511000
I/toadlet (10266): dt= 4.335000
I/toadlet (10266): dt= 0.586000
I/toadlet (10266): dt= 4.371000
I/toadlet (10266): dt= 0.586000
I/toadlet (10266): dt= 4.559000
I/toadlet (10266): dt= 0.340000
I/toadlet (10266): dt= 3.827000
I/toadlet (10266): dt= 0.617000
I/toadlet (10266): dt= 5.337000
I/toadlet (10266): dt= 0.154000
I/toadlet (10266): dt= 3.538000
I/toadlet (10266): dt= 0.556000
I/toadlet (10266): dt= 4.547000
とてつもなく大きなサンプルレートを試しても効果はありません。他の誰かがこれを見たことがありますか?
電話は Android 2.3.5 を実行しており、android-9 と android-14 の両方のターゲットを使用してみましたが、顕著な違いはありません。