I am transmitting relatively infrequently (e.g., every minute or so) between two series 2 Xbees that are within 10 feet of each other. It’s critical in my application that both the transmitter and receiver have the same understanding as to whether the receiver received the RX frame. So, if an ACK wasn’t received by transmitter, it’s critical that the receiver in fact didn’t get the RX frame. And similarly, if an ACK was received, it’s critical that the receiver received the RX frame. How wise would it be for me to rely on the ACK for this vs. adding some other layer of checking at the application level? I saw you answered a similar question recently and said that the ACK is no guarantee, but does the answer change under the conditions I’m describing? Thanks!
Even over a single hop and short distance it is possible (even if rare) for the TX device to indicate failure when the RX device actually received and processed the frame. It’s also important to recognize that the TX status is only an indication at the network layer.
Also important to recognize that a reset of the XBee or your co-processor, issues on the serial port, etc could all result in a TX status success without your application actually processing the message.
From your description of it being critical I would definitely add application level acknowledgement and sequencing to ensure both sides remain synchronized under any conditions.