我目前正在开发一款四旋翼机,它将使用旧android 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,每次更新都发送数据,但我觉得手机很难每分钟处理30-100个请求,而且不会过载。
我想的另一个解决方案是将数据临时存储在手机上,并每隔20-33毫秒触发一次事件来发送它所拥有的数据。
但是,我仍然不确定这些是否是好的解决方案。如果有人有更好的解决方案,请告诉我。
我将使用的主要手机是HTC EVO 3D Specs,或者可能是三星Galaxy S4
顺便说一句,该应用程序还必须以25-33Hz的速率发送蓝牙数据,以告诉电机如何移动。
附言:有可能创建一个HTML5网络套接字来直接与手机通话以显示实时数据吗?如果可能的话,这将是一个很好的理想解决方案。
websocket听起来是一个非常好的解决方案——保持套接字打开可以避免每次建立和断开连接的开销。
看看http://autobahn.ws/android-我只是试了一下,但似乎效果很好。