From the documentation, I have a hard time understanding how the number and spacing of retries in EasyLink_transmitCCAAsync() are supposed to work. The docs say:
This function is a non blocking call to send a packet. It will check for a clear channel prior to transmission. If the channel is busy it will backoff for a random period, in time units of EASYLINK_CCA_BACKOFF_TIMEUNITS, before reassessing. It does this a certain number (EASYLINK_MAX_CCA_BACKOFF_WINDOW - EASYLINK_MIN_CCA_BACKOFF_WINDOW) of times before quitting unsuccessfully and running to the callback. If the Tx is successfully scheduled then the callback will be called once the Tx is complete.
1. "it will backoff for a random period". So this random period is at least (EASYLINK_CCA_BACKOFF_TIMEUNITS * EASYLINK_CCA_BACKOFF_TIMEUNITS) long? And no more than ( EASYLINK_MIN_CCA_BACKOFF_WINDOW * EASYLINK_CCA_BACKOFF_TIMEUNITS) long?
2. If not, what are the minimum and maximum "random periods" between each CCA?
3. How many CCA attempts are there? It it exactly (EASYLINK_MAX_CCA_BACKOFF_WINDOW - EASYLINK_MIN_CCA_BACKOFF_WINDOW) times as the docs say? In that case, with the default values in EasyLink.h, there would be 224 CCA attempts. So the total max length of time between first CCA and last CCA would be 224 times the "random period"?
Thank you.