当前位置:网站首页 > 编程语言 > 正文

蓝牙hid协议(蓝牙hid协议怎么看有没有)



在这一段折腾Bluez的时间里,越来越发现Bluez相关的许多工具做得还是挺好用的,主要在Bluez-utils/tools 目录下。只是有一点让我很遗憾,除了man以外很难找到更多的帮助文档,而man文档本身对一些功能的描述也不是很详细。

其中有些选项,如果你不了解蓝牙协议栈,或者没有查阅过相关蓝牙芯片的一些文档,很难搞明白是什么意思,甚至有些选项的具体参数值的设定,如果不读源码你都无从得知有哪些备选值。。。。

能力有限,下面所写的只是我所用过的有限的几个工具的一些使用经验,希望能有所帮助。

Bccmd的调用格式为:bccmd [-t <transport>] [-d <device>] <command> [<args>]

Tansport类型包括 HCI USB BCSP H4等,常用的估计就是HCI和BCSP两种。需要注意一下他们的使用场合:

HCI是一个抽象的标准的蓝牙通讯接口,在基于HCI协议调用BCCMD时,需要在Bluez已经建立好hci接口的基础上使用。

BCSP(Bluecore Serial Protocol)是CSR自己制定的传输层协议,主要目的是用来加强在没有使用CTS、RTS进行流量控制的情况下进行可靠的数据传输的能力。其概念是 相对H3 , H4而言,( 具体分析,请参考下面杂项一章中相应的小节 )

BCCMD的主要用途就是用来读写pskey,这里以 psset 这个command来介绍一下格式:

Psset 格式如下: psset [-r] [-s <stores>] <key> <value>

其它都好理解,关键是-s参数之后跟的store具体的含义。这个参数可以是数值也可以是字符串

查询CSR的BCCMD相关的文档,可以找到具体的含义如下:

CSR的蓝牙芯片中,PSKEY可能存储在 rom flash eeprom ram等介质里,这里的数值指明了psset/get命令操作PSKEY时所针对的存储介质及其优先顺序,通常我们会用 –s 0x0 或 –s “default” 来使用该命令,0x0的含义与0xf一样。

值得注意的是,哪个参数是有效的,还取决于哪一类的存储介质实际存在于蓝牙芯片中,此外,只读类的介质对写操作类的命令也是无效的。

基本上来说,所修改的都是位于psram中的pskey,此外,pskey修改以后要起作用,还要一并使用 –r参数,或直接用warmreset命令将蓝牙芯片进行warm reset。

其中最重要的参数就是 type和speed,type决定了要初始化的设备的型号,可以使用 hciattach –l 来列出所支持的设备型号。

并不是所有的参数对所有的设备都是适用的,有些设备会忽略一些参数设置,例如:查看hciattach的代码就可以看到,多数设备都忽略bdaddr参数。

Hciattach命令内部的工作步骤是:首先打开制定的tty设备,然后做一些通用的设置,如flow等,然后设置波特率为 initial_speed,然后根据type调用各自的初始化代码,最后将波特率重新设置为speed。所以调用hciattach时,要根据你的实际 情况,设置好initial_speed和speed。

对于type BCSP来说,它的初始化代码只做了一件事,就是完成BCSP协议的同步操作,它并不对蓝牙芯片做任何的pskey的设置。同步操作的具体流程和规范可以参考CSR的相关文档: BCSP Link Establishment Protocol

例如:Hcitool scan, hcitool inq

常用的应该就是查找远端设备的服务了

例如:

sdptool browse 00:02:72:B0:00:26 浏览地址为00:02:72:B0:00:26的设备所提供的服务

sdptool search 0x1112 00:02:72:B0:00:26 查找地址为00:02:72:B0:00:26的设备上的Headset Audio Gateway服务。

例如

hciconfig hci0 up 启动hci0接口

hciconfig hci0 iscan 使能位于hci0接口的蓝牙芯片的inquery scan模式(使得设备能被其它蓝牙设备发现)

到此这篇蓝牙hid协议(蓝牙hid协议怎么看有没有)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 三星c7000(三星C7000是什么型号)2025-06-23 13:00:04
  • 定位打开了无法获取位置图片(定位打开了无法获取位置图片怎么回事)2025-06-23 13:00:04
  • 读取文件权限在哪里设置(华为手机读写权限在哪里开启)2025-06-23 13:00:04
  • 天气预报接口(天气预报接口免费)2025-06-23 13:00:04
  • flash打包exe(Flash打包是指)2025-06-23 13:00:04
  • 颜色代码查询颜色名称(颜色代码在线查询器)2025-06-23 13:00:04
  • 二级域名解析(二级域名解析网站)2025-06-23 13:00:04
  • 拆包货是什么意思(拆包裹是什么意思)2025-06-23 13:00:04
  • 汽车dv试验和pv试验(汽车dvp试验报告)2025-06-23 13:00:04
  • 苹果电脑安装双系统后怎么切换(苹果电脑安装双系统后怎么切换输入法)2025-06-23 13:00:04
  • 全屏图片