事件包头如何在hci_send_req api实现中进行getiing?

时间:2015-12-10 12:43:50

标签: linux bluetooth bluez hci

您好我正在hci.c文件中执行hci_send_req实现。在向控制器发送hci命令后,在此函数中。控制器发送事件包。在缓冲区中通过read(dd, buf, sizeof(buf)) (dd is hci socket descriptor)读取事件包之后,现在我们需要事件包头并获得事件包头,buf被筛选1个字节。为什么??

hdr = (void *) (buf + 1); (line number 1049 of hci.c)

请让我知道这件事。谢谢。

1 个答案:

答案 0 :(得分:1)

HCI事件数据包:主机控制器通知HCI驱动程序事件:

数据包指示符(对于UART接口)为4。
事件代码(8位):标识事件 参数长度(8位):所有参数的总长度,以字节为单位 事件参数:参数数量及其长度是特定于事件的。

因此,第一个八位字节用于数据包指示符,即事件包的0x04。

用于命令包 - 0x01(用于UART接口)
用于ACL数据包 - 0x02(用于UART接口)
对于SCO数据包 - 0x03(对于UART接口)