我正在开发一个Android 蓝牙项目,以从定制硬件发送和接收数据。我使用SDK 中的蓝牙聊天示例作为基础。
我意识到无法更改客户端(Android 手机)上的波特率,波特率将取决于硬件。我尝试在硬件上设置不同的波特率,但没有一个符合我们的预期;
我能得到的最快速度是 91Kbps(当波特率设置为 2.7Mbps ~ 910Kbps 时)。使用最小波特率(115Kbps)我得到 43Kbps。我试过用不同的手机,都是一样的。我需要每秒将 170KB 的数据传输到硬件。
规范
协议:同步或生成的数据使用最大 520 字节大小的包发送到硬件。硬件在收到并批准每个数据包后发送验证命令,然后手机发送下一个数据包。
客户端:Android 2.3.3,三星 Galaxy w i8150,蓝牙 v3.0,RFCOMM
硬件:自定义,蓝牙 v2.1 BlueGiga WT11i
我完全糊涂了..这可能是手机上的Android或蓝牙设备引起的问题吗?我想知道最大波特率是多少?有没有办法加快传输速度(比如增加最大包大小,或者在不等待硬件验证命令的情况下发送所有包)。
编辑
将包大小更改为 4160 字节后,吞吐量增加到 254Kbps。我试图找出达到 1.5Mbps 的最佳封装大小。我很感激任何建议