This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EndDevice入网问题

Other Parts Discussed in Thread: Z-STACK, CC2530

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

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

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

请问怎么debug?

  • 抓包看看是什麼狀況
  • “如果终端先上电,协调器后上电,终端无法连上协调器。” 建议这部分抓包一下,帮助判断问题
  • 我们做了这样一个实验,请帮忙分析一下。
    协议栈:Z-Stack 2.5.1a (不要说太旧了,在CC2530跑这个还真顺畅,换成3.0各种资源不足)
    芯片:CC2530,终端和协调器都是
    工程模板:GenericApp

    问题描述:终端先上电,协调器后上电,终端连不上协调器,现象表示为协调器收不到终端定时发来的消息;需要复位终端,才能通讯。
    解决方法:我们在协调器加上NV_RESTORE宏定义,终端不加,可以解决上述问题。
    请问,为什么终端没有加NV_RESTORE可以解决上述问题?
    我们的应用中,终端是电池供电,终端只是发消息给协调器,不接收协调器通知。不想在终端加NV_RESTORE,因为不方便在更换协调器后通知终端清除NV。
  • 有沒有抓包先分析是什麼狀況?
  • 这是协调器不定义NV_RESTORE情况下,复位协调器后终端无法入网,抓取协调器侧数据包的情况。

    Coordinator-without-nv-restore.psd

  • 协调器不定义NV_RESTORE,复位协调器后會重新組網,除非终端也不不定义NV_RESTORE,不然复位协调器后终端无法入网是正常的
  • 如果要断电复位后恢复网络,终端和协调器都要添加NV_RESTORE
  • 所以我来问为什么我只在协调器加NV_RESTORE就感觉解决问题了。
    我的应用中终端只发不收,如果加了NV_RESTORE,无法通知终端清除NV(比如更换了协调器)。
  • 协调器加NV_RESTORE断电复位后還是會用原來的網路資訊,所以你的终端還是可以用原來的網路資訊rejoin
  • ok RESTORE问题澄清了。
    目前剩下最后一个问题。一个终端,一个协调器。终端正常连上协调器A。把协调器A断电,换一个烧录同样程序的协调器B上电,发现终端尝试多次都无法连上协调器B。
    把协调器B断电,将协调器A重新上电,终端仍然可以连上协调器A。
    请问怎么解决?
  • 先請你說明一下你這個新的測試NV_RESTORE是怎樣的設置

  • 我也有这个问题请教,协调器和终端均开启了NV_RESTORE,并稳定运行了一段时间后,更换了一个新的协调器,并且将新协调器烧录成与旧协调器同样的程序、PAN ID、信道等,但原有终端因环境制约不能重启,导致终端不能连接新的协调器,如何解决,谢谢

  • 參考一下