I’m using XBee and XBee-PRO ZB modules in network made of 1 coordinator and 4 end devices.
There has been a weird message loss problem and now I seem to have found the possible cause. The PC program talking to coordinator is programmed to do the node discovery (ND AT command) periodically every 5 seconds but it seems that during discovery normal ZigBee messages can get lost.
There’s a clear connection between the failure and ND because when i increased ND period to 1 minute then failures also started to occur around that time.
Furthermore - it’s not just messages which don’t arrive, it’s also the ZigBee transmit status frame which miss.
I couldn’t find any explanation to this in manual so may somebody (from Digi) explain this? Should it be so or am I doing something wrong?
You need to exit command mode before you can receive data. That is to say, you need to wait for the ND command to finish and you need to exit command mode before you can send and receive RF data .
I forgot to mention i’m using API mode 1 and it does not require (at least it works without) entering or exiting command mode. But i get the point - ND is a command mode query and it that mode network is down.
But then I have a question - how could i realize what devices are connected without ND ? There’s a join notification (JN=1) which end devices can send to network (and coordinator) but there’s no disconnection notification. Ok, i can use some heartbeat message to realize end device disconnection but sometimes it’s not a real disconnection and then device can be online again after a while without JN and coordinator gets messages from device which it thought had disconnected (and erased it’s record already).
One more thing - if coordinator is doing ND and end device transmits ZigBee message then ZigBee transmit status frame does not arrive at all to device. Shouldn’t it return the fault code at least?