java – Android蓝牙串口RFCOMM低波特率/慢速传输
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Android蓝牙串口RFCOMM低波特率/慢速传输,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1704字,纯文字阅读大概需要3分钟。
内容图文
![java – Android蓝牙串口RFCOMM低波特率/慢速传输](/upload/InfoBanner/zyjiaocheng/800/a6c9c2850ed74c2d8f56bdc30a459b0e.jpg)
我正在开发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或蓝牙设备引起的问题吗?我想知道最大波特率是多少?有没有办法加快传输速度(如增加最大包大小,或发送所有包而不等待硬件验证命令).
Edit
After changing the package size to 4160 Bytes, Throughput has
increased to 254Kbps. I’m trying to figure out the optimum package
size to reach 1.5Mbps. I appreciate any suggestions
解决方法:
首先,改变蓝牙RFCOMM /串行端口协议的波特率应该没有什么区别,因为它不是真正的串行端口而只是模拟. (特定的制造商可以这么特别,但一般的蓝牙或Android不使用该参数来控制空中比特率)
影响SPP数据速率的因素将是数据包的大小,您可以通过蓝牙获得的实际最大数据速率以及接收器读取的速度/发送者发送的频率.对于数据包大小,您可以查看内部文档或尝试不同的大小以达到应用程序的最佳数量.
此外,我建议发送多个数据包(或全部),直到流可以连续发送数据,类似地连续读取.
这里的主要问题似乎是你可以通过蓝牙实现的实用组合.如果您正在使用您在问题中提到的非EDR版本,则非常低级别的理论速度为720Kbps,并且添加协议和应用程序以及RFCOMM协议开销,您可以获得最大约450-500 Kbps的速度.
如果您可以访问EDR的两个设备,即蓝牙版本2.0或更高的EDR,那么您可以预期应用程序throuput大约1.2到1.5 Mbps(理论上空中比特率为2.0或3.0 Mbps)
内容总结
以上是互联网集市为您收集整理的java – Android蓝牙串口RFCOMM低波特率/慢速传输全部内容,希望文章能够帮你解决java – Android蓝牙串口RFCOMM低波特率/慢速传输所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。