1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2026-03-01 13:29:46 +00:00
This commit is contained in:
Carles Fernandez
2026-01-28 21:12:51 +01:00
parent 939ba5f32b
commit 874cbab484
3 changed files with 9 additions and 20 deletions

View File

@@ -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)

View File

@@ -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};
};

View File

@@ -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),