diff --git a/Transceiver52M/ms/ms.cpp b/Transceiver52M/ms/ms.cpp index ca41144f..b8710a6f 100644 --- a/Transceiver52M/ms/ms.cpp +++ b/Transceiver52M/ms/ms.cpp @@ -130,7 +130,7 @@ void ms_trx::submit_burst(blade_sample_type *buffer, int len, GSM::Time target) tosend.decTN(-diff_tn); // in theory fn equal and tn+3 equal is also a problem... - if (diff_fn < 0 || (diff_fn == 0 && (now_time.TN() - target_tn < 1))) { + if (diff_fn < 0 || (diff_fn == 0 && (target_tn-now_time.TN() < 3))) { std::cerr << "## TX too late?! fn DIFF:" << diff_fn << " tn LOCAL: " << now_time.TN() << " tn OTHER: " << target_tn << std::endl; return; diff --git a/Transceiver52M/ms/ms_upper.cpp b/Transceiver52M/ms/ms_upper.cpp index 63c222f2..db15226f 100644 --- a/Transceiver52M/ms/ms_upper.cpp +++ b/Transceiver52M/ms/ms_upper.cpp @@ -258,6 +258,7 @@ void upper_trx::driveReceiveFIFO() trxcon_phyif_handle_burst_ind(g_trxcon, &bi); } + burstTime.incTN(2); struct trxcon_phyif_rts_ind rts { static_cast(burstTime.FN()), static_cast(burstTime.TN()) };