Hi,
I'm quite new to ZigBee and Z-Stack. I'm trying to send messages to sleeping end devices by using indirect messaging. I'm using sample light and sample switch for testing purposes. The indirect messaging itself works, but I can't get error messages out of the system for buffer overflows. I'm having two different configurations, where I'm trying to get different outcomes. I have ZStack-MSP2618-2.2.0-1.3.0 in use.
Case1:
Coordinator - Router - End device
Coordinator and router are sample switches and end device is the sample light. I bind coordinator and end device, so they are working together nicely. I have increased the msg hold time for router and coorinator to 30mins and set the maximum msg hold number for devices to 3:
nwk_globals.c:
// To hold msg for sleeping end devices for 30 mins:
#define CNT_RTG_TIMER 60
#define NWK_INDIRECT_MSG_TIMEOUT 30
// Maximum msgs to hold per associated device.
#define NWK_INDIRECT_MSG_MAX_PER 3
I have increased the polling rate for end device to 10seconds so messages will surely be queued so the buffer will overflow in that time frame.
So what I'm trying to accomplish here is to find out, how to make router send Network Status Command (see ZigBee spec) with status code "0x05 No indirect capacity" back to message originator (here it would be the coordinator). I'm sending more than 20 messages between the end device polls. From packet sniffer I can see that all messages are sent to router and acknowledeged, but router never sends the Network Status Command "0x05 No indirect capacity". I have also tried the scenario by disabling the end device polling, and the outcome is the same. Any ideas?
Case2:
Coordinator - End device
Same settings as in case1. Here I'm trying to get TRANSACTION_OVERFLOW error (see 802.15.4 spec) to application level. Like in case1, I'm generating so many messages that it should make the overflow in coordinators indirect buffer. How can I catch the TRANSACTION_OVERFLOW error?
Thanks,
Markus