Q: FAQ: Polling at long intervals (Z-Stack, ZigBee)

Setting polling intervals longer than what is provided using the timer in 16 bit mode.

If you would like to poll at a rate of more than the approximately 1/minute configuration using the 16 bit MAC timer, you can try one of two things. The first is to keep your own timer in the application and directly invoke the call NwkPollReq() function to do a single poll. However the issue here is that the parent (router) you are polling will probably have thrown the message away after some time as it is limited to how long it buffers a message for a sleeping child. The other option is that if the sleeping device’s application sends an application level message asking for this information with application level acknowledgements on, when it receives the ACK it will know the coordinator received the message and it will expect to receive the application data response in the near future. Since it is expecting the message you can call NLME_SetPollRate(…) to change the poll rate temporarily until the expected message is received (or some timeout occurs). After receiving this message you can then call set poll rate again with a value of 0 to turn polling back off. This way the device polls when you are expecting something and is quiescent the rest of the time.