找回密码
 立即注册

微信扫码登录

查看: 10|回复: 1

如何在扫网集中式网络的情况下停止集中式网络扫网,并正常进行Touchlink扫网

[复制链接]

4

主题

5

回帖

84

积分

不屈白银

积分
84
发表于 昨天 18:07 | 显示全部楼层 |阅读模式 来自 广东深圳
information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8656
SDK及版本: V3.6.8.7
我的设备的集中式网络扫网逻辑是上电会开启一个定时器,每5秒调用一次bdb_networkSteerStart() 开始扫网。
Touchlink扫网的触发机制是按下按键1秒之后开始调用bdb_networkTouchLinkStart(BDB_COMMISSIONING_ROLE_INITIATOR);。我发现如果设备已经在集中式扫网的情况下(即在发beacon),这个瞬间按下按键1,去触发Touchlink扫网,可能会存在无法发包的情况。我想问一下如何规避?

目前我的做法是,在调用bdb_networkTouchLinkStart(BDB_COMMISSIONING_ROLE_INITIATOR); 之前先调用bdb_isIdle 判断bdb是否空闲,每10ms检测一次,超时时间是3s,若3秒后bdb还是非空闲,那么就不会开始touchlink,而3秒内如果变为空闲了,则开始Touchlink流程。

我想问的是,这种方法是否合理正确。有没有更好的方法。并且向问一下这个问题的出现原因是什么?


4

主题

5

回帖

84

积分

不屈白银

积分
84
 楼主| 发表于 昨天 18:12 | 显示全部楼层 来自 广东深圳
补充一下,我在开始touchlink流程之前,还会调用zb_nwkDiscoveryStop();        tl_bdbReset(); image.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-9-19 05:01 , Processed in 0.104121 second(s), 23 queries .

Powered by Telink 隐私政策

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

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