(1)Read LMP Handle Command
这个命令用来读取与Connection_Handle(SCO或者eSCO)相关联的LMP Handle
参数说明:
Connection_Handle(2 Octet):必须是SCO或者eSCO连接
返回参数说明:
Status(1 Octet):0x00表示成功,其他表示失败
Connection_Handle(2 Octet):与参数中的Connection_Handle应该是一样的
LMP_Handle(1 Octet):与Connection_Handle相关联的LMP handle
Reserved(4 Octet):必须是0
举例说明:(暂时没有)
(2)Read Transmit Power Level Command
这个命令用来读取Connection_Handle(ACL连接)表示的连接的Transmit_Power_Level的值
参数说明:
Connection_Handle(2 Octet):表示读取哪个ACL连接的Transmit_Power_Level值
Type(1 Octet):0x00表示读取当前的Transmit Power Level,0x01表示读取最大的Transmit Power Level.
返回参数说明:
Status(1 Octet):0x00表示成功,其他表示失败
Connection_Handle(2 Octet):表示读取哪个ACL连接的Transmit_Power_Level值
Transmit_Power_Level(1 Octet):表示读到的Transmit Power Level值,取值范围-30至20
举例说明:(暂时没有)
(3)Read Link Quality Command
这个command用来读取Handle(ACL)连接的Link_Quality值(0-255),这个值表示两个BR/EDR Controllers之间的链路质量,值越大质量越好
参数说明:
Handle(2 Octet):表示一个ACL连接
返回参数说明:
Status(1 Octet):0x00表示成功,其他表示失败
Handle(2 Octet):表示一个ACL连接
Link_Quality(1 Octet):表示读到的Link_Quality值,取值范围0至255
举例说明:(暂时没有)
(4)Read RSSI Command
对于BR/EDR controller,这个命令用来读取Handle表示的ACL连接的RSSI(Received Signal Strength Indication)的值,RSSI的值其实是和Golden Receive Power Range进行对比的(RSSI>0表示比Golden Receive Power Range的上限高多少dB,RSSI < 0表示比Golden Receive Power Range的下线低多少dB,RSSI=0表示在Golden Receive Power Range的范围内),
注意:RSSI的值由蓝牙硬件决定的。
Golden Receive Power Range的下限是高于接收器灵敏度-56dBm到6 dB之间,上限比下限高20dB(精确度+/- 6 dB)(The lower threshold level corresponds to a received power between -56 dBm and 6 dB above the actual sensitivity of the receiver. The upper threshold level is 20 dB above the lower threshold level to an accuracy of +/- 6 dB不知道这么翻译对不对)
对于LE传输,这个Handle表示一个LE连接,RSSI表示的是就是接收信号强度(精度± 6 dB),返回127表示无法读取
参数说明:
Handle(2 Octet):表示一个Connection_Handle
返回参数说明:
Status(1 Octet):0x00表示成功,其他表示失败
Handle(2 Octet):表示一个Connection_Handle
RSSI(1 Octet):对于BR/EDR范围是-128至127dB,对于LE范围是-127至20dBm(无法读取返回127)
举例说明:(暂时没有)
(5)Read Clock Offset Command
这个命令用来获取与远端设备的时钟偏移,这个时钟偏移可以加速本地设备与远端设备建立连接时的paging程序,这个Connection_Handle必须是一个ACL连接
参数说明:
Connection_Handle(2 Octet):表示一个ACL连接
注意:当controller接收到这个命令后,会返回一个command status,如果本地设备是master并且LM已经通过LMP消息获取到了时钟偏移,会返回一个Read Clock Offset Complete event
举例说明:(暂时没有)
(6)Read Clock Offset Complete Event
这个event表示Link Manager已经根据Connection_Handle(ACL连接)获取到了时钟偏移信息
返回参数说明:
Status(1 Octet):0x00表示成功,其他表示失败
Connection_Handle(2 Octet):表示一个ACL连接
Clock_Offset(2 Octet):表示时钟偏移,Bits 14-0分别对应CLKNslave-CLK的Bits 16-2
CLKNslave-CLK我的理解是:slave的时钟-本地时钟
举例说明:(暂时没有)
(7)Read Clock Command
这个命令用来从BR/EDR Controller获取蓝牙时钟(这是个估值)
Which_Clock=0,用来读取本地的蓝牙时钟,这时候Connection_Handle会被忽略,所以可以是无效的值,返回的Clock就是本地蓝牙时钟,同时Accuracy=0
Which_Clock=1,这时Connection_Handle是一个有效的ACL连接,如果本地设备是slave,则读取的是远端master的时钟,如果本地设备是master,则读取的是本地设备的时钟
注意:蓝牙时钟最小精确度是250ppm,一天大约是22s
参数说明:
Connection_Handle(2 Octet):表示获取哪个连接的蓝牙时钟
Which_Clock(1 Octet):0x00表示本地时钟(Connection_Handle可以是无效值,会被忽略),0x00表示网络时钟(Connection_Handle是有效值)
返回参数说明:
Status(1 Octet):0x00表示成功,其他表示失败
Connection_Handle(2 Octet):表示获取哪个连接的蓝牙时钟
Clock(4 Octet):表示蓝牙时钟
Accuracy(2 Octet):表示时钟误差,0xFFFF表示不知道时钟误差,时钟误差Accuracy = ±这个值 * 0.3125 msec (1 Bluetooth Clock)
举例说明:(暂时没有)