第一部分:HCI协议(八)具体的HCI command和event(15、LINK INFORMATION一般不用)

(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)

举例说明:(暂时没有)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值