潮声隔雨深 · 2021年12月29日

全志R329如何解决蓝牙设备断开慢的问题?

请问全志R329如何解决蓝牙设备断开慢的问题?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2021年12月29日
本回答来源全志R329如何解决蓝牙设备断开慢的问题?

问题分析

此问题涉及到一个概念:Link supervision timeout。
每个物理链路都有一个timer用于链接监测,link supervision timeout就是timer的超时时间。
蓝牙Controller使用link supervision timeout监测连接是否丢失了。一般以下的这种情况link supervision timeout会发挥作用:

设备连接超出范围或者被干扰导致物理链接丢失。
设备掉电引起的物理链接丢失。
link supervision timeout 一般是双方设备协商的,一般默认为20s。
如果觉得20s时间太长,可以主动去调整link supervision timeout。

解决办法

当蓝牙为master设备时,可以修改link supervision timeout。
Tina平台,可以调用btmanager的API去调整:

int bt_manager_set_link_supervision_timeout(const char *addr, int slots) ;
其中addr是对端蓝牙设备的mac地址,slots为超时时间,单位为0.625ms,实际的超时时间为: slots * 0.625ms。

需要注意,需要在设备已连接的状态去设置,否则无效,同时设备断开连接之后也会失效。
所以如果要设置,则每次连接成功之后需要设置一次。

你的回答
关注数
1
收藏数
0
浏览数
3118
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息