I am using Zigbee 3.0. When I transmit a lot of commands I get E_ZCL_ERR_ZTRANSMIT_FAIL errors. I dug a little deeper into the error message and found that I am getting ZPS_XS_E_NO_FREE_MCPS_REQ (0x85) and ZPS_XS_E_NO_FREE_LOOPBACK (0x86) Extended Errors.
The comments from the file zps_nwk_pub.h explain about these errors:
ZPS_XS_E_NO_FREE_MCPS_REQ, // 0x85 There are no free MCPS request descriptors. There are 8 MCPS request descriptors. These are only ever likely to be exhausted under very heavy network load or when trying to transmit too many frames too close together.
ZPS_XS_E_NO_FREE_LOOPBACK, // 0x86 The loop back send is currently busy. There can be only one loopback request at a time.
My question is:
Is it possible to monitor the MCPS request descriptors so that I can see when I am getting to the limit? This way I could delay sending a new transmit until there is was at least 1 MCPS request descriptor available.