Handle retransmit timeouts
This commit is contained in:
parent
fe684f7a1d
commit
3068db1d50
|
@ -227,9 +227,17 @@ int main(int argc, char **argv)
|
||||||
size_t total_samples = 0;
|
size_t total_samples = 0;
|
||||||
double next_stats_print_time = old + 0.5;
|
double next_stats_print_time = old + 0.5;
|
||||||
|
|
||||||
|
double retransmit_time = 0.0;
|
||||||
|
|
||||||
while(m_running) {
|
while(m_running) {
|
||||||
double now = get_hires_time();
|
double now = get_hires_time();
|
||||||
|
|
||||||
|
if(retransmit_time != 0.0 && now >= retransmit_time) {
|
||||||
|
LOG(LVL_INFO, "Retransmit triggered.");
|
||||||
|
retransmit_time = 0.0;
|
||||||
|
layer2_tx_restart(&l2tx);
|
||||||
|
}
|
||||||
|
|
||||||
// fill the TX queue from the TUN device
|
// fill the TX queue from the TUN device
|
||||||
layer2_tx_fill_packet_queue(&l2tx);
|
layer2_tx_fill_packet_queue(&l2tx);
|
||||||
|
|
||||||
|
@ -285,6 +293,8 @@ int main(int argc, char **argv)
|
||||||
// ensure that the buffer is full before TX is turned on to avoid transmitting empty buffers
|
// ensure that the buffer is full before TX is turned on to avoid transmitting empty buffers
|
||||||
RESULT_CHECK(transmit(&sdr, whole_burst, burst_len));
|
RESULT_CHECK(transmit(&sdr, whole_burst, burst_len));
|
||||||
|
|
||||||
|
retransmit_time = get_hires_time() + 4.0;
|
||||||
|
|
||||||
if(!on_air) {
|
if(!on_air) {
|
||||||
LOG(LVL_INFO, "RX -> TX");
|
LOG(LVL_INFO, "RX -> TX");
|
||||||
RESULT_CHECK(sdr_stop_rx(&sdr));
|
RESULT_CHECK(sdr_stop_rx(&sdr));
|
||||||
|
@ -296,7 +306,7 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
on_air = true;
|
on_air = true;
|
||||||
} else if(on_air) { // ret == 0
|
} else if(on_air) { // TX on, but no more bursts to send
|
||||||
LOG(LVL_INFO, "TX -> RX");
|
LOG(LVL_INFO, "TX -> RX");
|
||||||
RESULT_CHECK(sdr_flush_tx_buffer(&sdr));
|
RESULT_CHECK(sdr_flush_tx_buffer(&sdr));
|
||||||
RESULT_CHECK(layer1_rx_reset(&rx));
|
RESULT_CHECK(layer1_rx_reset(&rx));
|
||||||
|
|
Loading…
Reference in a new issue