Other Parts Discussed in Thread: Z-STACK
Hello,
I'm having a strange issue with the zigbee stack that maybe someone else came across with but I couldn't find an answer in the forum.
The problem is my end device after a while refuses to leave the network after receiving the "Leave" message from the parent and continues to make data requests like nothing happened. The test was made in a network with 10 devices with some curious behavior. If I remove the parent it was paired with (and refused to leave), it detects the link loss and changes to a new parent but with no rejoin message, is this correct behaviour?
I'm using stack 3.0 since we also had this problem with the previous stack (1.2.2a) and thought maybe the and upgrade would fix the issue, but seems like the problem remains. This end device was based on the temperature sensor suplied as an example on the stack with the power saving feature enabled since our hardware is battery powered.
This is the compilation flags I have in the current code in case its relevant
POWER_SAVING
ISR_KEYINTERRUPT
BDB_REPORTING
SECURE=1
TC_LINKKEY_JOIN
NV_INIT
NV_RESTORE
NWK_AUTO_POLL
LCD_SUPPORTED=DEBUG
MULTICAST_ENABLED=FALSE
ZCL_READ
ZCL_WRITE
ZCL_BASIC
ZCL_IDENTIFY
I attached a sniffer file where we can watch the incorrect behaviour of the end device (shortAddr 0xA301).
So far what I tried to recover the device when the comunication is lost was:
ZDP_NwkAddrReq - To make sure the short adress of the device we are trying to acess is correct
NLME_RouteDiscoveryRequest - To force a unicast route discovery
ZDP_MgmtLeaveReq - Broadcast a Leave request to all routers and coordinators to force a end device rejoin
If someone has any idea of something that may mitigate the issue feel free to share, I'm running out of things to try and places to look and this isn't really something acceptable for the solution we are trying to design.