首先,如何来确定什么样的包为Command/Event Packet呢?
我们知道,通过HCI Packet包括四种,即Command,Event,ACL和SCO/eSCO,对应到MS-Stack中的定义,即为COMMAND_PACKET ,EVENT_PACKET,DATA_PACKET_ACL和DATA_PACKET_SCO。
如下(详细参照bt_hcip.h):
| enum HCI_TYPE { COMMAND_PACKET = 1, DATA_PACKET_ACL = 2, DATA_PACKET_SCO = 3, EVENT_PACKET = 4, ETYPE_FINISH = 5 }; |
需要指出的是COMMAND_PACKET方向是从Host写入到Controller,EVENT_PACKET为Controller发送给Host,即单向的数据。而DATA_PACKET_ACL和DATA_PACKET_SCO为双向的数据,即可以Host

本文介绍了如何分析HCI中的Command Packet和Event Packet。Command Packet从Host写入Controller,Event Packet由Controller发送给Host。文中详细阐述了Command Packet的结构,包括OCF和OGF字段,并通过实例解析了Command。Event Packet结构相对简单,可通过Event Code直接在规格书中查找对应信息。通过对HCI包的解析,可以深入理解蓝牙通信的底层机制。
最低0.47元/天 解锁文章
3996

被折叠的 条评论
为什么被折叠?



