将HCI命令写入USB BT Dongle

时间:2016-06-22 20:35:06

标签: c bluetooth libusb-1.0 hci

我的小项目是将HCI命令写入蓝牙USB加密狗,并获得HCI命令的响应。

我可以打印我的USB蓝牙适配器的所有端点地址,如下所示(使用libusb)。根据蓝牙系统主机控制接口[传输层]的规范,(第2.1节),端点地址0x00用于写入HCI命令。但我在蓝牙适配器中找不到端点地址0x00

config[0]->interface[0]->altsetting[0]->endpoint[0]->bEndpointAddress=0x81 packetsize=16
config[0]->interface[0]->altsetting[0]->endpoint[1]->bEndpointAddress=0x02 packetsize=64
config[0]->interface[0]->altsetting[0]->endpoint[2]->bEndpointAddress=0x82 packetsize=64
config[0]->interface[1]->altsetting[0]->endpoint[0]->bEndpointAddress=0x03 packetsize=0
config[0]->interface[1]->altsetting[0]->endpoint[1]->bEndpointAddress=0x83 packetsize=0
config[0]->interface[1]->altsetting[1]->endpoint[0]->bEndpointAddress=0x03 packetsize=9
config[0]->interface[1]->altsetting[1]->endpoint[1]->bEndpointAddress=0x83 packetsize=9
config[0]->interface[1]->altsetting[2]->endpoint[0]->bEndpointAddress=0x03 packetsize=17
config[0]->interface[1]->altsetting[2]->endpoint[1]->bEndpointAddress=0x83 packetsize=17
config[0]->interface[1]->altsetting[3]->endpoint[0]->bEndpointAddress=0x03 packetsize=25
config[0]->interface[1]->altsetting[3]->endpoint[1]->bEndpointAddress=0x83 packetsize=25
config[0]->interface[1]->altsetting[4]->endpoint[0]->bEndpointAddress=0x03 packetsize=33
config[0]->interface[1]->altsetting[4]->endpoint[1]->bEndpointAddress=0x83 packetsize=33
config[0]->interface[1]->altsetting[5]->endpoint[0]->bEndpointAddress=0x03 packetsize=49
config[0]->interface[1]->altsetting[5]->endpoint[1]->bEndpointAddress=0x83 packetsize=49
  1. 这是否意味着,我的蓝牙适配器不支持发送HCI命令
  2. 如果是,是否有其他方法可以将HCI命令发送到我的蓝牙适配器

1 个答案:

答案 0 :(得分:2)

端点0x00是"保留"用于主机和设备之间的控制传输,并且事实上,每个设备必须具有该端点,它没有端点描述符。通过您的主机使用此端点枚举和配置您的设备,您仍然可以使用它来进行通信。您所要做的就是在端点0x00上启动控制传输。您不必配置设备或声明接口来执行此操作,但我建议您仍然这样做(可能具有一定的速度等优势)。

相关问题