This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Broadcast message delivery dupliction

Hi,

I have 2 routers and a coordinator in a simple test system.

An application on router A sends a single broadcast message every 30 seconds.

I have MAX_BCAST_RETRIES set to the default value 2. This results in both router A and the coordinator retransmitting the broadcast as expected.

My problem is that a listening application on router B is receiving the same broadcast message many times.

The Zigbee standard (Section 2.2.8.4.2 Reception and Rejection, page 67) talks extensivly about guarding against duplicate message delivery using the message ApsCounter.

I can not see any test of ApsCounter in the ZStack function afIncomingData in AF.c.

I is this guard implemented in ZStack, if so how do I enable it?

Steve.

 

 

 

  • I've got the same question regards the rejection of duplicates since it doesn't seem to work... :-/

  • Using the ZStack 2.4.0-1.4.0 installer, I changed GenericApp as you can see in the attached file to send a broadcast every 30 seconds with an incrementing counter in the Application layer payload if Key3 is pressed. Any device receiving broadcasts will keep a shadow of the incrementing counter and increment a "duplicates" counter and display the last counter received and its duplicates counter on LCD Line 1. I don't see the duplicates counter counting, so it looks like the stack only passes up to the Application layer 1 copy of the broadcast every 30 seconds.

    GenericApp.zip
  • Thanks a lot Dirty Harry,

    first of all sorry, I was reading so many threads I didn't realise this one was for broadcasts, my problem was with unicast messages. Although I believe the behaviour is the same, so your answer got me thinking even harder on my problem.

    It turns out I am to blame ( surprise? maybe not :) ), at the application level I want to be sure a message is delivered, so I resend it if after some seconds if I didn't got its corresponding ACK. I though this was good, but didn't realise that because AF_DataRequest increments the MsgID, when I resend it the goes with another MsgID although its content is the same. So I believe this causes the devices to think their seeing a different message and therefore I may received duplicates.

    So, thanks.

     

    Best Regards,

    André