0

私は現在、古いアンドロイド 4.0.3 のセンサーを使用するクアッドコプターに取り組んでおり、リアルタイム データを WiFi 経由でサーバーに送信してログを記録するための最良の方法を知りたいと思っていました (つまり、毎回データはSensorManager.SENSOR_DELAY_GAME)で更新されます

私は現在使用しています:

mSensorManager.registerListener(this, mGyroscope, SensorManager.SENSOR_DELAY_GAME);
mSensorManager.registerListener(this, mRotationVector, SensorManager.SENSOR_DELAY_GAME);
mSensorManager.registerListener(this, mGrav, SensorManager.SENSOR_DELAY_GAME);
mSensorManager.registerListener(this, mLumen, SensorManager.SENSOR_DELAY_GAME);

各リクエストは 3 つのフロートを送信します。

単純な httprequest を実行して、データが更新されるたびにデータを送信できることは理解していますが、電話が 1 分間に最大 30 ~ 100 のリクエストを処理し、過負荷にならないようにするのは難しいと感じています。

私が考えていた別の解決策は、データを電話に一時的に保存し、20 ~ 33 ミリ秒ごとにイベントを発生させてデータを送信することでした。

しかし、それらが良い解決策であるかどうかはまだわかりません。誰かがより良い解決策を持っている場合は、私に知らせてください。

私が使用する主な電話は、HTC EVO 3D SpecsまたはおそらくSAMSUNG Galaxy S4です。

補足として、アプリは、モーターに移動方法を伝えるために、Bluetooth データを ~25 ~ 33Hz のレートで送信する必要もあります。

PS HTML5 websocket を作成して電話と直接通信し、ライブ データを表示することは可能ですか? 可能であれば、それは素晴らしい理想的なソリューションです。

4

1 に答える 1

0

Websocket は非常に優れたソリューションのように思えます。ソケットを開いたままにしておくと、毎回接続をセットアップして切断するオーバーヘッドを回避できます。

http://autobahn.ws/androidをご覧ください。簡単に試しただけですが、うまく機能しているようです。

于 2013-07-22T01:44:08.450 に答える