(1)Role Discovery Command
当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
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
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
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