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