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.

终端节点Data Request突然停止?程序未跑死

Other Parts Discussed in Thread: Z-STACK, CC2530

协议栈:Z-Stack 1.2.2a

CPU:CC2530

节点:一个协调器,一个终端节点

使用场景:试验室内,短距离,终端节点使能低功耗,每1s发送一次Data Request;每2min发送40字节数据包;

问题描述:测试发现,不定时地(10几分钟或10几个小时)出现Data Request停止发送的现象(使用抓包工具观察);我的硬件上有一个指示灯和一个按键,每点击一次按键,指示灯闪烁一次,当Data Request停止发送后,点击按键,指示灯正常闪烁,说明程序未跑飞(而且我使能了看门狗)。

请问:

1.Data Request这个功能实现的代码在哪?

2.我对协议栈的修改很少,有可能是哪里出现了错误呢?

  • 更正下,协议栈是协议栈:Z-Stack Home 1.2.2a

  • 使用仿真器发现出现问题的时候,NLME_NetworkDiscoveryRequest总是返回ZNwkInvalidRequest,导致程序死循环于ZDO_NETWORK_INIT事件。

    现象和下面这个帖子一样

    http://e2e.ti.com/support/wireless_connectivity/zigbee_6lowpan_802-15-4_mac/f/158/p/390470/1378541#pi239031350=1

    ZDAPP.c中的状态机没有修改

  • 在停止发送data request之前,这个节点发生了什么? 还是一切都正常的情况下,突然停止了。

    _NIB.nwkState == NWK_ENDDEVICE满足的话,NLME_NetworkDiscoveryRequest就会返回ZNwkInvalidRequest

    如果在停止以后,你调用NLME_SetPollRate( 1000 );还能正常发么?

  • @VV 感谢答复

    1.在停止发送data request之前,这个节点发生了什么? 还是一切都正常的情况下,突然停止了。

    停止之前,节点的data request没有收到父节点ack,而进入orphan和rejoin状态,通过sniff观察orphan notification和beacon request都没有发出来,而是停止了发送任何信息。

    2._NIB.nwkState == NWK_ENDDEVICE满足的话,NLME_NetworkDiscoveryRequest就会返回ZNwkInvalidRequest

    _NIB.nwkState == NWK_ENDDEVICE满足。当ZED掉网后,_NIB.nwkState不应该自动改变为其他状态么,为何还是在NWK_ENDDEVICE?

    3.如果在停止以后,你调用NLME_SetPollRate( 1000 );还能正常发么?

    这个暂时没有尝试。

  • 碰到这个问题,请问最后找到原因了吗