|
查看: 7|回复: 0

[BLE SDK] master每次回连都会重新做服务发现吗?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 昨天 13:36 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
作为 master,设备回连后 app_service_discovery 会不会再次执行?发现:master 不断电、从机重新上电回连时不会再调用;master 重新上电后回连时又会调用,这样正常吗?

回答:

正常。原因如下:

1、服务发现信息保存在 RAM 中:master 端做过的服务发现结果缓存在 RAM 里,只要 master 不掉电,回连(包括从机重新上电后的回连)时直接使用缓存的发现结果,不再重新执行服务发现。

2、master 掉电后缓存丢失:master 重新上电后缓存为空,与从机回连时就必须重新执行服务发现,所以会再次调用。

3、关于"通信不好时服务发现出错是否影响通信":理论上不会——服务发现流程有协议层的确认/重试机制,不会因为个别包丢失导致发现结果损坏。

说明:如果应用依赖"每次回连都拿到最新的服务/特征值"(例如对端 ATT 表动态变化),需要考虑在回连时主动重新触发服务发现,而不是依赖 RAM 缓存。

本版积分规则

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

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

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

在本版发帖返回顶部