ZiG*_*iGi 7 android serial-port bluetooth rfcomm
这是非常令人沮丧的,因为我已经尝试了几个星期,甚至没有在互联网上的线索.
我正在研究一个在不同农业硬件上读/写蓝牙串行数据的项目.
大多数这些硬件都是旧的,并且不能改变其SPP的波特率.
我使用android蓝牙聊天作为读/写的基础,我只更改了UUID以允许连接到我拥有的设备
我设法以19,200的糟糕速度从标签阅读器中读取,并且格式很好
但是,我现在卡在波特率为9,600的音阶上,并在我的应用中显示有趣的角色,甚至没有接近应该来自音阶的格式
此项目之前已在旧的Windows Mobile上完成,并且可以在其API中更改波特率
有没有办法在Android中执行此操作,还是我咆哮错误的树?
编辑:修正了一些错误.
关于这一点,互联网上没有很好的信息 - 很多都是错的 - 不要相信任何人!
特别是,这两件事情并非如此:
这是我发现的:
使用RFCOMM按照SPP中的描述制作蓝牙串行连接.RFCOMM是一种在L2CAP上运行的连接,允许以帧为单位发送串行数据和控制参数.它基于一种称为TS 07.10的古老标准.SPP是蓝牙配置文件.
这种成帧还允许您发送带外数据,例如控制串行信号(DTR,CTS等)和设置波特率.
从SPP规范:
在DLC建立之前,DevA可以通过远程端口协商命令通知DevB RS232端口设置.如果RFCOMM适配层的API公开那些设置(例如波特率,奇偶校验),则需要这样做.
可悲的是,Android根本没有公开这个功能.我想有可能自己发送远程端口协商命令,但我很确定需要重新实现RFCOMM,这需要访问我们没有的L2CAP.
第31页详细介绍了远程端口协商命令.注意"所有参数都分配了默认值,如果未执行协商,则选择默认值."
因此,无法在Android上根据需要设置波特率.它将使用您的蓝牙适配器使用的默认波特率(可能是9600).
另请注意,Windows 确实支持设置蓝牙适配器的波特率.
| 归档时间: |
|
| 查看次数: |
25123 次 |
| 最近记录: |