找回密码
 立即注册

微信扫码登录

查看: 433|回复: 7

[BLE SDK] 设备做从机时,连接事件、断开事件和实际连接、断开先后顺序不一致。丢失信息

[复制链接]

2

主题

5

回帖

56

积分

不屈白银

积分
56
发表于 2024-12-20 18:19:18 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR825x
SDK及版本: Bluetooth LE Multi Connection V4.0.1.3
SLAVE_MAX_NUM设置为1.

当连接对象迅速断开,再被另一个主机扫描并建立连接后。从app_controller_event_callback的回调事件中,最先获取的evt为HCI_SUB_EVT_LE_CONNECTION_COMPLETE,再紧跟着获取HCI_EVT_DISCONNECTION_COMPLETE事件。此时由于断连,会执行dev_char_info_delete_by_connhandle从而将刚刚连接的对象连接handle删除掉。此时呈现出的结果是连接着,但是由于conn_dev_list内的信息被删除了,导致后续一些参数无法正常获取。有办法解决吗?

0

主题

27

回帖

136

积分

版主

积分
136
发表于 2024-12-23 17:16:53 | 显示全部楼层
上述场景事件的上报的顺序:HCI_SUB_EVT_LE_CONNECTION_COMPLETE(第1次连接建立) ---> HCI_EVT_DISCONNECTION_COMPLETE(第1次连接断开) ---> HCI_SUB_EVT_LE_CONNECTION_COMPLETE(第2次连接建立),在第2次连接建立时会调用dev_char_info_insert_by_conn_event(pConnEvt),这个时候conn_dev_list内的信息已经更新到新的连接。

2

主题

5

回帖

56

积分

不屈白银

积分
56
 楼主| 发表于 2024-12-24 09:17:26 | 显示全部楼层
一般情况下是这样的没错。
我用的是一台安卓,一台ios测试,多次实验测试下来,当第一次断开(由主机端发起断连请求)和第二次连接(主机端扫描并建立连接)的速度发生的足够快时,通过打印日志,实际的场景事件上报顺序为:
HCI_SUB_EVT_LE_CONNECTION_COMPLETE(第1次连接建立)-->HCI_SUB_EVT_LE_CONNECTION_COMPLETE(第2次连接建立)--->HCI_EVT_DISCONNECTION_COMPLETE(第1次连接断开)
从而导致第二次通过dev_char_info_insert_by_conn_event(pConnEvt)保存的信息被第一次断开连接的事件给清除掉了

2

主题

5

回帖

56

积分

不屈白银

积分
56
 楼主| 发表于 2024-12-24 09:20:57 | 显示全部楼层
并非必现,但是概率存在,测试下来复现率不算低

0

主题

27

回帖

136

积分

版主

积分
136
发表于 2024-12-26 10:07:59 | 显示全部楼层
请问能提供更详细的复现测试场景、设备和步骤吗?

2

主题

5

回帖

56

积分

不屈白银

积分
56
 楼主| 发表于 2024-12-31 09:59:06 | 显示全部楼层

我在app_controller_event_callback的连接事件和断联事件中都添加了连接相关信息打印。
image.png image.png
下图是复现时的日志。
image.png

0

主题

27

回帖

136

积分

版主

积分
136
发表于 2025-1-2 16:19:04 | 显示全部楼层
在只配置一个ACL peripheral(SLAVE_MAX_NUM = 1)的情况下,可以尝试使用如下方法,在app_le_connection_complete_event_handle()关闭广播blc_ll_setAdvEnable(BLC_ADV_DISABLE),在app_disconnect_event_handle()打开广播blc_ll_setAdvEnable(BLC_ADV_ENABLE)。

2

主题

5

回帖

56

积分

不屈白银

积分
56
 楼主| 发表于 2025-1-3 10:01:06 | 显示全部楼层
好的,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-1-19 20:40 , Processed in 0.096501 second(s), 23 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表