TI中文支持网
TI专业的中文技术问题搜集分享网站

终端设备入网问题

终端设备和路由器加入协调器网络之后,

1.如果协调器断电了,终端节点会加入路由器,如果协调器又上电了,发现协调器无法控制终端了?为什么?因为PANID和协调器不一样了吗?

2.如果把终端节点设置为只加入协调器(永远不加入路由器),那协调器断电再上电,终端节点能不能加入协调器?

3.如何把终端设备设置为只加入协调器,即使有路由也不加入路由器,协调器断电时一直再尝试加入协调器?

YiKai Chen:

1. 抓包才能知道為什麼,猜測是路由變了,需要等一段時間讓路由恢復
2.&3. 沒辦法把终端设备设置为只加入协调器

Alvin Chen:

请提供抓包文件,
2和3无法实现。

user5367314:

回复 YiKai Chen:

是这样的,环境中有ZLL灯(第三方产品,是路由器)
协调器和终端设备都是TI的CC2530,测试的时候,
终端设备,和ZLL灯加入协调器后,某个时候,协调器重启了,
发现重启后终端部分节点无法入网了,因为此时协调器变化了导致无法入网?
(有部分终端可以入网,所有终端设备离协调器的距离都在10米内,无遮挡)

Alvin Chen:

回复 user5367314:

只能通过抓包文件来判断原因

user5367314:

回复 Alvin Chen:

你好,之前问你你说“如果你只想加入coordinator,可以在device state发生变化时,用NLME_GetCoordShortAddr()获取看看是不是coord。”
现在怎么又说终端设备在协调器断电后,不能选择是加入协调器还是路由器?
我想在协调器断电又上电时,终端设备还加入协调器?

Alvin Chen:

回复 user5367314:

NLME_GetCoordShortAddr 确实是获取父节点的地址, 你的coordinator 是0x0000 ,coordinator 掉线后,end device 会连入路由。这是你无法选择,当你一个设备入网时会选择一个信号质量最好的入网,这是你无法改变的,你直接尝试做些逻辑看看能不能实现。

user5367314:

回复 Alvin Chen:

现在的情况是,协调器重启后,因为节点加入了路由,协调器再上电后就控制不了节点了,
原因未知,节点的短地址也变化了(即使开启了NV),因为上位机是通过协调器去控制所有的终端设备的,
终端设备一旦加入路由,协调器和终端就无通信了,可有什么解决方案

Alvin Chen:

回复 user5367314:

你要抓包,你从哪里得知短地址变化了?

Alvin Chen:

回复 Alvin Chen:

建议你咨询一下第三方产品那边,你可以看一下我发的帖子是一个正常的变化。
e2echina.ti.com/…/169842

user5367314:

回复 YiKai Chen:

在网上看到一个方法,在终端设备里把下面的函数里的部分参数修改一下
如下把地址和深度都改为0,这样即使路由器存在,是不是协调器断电的时候,
终端设备不会加入路由器?而协调器上电的时候,终端设备又加上了协调器
void ZDO_beaconNotifyIndCB( NLME_beaconInd_t *pBeacon )
{pNwkDesc->chosenRouter = 0;//默认INVALID_NODE_ADDR;pNwkDesc->chosenRouterDepth = 0;//默认0xFF;

if ( ( (capacity) || ( pBeacon->sourceAddr == _NIB.nwkCoordAddress ) ) && (selected) ){// this is the new chosen router for joining…pNwkDesc->chosenRouter= 0;//默认pBeacon->sourceAddr;pNwkDesc->chosenRouterLinkQuality = pBeacon->LQI;pNwkDesc->chosenRouterDepth= 0;//默认pBeacon->depth;}
}

赞(0)
未经允许不得转载:TI中文支持网 » 终端设备入网问题
分享到: 更多 (0)