TI中文支持网
TI专业的中文技术问题咨询交流网站

EndDevice入网问题

Z-Stack 2.5.1a,终端定时发送消息给协调器,没有路由器。

如果协调器先上电,再开终端,通讯正常。

反过来,如果终端先上电,协调器后上电,终端无法连上协调器。

请问怎么debug?

YiKai Chen:

抓包看看是什麼狀況

Viki Shi:

“如果终端先上电,协调器后上电,终端无法连上协调器。”建议这部分抓包一下,帮助判断问题

user6008379:

回复 Viki Shi:

我们做了这样一个实验,请帮忙分析一下。
协议栈:Z-Stack 2.5.1a (不要说太旧了,在CC2530跑这个还真顺畅,换成3.0各种资源不足)
芯片:CC2530,终端和协调器都是
工程模板:GenericApp

问题描述:终端先上电,协调器后上电,终端连不上协调器,现象表示为协调器收不到终端定时发来的消息;需要复位终端,才能通讯。
解决方法:我们在协调器加上NV_RESTORE宏定义,终端不加,可以解决上述问题。
请问,为什么终端没有加NV_RESTORE可以解决上述问题?
我们的应用中,终端是电池供电,终端只是发消息给协调器,不接收协调器通知。不想在终端加NV_RESTORE,因为不方便在更换协调器后通知终端清除NV。

YiKai Chen:

回复 user6008379:

有沒有抓包先分析是什麼狀況?

user6008379:

回复 YiKai Chen:

这是协调器不定义NV_RESTORE情况下,复位协调器后终端无法入网,抓取协调器侧数据包的情况。

Coordinator-without-nv-restore.psd

YiKai Chen:

回复 user6008379:

协调器不定义NV_RESTORE,复位协调器后會重新組網,除非终端也不不定义NV_RESTORE,不然复位协调器后终端无法入网是正常的

Viki Shi:

回复 user6008379:

如果要断电复位后恢复网络,终端和协调器都要添加NV_RESTORE

user6008379:

回复 Viki Shi:

所以我来问为什么我只在协调器加NV_RESTORE就感觉解决问题了。
我的应用中终端只发不收,如果加了NV_RESTORE,无法通知终端清除NV(比如更换了协调器)。

YiKai Chen:

回复 user6008379:

协调器加NV_RESTORE断电复位后還是會用原來的網路資訊,所以你的终端還是可以用原來的網路資訊rejoin

user6008379:

回复 YiKai Chen:

ok RESTORE问题澄清了。
目前剩下最后一个问题。一个终端,一个协调器。终端正常连上协调器A。把协调器A断电,换一个烧录同样程序的协调器B上电,发现终端尝试多次都无法连上协调器B。
把协调器B断电,将协调器A重新上电,终端仍然可以连上协调器A。
请问怎么解决?

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