我的小项目是将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
这是否意味着,我的蓝牙加密狗不支持发送HCI命令
如果是,有没有其他方法可以发送HCI命令到我的蓝牙加密狗
最佳答案
端点0x00是为主机和设备之间的控制传输而“保留”的,事实上,每个设备都必须有这个端点,它没有端点描述符。尽管您的主机正在使用此终结点枚举和配置您的设备,但您仍然可以使用它进行通信。您只需在端点0x00上启动控制传输。你不必配置设备或要求一个接口来实现这一点,但我建议你无论如何都要这样做(可能在速度等方面有一定的优势)。
关于c - 将HCI命令写入USB BT加密狗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37977806/