协议栈版本3.0.2,协调器2538,终端2530
1.协调器上电只允许以前加过他的终端加入,不允许新的终端加入,如何操作?协调器上电只执行bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION);测试没效果,新的终端还是能加进来
2.协调器允许新的终端加入,通过触发bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);
理论上不是180秒后就不允许新的终端加进来了吗?实测5分钟后新的终端还是能加进来?什么原因?
3.协调器里的associatedDevice.timeoutercounter会每隔一段时间就恢复默认值,
这个值可以改大一点吗?现在的应用场景是一个协调器多个终端,我想把该间隔该大一点以降低网络拥挤,
请问可以改吗?在哪里改?在终端还是协调器端改?
Viki Shi:
1、可以使用白名单机制 2、BDBC_MIN_COMMISSIONING_TIME: Length of time to commission the network for which permit join is enabled, a maximum of 254 seconds is required in accordance with Zigbee 2015 and later specification 你这个值定的多少? 3、更改END_DEV_TIMEOUT_VALUE【zglobals.h】
user5367314:
回复 Viki Shi:
1.BDBC_MIN_COMMISSIONING_TIME我设为60,但是60S以后很长时间新的终端还是能加的进来
2.已经加进来的终端,即使该终端执行bdb_resetLocalAction,还是会自动加入之前的协调器,
之前协调器的BDBC_MIN_COMMISSIONING_TIME设为60,但是过了很久才去把跟他连的终端执行
factory reset终端还是能连的上,感觉协调器一直允许入网
Viki Shi:
回复 user5367314:
你所描述的情况最好抓包看一下,数据包能看出协调器是否打开了permit join,以及permit join的持续时间
user5367314:
回复 Viki Shi:
终端入网后,协调器端的AssociatedDevList里的timeoutCounter会每10秒左右就恢复默认值
但是我终端没有主动发东西给协调器,而且我的DPOLL_RATE设的都是好几分钟,
这是终端哪里跟协调器每10秒左右通信一次了?
YiKai Chen:
回复 user5367314:
你有沒有抓包看看是不是终端有发东西给协调器
user5367314:
回复 YiKai Chen:
6AA7终端抓包.psd
YiKai Chen:
回复 user5367314:
你的终端有polling也會讓AssociatedDevList里的timeoutCounter恢复默认值
user5367314:
回复 YiKai Chen:
1.我一分钟才POLL一次啊(DPOLL_RATE=61000)
怎么抓包十几秒就POLL一次?polling和DPOLL_RATE是一个东西吗?如果不是,
那么polling怎么设置?能不能关闭?怎么关闭?
2.协调器断电后,怎么设置终端一直尝试rejoin?怎么改参数?
/***************************************** The following are for End Devices only***************************************/-DRFD_RCVC_ALWAYS_ON=TRUE
/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=61000/* This is used after receiving a data indication to poll immediately* for queued messages…in milliseconds.*/
-DQUEUED_POLL_RATE=100/* This is used after receiving a data confirmation to poll immediately* for response messages…in milliseconds*/
-DRESPONSE_POLL_RATE=100/* This is used as an alternate response poll rate only for rejoin request.* This rate is determined by the response time of the parent that the device* is trying to join.*/
-DREJOIN_POLL_RATE=440/* Rejoin retry backoff silent period timer duration in milliseconds – default 15 minutes according to HA test spec */
-DREJOIN_BACKOFF=900000/* Rejoin retry backoff scan timer duration in milliseconds – default 15 minutes according to HA test spec */
-DREJOIN_SCAN=900000/* Latest sample apps use LED4 and do not use S1 switch */ /*默认-DENABLE_LED4_DISABLE_S1*/
YiKai Chen:
回复 user5367314:
基本上是修改POLL_RATE沒錯,你看看程序里面有沒有地方調用NLME_SetPollRate去改到poll rate了
user5367314:
回复 YiKai Chen:
请问:
1.NLME_SetPollRate和DPOLL_RATE都设为0是否可以?我的终端DRFD_RCVC_ALWAYS_ON=TRUE
2.协调器断电后,怎么设置终端一直尝试rejoin?是改DREJOIN_BACKOFF和DREJOIN_SCAN吗?具体怎么改?