From 874cbab4841308fab760272fa76bbf4237707bb8 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 28 Jan 2026 21:12:51 +0100 Subject: [PATCH] Clean up --- .../gnuradio_blocks/dll_pll_veml_tracking.cc | 21 +++++++------------ .../gnuradio_blocks/dll_pll_veml_tracking.h | 6 +----- .../tracking/libs/bit_synchronizer.h | 2 +- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index a781975f0..abda525e5 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -1303,6 +1303,7 @@ void dll_pll_veml_tracking::configure_bit_synchronizer() cfg.bit_period_ms = d_symbols_per_bit * d_correlation_length_ms; cfg.epoch_ms = d_correlation_length_ms; cfg.min_events_for_lock = 5; + cfg.stable_best_required = 3; d_bit_sync = HistogramBitSynchronizer(cfg); } @@ -1946,36 +1947,28 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) { if (d_use_histogram_bit_sync) { - const bool lock_event = d_bit_sync.update(d_P_accu, true); - - if (lock_event) { d_wait_for_bit_edge = true; - - const std::int64_t k_now = d_bit_sync.get_epoch_count() - 1; - const int wait = d_bit_sync.epochs_until_next_edge(); // computed from k_now internally - d_bit_sync_target_epoch = k_now + wait; // <-- add this member (int64_t) + const int wait = d_bit_sync.epochs_until_next_edge(); + d_bit_sync_target_epoch = k_now + wait; } - if (d_wait_for_bit_edge) { const std::int64_t k_now = d_bit_sync.get_epoch_count() - 1; - - if (k_now == d_bit_sync_target_epoch) { next_state = true; d_wait_for_bit_edge = false; + LOG(INFO) << d_systemName << " " << d_signal_pretty_name << " histogram bit synchronization locked in channel " << d_channel + << " for satellite " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN); + std::cout << d_systemName << " " << d_signal_pretty_name << " histogram bit synchronization locked in channel " << d_channel + << " for satellite " << Gnss_Satellite(d_systemName, d_acquisition_gnss_synchro->PRN) << '\n'; } } - - if (next_state) - { - } } if (!next_state) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h index 73b17227a..1066b861e 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h @@ -184,6 +184,7 @@ private: float d_rem_carr_phase_rad; uint64_t d_tow_from_telemetry_ms{}; + int64_t d_bit_sync_target_epoch{}; int32_t d_wn_from_telemetry{}; int32_t d_symbols_per_bit; @@ -217,12 +218,7 @@ private: bool d_enable_extended_integration; bool d_Flag_PLL_180_deg_phase_locked; bool d_use_histogram_bit_sync; - - - bool d_wait_for_bit_edge{false}; - int64_t d_bit_sync_lock_epoch{0}; - int64_t d_bit_sync_target_epoch{0}; }; diff --git a/src/algorithms/tracking/libs/bit_synchronizer.h b/src/algorithms/tracking/libs/bit_synchronizer.h index 271b84923..9855f714f 100644 --- a/src/algorithms/tracking/libs/bit_synchronizer.h +++ b/src/algorithms/tracking/libs/bit_synchronizer.h @@ -128,7 +128,7 @@ public: Config() : bit_period_ms(20), epoch_ms(1), - min_events_for_lock(20), + min_events_for_lock(5), dominance_ratio(0.6), stable_best_required(5), min_prompt_mag(0.0f),