第一部分:HCI协议(八)具体的HCI command和event(11、PICONET STRUCTURE)

时间:2024-04-10 09:56:17

第一部分:HCI协议(八)具体的HCI command和event(11、PICONET STRUCTURE)

(1)Role Discovery Command

第一部分:HCI协议(八)具体的HCI command和event(11、PICONET STRUCTURE)

当Host想要确定在Connection_Handle(ACL连接)表示的连接上是什么role时,可以使用这个命令

参数说明:

Connection_Handle(2 Octet):用来表示一个ACL连接

返回参数说明:

Status(1 Octet):0x00表示成功,其他值表示失败

Connection_Handle(2 Octet):用来表示一个ACL连接

Current_Role(1 Octet):0x00表示master,0x01表示slave

举例说明:(暂时没有)

(2)Switch Role Command

第一部分:HCI协议(八)具体的HCI command和event(11、PICONET STRUCTURE)

Switch_Role这个命令是用来改变本地BR/EDR的当前的role(与远端设备连接时)

注意:本地设备和远端设备之间存在SCO或者eSCO时,本地设备会拒绝Switch_Role命令,另外如果远端设备当前处于Sniff Mode,本地设备也会拒绝Switch_Role命令

参数说明:

BD_ADDR(6 Octet):指的是与本地设备连接的远端设备

Role(1 Octet):表示本地设备想要改变的role,0x00表示master,0x01表示slave

举例说明:(暂时没有)

(3)Role Change Event

第一部分:HCI协议(八)具体的HCI command和event(11、PICONET STRUCTURE)

Role Change event表示本地BR/EDR controller的role已经发生了改变

参数说明:

Status(1 Octet):0x00表示成功,其他值表示失败

BD_ADDR(6 Octet):表示远端设备地址

New_Role(1 Octet):表示本地BR/EDR controller的新的role,0x00表示master,0x01表示slave

举例说明:

Role Change Event

第一部分:HCI协议(八)具体的HCI command和event(11、PICONET STRUCTURE)

0x04:表示HCI Event Packet

0x12:表示这个event是Role Change Event

0x08:表示Parameter_Total_Length即8个byte

0x00:表示status是0x00

0x0e 0xb2 0x51 0x2d 0xbf 0x94:表示远端设备的地址,即0x94 0xbf 0x2d 0x51 0xb2 0x0e

0x01:表示本地BR/EDR controller的role是slave