|
查看: 7|回复: 0

[BLE SDK] 回连后GAP_EVT_SMP_CONN_ENCRYPTION_DONE不触发怎么办?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 昨天 11:37 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
设备回连后需要知道"重新加密完成",但 GAP_EVT_SMP_CONN_ENCRYPTION_DONE 事件不触发,怎么办?

回答:

正常情况下,连接重新加密完成后会触发 GAP 事件 GAP_EVT_SMP_CONN_ENCRYPTION_DONE,应用层在该事件中处理即可。

某些 SDK 版本存在已知问题:该 GAP 事件不触发。可以在 user_init 中按如下方式处理(社区/内部已验证可行):
  1. typedef int (*ll_enc_done_callback_t)(u16 connHandle);
  2. extern void blc_ll_registerConnectionEncryptionDoneCallback(ll_enc_done_callback_t cb);
  3. extern int bls_smp_encryption_done(u16 connHandle);
复制代码

在 LL 层注册加密完成回调,并在回调里调用 bls_smp_encryption_done(),即可让上层的加密完成事件正常响应。

说明:

1、该问题属于已知问题,后续版本或补丁会修复;使用旧版本 SDK 时可用上述 workaround;
2、如果使用的是最新版本,建议先确认是否已修复,不需要额外处理。

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部