This is not for an application just purely discussion about ANT protocol.
Test case:
Three devices: M, S1 and S2
M opens up a master channel at 0.5Hz.
S1 opens up a slave channel at 0.5Hz to track M.
S2 opens up a slave channel at 0.5Hz to track M.
After S1 and S2 both tracked to M, have S1 and S2 send out an acknowledge broadcast at the same time try to have the acknowledge broadcast go out at the same time slot. Collision happens as expected, resulting in these cases:
A) because the RF signal got scrambled, M didn't receive a valid message, both S1 and S2 don't get ACK message and both S1 and S2 will generate a EVENT_TRANSFER_TX_FAILED.
B) S1 "overpowered" S2, M received S1's message successfully, M sent out a ACK message, S1 is happy and it will generate a EVENT_TRANSFER_TX_COMPLETED. Problem comes here: S2 is waiting for a ACK and in that time slot, S2 also received the ACK message M sent out for S1. So that S2 will generate a EVENT_TRANSFER_TX_COMPLETED too.
Not into a solution yet, just trying to confirm that this finding is correct based on ANT's design.
Thanks
Paul
Signature
BLE and ANT Developer using Nordicsemi nRF51422, ON, Canada