diff --git a/impl/src/main.c b/impl/src/main.c index a2d31cd..088a530 100644 --- a/impl/src/main.c +++ b/impl/src/main.c @@ -179,6 +179,8 @@ int main(int argc, char **argv) bool on_air = true; + srand((int)(get_hires_time() * 1e6)); + // ** Initialize ** char devname[IFNAMSIZ] = "hamnet70"; @@ -296,8 +298,6 @@ int main(int argc, char **argv) // ensure that the buffer is full before TX is turned on to avoid transmitting empty buffers RESULT_CHECK(transmit(&sdr, whole_burst, burst_len)); - retransmit_time = get_hires_time() + 4.0; - if(!on_air) { LOG(LVL_INFO, "RX -> TX"); RESULT_CHECK(sdr_stop_rx(&sdr)); @@ -318,6 +318,8 @@ int main(int argc, char **argv) RESULT_CHECK(sdr_start_rx(&sdr)); on_air = false; + retransmit_time = get_hires_time() + 1.0 + 1.0 * rand() / RAND_MAX; + block_tx_for(TX_SWITCH_BACKOFF_AFTER_RX_ON); } }