Android Bluedroid:如何发送LL_连接\u更新\u请求
我想用一些特定的连接参数强制向从机发送LL_CONNECTION_UPDATE_REQ。我如何在Bluedroid中实现这一点?从Bluedroid可以吗Android Bluedroid:如何发送LL_连接\u更新\u请求,android,bluetooth,android-source,bluetooth-lowenergy,Android,Bluetooth,Android Source,Bluetooth Lowenergy,我想用一些特定的连接参数强制向从机发送LL_CONNECTION_UPDATE_REQ。我如何在Bluedroid中实现这一点?从Bluedroid可以吗 目标:AOSP v5.1+通过调用函数btsnd_hcic_ble_upd_ll_conn_params()[在l2c_ble.c中] 函数在hciblecmds.c中定义 如果从机和主机都支持蓝牙规范4.2版中的9.3.9中定义的连接参数更新过程,并在LL\u FEATURE\u REQ(2.4.2.9)和LL\u FEATURE\u RS
目标:AOSP v5.1+通过调用函数
btsnd_hcic_ble_upd_ll_conn_params()
[在l2c_ble.c中]
函数在hciblecmds.c中定义
如果从机和主机都支持蓝牙规范4.2版中的9.3.9
中定义的连接参数更新过程,并在LL\u FEATURE\u REQ(2.4.2.9)
和LL\u FEATURE\u RSP(2.4.2.10)
中声明,则链路层发送LL\u Connection\u PARAM\u REQ(2.4.2.16)
如果任一主机不支持此功能,LL将发送LL\u CONNECTION\u UPDATE\u REQ 2.4.2.1
从4.2版蓝牙规范中的9.3.9.2条件
:
启动连接参数更新程序的中央控制器应使用
[Vol.6]第B部分章节中定义的链路层连接更新程序
5.1.1如果中央或
外围设备不支持连接参数请求链路层
控制程序
如果中央和外围设备都支持连接参数请求
链路层控制程序,然后由中央或外围设备启动
连接参数更新程序应使用连接参数
[第6卷]第B部分第5.1.7节中定义的请求链路层控制程序
具有所需的连接参数
尽管我要在这里添加btsnd_hcic_ble_upd_ll_conn_params()
只需要最小和最大连接间隔,并将它们用作提示
根据我的经验,当传递一个值范围时,LL会选择该范围内的任何值
我只做了有限的测试,因此我不确定LL是否总是从提供的范围中进行选择,或者在某些情况下,它是否可以从该范围之外进行选择,例如,如果已连接的从属设备的CI超出该范围
从5.1.1连接更新程序
,LL将始终从主机提供的范围中选择连接间隔。
感谢@eml指出这一点。控制器不得选择超出所提供范围的连接间隔。@eml规范中对此有任何参考吗?我有一个预感,这是正确的,但我在规范中找不到它。不过我看得不太仔细。在规范中:“主机的链接层应根据主机给定的间隔范围(connInterval\u min和connInterval\u max)确定connInterval。链接层应向主机指示选定的间隔值。”按照“应”的正常定义,这意味着“必须”。