如题, 我有30个router和20个enddevice添加到同一个协调器;不管是 先添加几个router后添加全部enddevice再添加其他router, 还是先添加30个router后添加其他enddevice时, 都会出现第40个设备无法添加
调试时发现添加第40个设备的时候, bdb_RegisterCommissioningStatusCB注册的callback会得到BDB_COMMISSIONING_NWK_STEERING的状态值为BDB_COMMISSIONING_TCLK_EX_FAILURE
设备是通过调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);加入网络
user3701862:
NWK_MAX_DEVICE_LIST 为20没有修改过, 没有修改协议栈内容, 协调器的BDB_DEFAULT_TC_REQUIRE_KEY_EXCHANGE设置为FALSE
user3701862:
添加设备时协调器调用
zAddrType_t dstAddr; dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR; dstAddr.addrMode = AddrBroadcast; permit_join_timeout = message.timeout; ZDP_MgmtPermitJoinReq( &dstAddr, message.timeout, TRUE, FALSE); bdb_reportCommissioningState(BDB_COMMISSIONING_STATE_STEERING_ON_NWK, TRUE);
Alvin Chen:
回复 user3701862:
ZDSECMGR_TC_DEVICE_MAX 40
受限于这个值,你可以试着改大一些,或者在defined symbols设置
xTC_LINKKEY_JOIN试一下.
你可以看我的帖子:
e2echina.ti.com/…/156583
user4958201:
回复 Alvin Chen:
3.0协议栈,2538硬件,这个值ZDSECMGR_TC_DEVICE_MAX改为100就不行了(一个节点都加不进去,ZC回复关联失败),改为50我这可以,请问设置为100时候是由于网络中还有其它参数限制还是内存不足造成的,急求,谢谢
Alvin Chen:
回复 user4958201:
通常情况下1个ZC直连40个以上的ZED是很难的,建议是这样的:ZC-ZR-ZED
举个例子:
一个ZC连接10个ZR,每个ZR连接10个ZED。
在使能CONCENTRATOR_ROUTE_CACHE的情况下尝试更改MAX_RTG_SRC_ENTRIES变得大一些。
如果你有UART建议换成其他接口使用。
user4958201:
回复 Alvin Chen:
这个我明白,就是单独ZC带ZE的话是有限制的,要有路由,但是我的问题是ZDSECMGR_TC_DEVICE_MAX改为100后ZC一个节点都带不起来,入网时候关联回复直接association denied。你说的这些宏我也都设置了。
DSECMGR_TC_DEVICE_MAX=100
NWK_MAX_DEVICE_LIST=10
CONCENTRATOR_ENABLE=1
CONCENTRATOR_DISCOVERY_TIME=120
MAX_RTG_SRC_ENTRIES=100
SRC_RTG_EXPIRY_TIME=200
CONCENTRATOR_ROUTE_CACHE=1
ZC的串口确实使用了,因为要用串口进行交互。
怎么确定问题出在哪里呢?
Alvin Chen:
回复 user4958201:
你可以尝试先禁用串口,然后把NWK_MAX_DEVICE_LIST=40试试。
YiKai Chen:
回复 Alvin Chen:
沒有用ZR的話,MAX_RTG_SRC_ENTRIES應該可以設定小一些,比如說設置為1就好
Alvin Chen:
回复 YiKai Chen:
MAX_RTG_SRC_ENTRIES:
Defines the maximum number of devices in the source routing table, which is used for Many-To-One (MTO) routing
没有路由小一些就可以。
user4958201:
回复 Alvin Chen:
是这样的,按照我之前的设置,NWK_MAX_DEVICE_LIST=40,串口也开着,MAX_RTG_SRC_ENTRIES设置为100,不超过40个节点入网没问题,但是其它任何设置不变动,只设置NWK_MAX_DEVICE_LIST = 100,就一个节点也入不进去了,刚才按照你说的尝试关掉串口,MAX_RTG_SRC_ENTRIES设置为1,NWK_MAX_DEVICE_LIST=80,编译后map文件:1 419 bytes of readonlydata memory13 571 bytes of readwrite data memory (+ 12 288 absolute)
上述两个占用内存值1419和13 571加起来比之前设置NWK_MAX_DEVICE_LIST=40,入网正常时还小,但是入网还是失败,和只改动NWK_MAX_DEVICE_LIST = 100出的问题一样。这是不是能排除内存空间的问题了?