Commit Graph
10748 Commits
Author SHA1 Message Date
Carles Fernandez a7e72cd522 Fix Galileo reduced CED handling 2026-07-19 10:10:56 +02:00
Carles Fernandez 4ca75aaa6e Fix handling of Galileo alert page 2026-07-19 00:51:16 +02:00
Carles Fernandez 091452251d Fix Galileo UTC model flag 2026-07-19 00:33:23 +02:00
Carles Fernandez f0482371fe Fix ISM mask 2026-07-18 07:46:04 +02:00
Carles Fernandez 07fb80e132 Fix GGTO handling (see ICD 5.1.8) 2026-07-17 21:29:38 +02:00
Carles Fernandez 289096ae8e Fix t0_ISM overflow 2026-07-17 20:58:17 +02:00
Carles Fernandez cec340f4aa Propagate broadcast SISA and NAPA to PVT 2026-07-17 20:49:00 +02:00
Carles Fernandez 72fc53c2c6 Fix Broadcast Group Delay application in Galileo E1 signals 2026-07-17 20:24:56 +02:00
Carles Fernandez badcf81c87 Merge branch 'fix-double-pvt' into next 2026-07-16 15:12:42 +02:00
Carles Fernandez 7bcaab8e57 Make clang-tidy happy 2026-07-16 14:45:41 +02:00
Carles Fernandez fea1ab82d6 Fix date in default example 2026-07-16 14:17:24 +02:00
Carles Fernandez 93967135ff Fix date in old files processing 2026-07-16 13:41:00 +02:00
Carles Fernandez f25af397ed Revive broken RTKLibSolverTest 2026-07-16 12:31:00 +02:00
Carles Fernandez 05cf7e7aed Fix double PVT solve and dump when Rx clock correction is disabled 2026-07-16 11:14:12 +02:00
Carles Fernandez 74654a8ad6 Improve adjustment of bit sync 2026-07-16 09:47:41 +02:00
Carles Fernandez dffad39802 Fix formatting 2026-07-15 01:49:50 +02:00
Carles Fernandez 5e14095728 Improve consistency in binary operation token representation 2026-07-15 01:43:41 +02:00
Carles Fernandez 4f42d2d892 Make clang-tidy happy 2026-07-15 00:49:09 +02:00
Carles Fernandez 29118dd7d2 Improve histogram-based navigation bit synchronization robustness 2026-07-14 15:58:41 +02:00
Carles Fernandez 6c843ca1ba Fix formatting 2026-07-09 21:06:11 +02:00
Carles Fernandez 1f1714cf03 Fix formatting 2026-07-09 21:01:39 +02:00
Carles Fernandez c712da99d7 Merge branch 'vladisslav2011-fix_nmea_missing_snr' into next 2026-07-09 20:59:44 +02:00
Carles Fernandez a5811e62a5 Add multi-band NMEA test and preserve GNSS signal IDs for NMEA GSV SNR reporting 2026-07-09 18:04:14 +02:00
Vladslav P 741edd4c65 PVT: Fix missing SNR in NMEA sentences
Propagate SNR from all bands instead of L1 only to rtkpos.

Signed-off-by: Vladslav P <vladisslav2011@gmail.com>
2026-07-09 04:04:15 +03:00
Carles Fernandez 7de0415b11 Merge branch 'better-trk' of github.com:carlesfernandez/gnss-sdr into next 2026-07-05 15:11:38 +02:00
Carles Fernandez 80d24ee105 Fix vanishing correlation peak in acquisition grid plots of long codes 2026-07-05 13:50:21 +02:00
Carles Fernandez b3c4dbccaf Merge branch 'better-acq' into next 2026-07-05 13:47:44 +02:00
Carles Fernandez 8f757b8c21 Merge branch 'vladisslav2011-qzss-nmea-fix' into next 2026-07-05 10:11:57 +02:00
Carles Fernandez 47c79a05e6 Update CHANGELOG.md 2026-07-05 10:03:24 +02:00
Carles Fernandez 6bc138fbed Merge branch 'qzss-nmea-fix' of https://github.com/vladisslav2011/gnss-sdr into vladisslav2011-qzss-nmea-fix 2026-07-04 17:15:16 +02:00
Carles Fernandez 0889a2030b Merge branch 'vladisslav2011-qzss_l1cb' into next 2026-07-04 17:13:49 +02:00
Carles Fernandez 64075065a9 Fix building in old compilers 2026-07-04 16:13:56 +02:00
Carles Fernandez 028ebe433d QZSS: refine L1 C/B support
- Restore true chip semantics for L1: QZSS_L1_CHIP_RATE is 1.023 Mcps and
  QZSS_L1_CODE_LENGTH is 1023 chips again. The replica carries
  QZSS_L1_SAMPLES_PER_CHIP = 2 samples per chip (L1 C/A chips duplicated,
  L1 C/B sinBOC(1,1) subchips), following the Galileo E1 approach. The
  generated waveform is unchanged, but Tracking_1J.early_late_space_chips
  is expressed in chips again, consistently with all other signals.
- Normalize the DLL discriminator with the sinBOC(1,1) correlation
  function when the tracked PRN broadcasts L1 C/B, selected per PRN in
  start_tracking(); warn if the configured correlator spacing falls
  outside the BOC(1,1) correlation main peak (> 0.33 chips).
- Attribute L1 C/B observables and ephemerides (PRN 203-206) to the PRN
  of the satellite's nominal PNT signals (RINEX 4.00, Table 6), so RINEX,
  RTCM and rtklib identify the transmitting satellite correctly and
  multi-frequency observations of the same satellite are paired instead
  of counted twice.
- Do not search QZSS L5 signals for PRNs above 202, which have no L5
  PRN code assigned in IS-QZSS-PNT.
- Remove reserved, non-operational PRNs 198 and 202 from the default
  QZSS search list; they remain selectable via the QZSS.prns option.
- Fix a potential std::out_of_range in
  GNSSFlowgraph::priorize_satellites() when assisted acquisition
  prioritizes satellites of a constellation with only a subset of its
  signals configured.
2026-07-04 15:31:03 +02:00
Carles Fernandez 75e21aeedb Merge branch 'qzss_l1cb' of https://github.com/vladisslav2011/gnss-sdr into vladisslav2011-qzss_l1cb 2026-07-04 13:34:20 +02:00
Carles Fernandez 6848bcb1f6 Merge branch 'fix-monitor' into next 2026-07-04 10:37:19 +02:00
Carles Fernandez 339ed2b0b4 LabSat source: avoid undefined behaviour in malformed files 2026-07-03 21:27:33 +02:00
Carles Fernandez ed5a75e31e Make the Monitor report channels without a valid time reference
The Monitor block is fed from the Observables output, which only
produced data for channels with a decoded time of week. Galileo E6
channels cannot obtain the TOW from HAS pages alone, so E6-only
configurations never produced any Monitor output. When
Monitor.enable_monitor=true, the Observables block now emits every
epoch, filling channels without valid observables with their latest
tracking data (C/N0, Doppler, carrier phase), flagged as invalid so
that the PVT engine and other consumers keep ignoring them.

Fixes #1018
2026-07-03 21:24:17 +02:00
Vladslav P dc0d9f5dfd QZSS: add L1 C/B primary code generation test
And fix failing L1 C/A primary code generation tests

Signed-off-by: Vladslav P <vladisslav2011@gmail.com>
2026-07-03 20:31:52 +03:00
Vladislav P 1146a5285c QZSS: L1C/B implementation
Increase QZSS L1 chip rate to 2.046MHz to handle L1 C/B BOC(1,1)
sequences
Increase QZSS L1 code length to 2046 to handle L1 C/B BOC(1,1)
sequences
Increase maximum QZSS PRN to 206
Implement optional BOC(1,1) sequence generation

Signed-off-by: Vladislav P <vladisslav2011@gmail.com>
2026-07-03 20:27:37 +03:00
Vladislav P 137f15c2aa nmea_printer: add GPS and QZSS GSA/GSV tests
Signed-off-by: Vladislav P <vladisslav2011@gmail.com>
2026-07-03 13:25:14 +03:00
Carles Fernandez 870997d7cc Update chnagelog 2026-07-02 22:43:57 +02:00
Carles Fernandez 0328dd38b6 kf_tracking: fuse pilot and data correlation into a single wipe-off pass
Results are bit-for-bit equivalent to the previous two-correlator
implementation, verified over 3- and 5-tap configurations with both the
normal and high-dynamics resampler paths.
2026-07-02 22:36:01 +02:00
Vladslav P c19e24a3b4 rtklib_solution: implement QZGSA/QZGSV sentences
Signed-off-by: Vladslav P <vladisslav2011@gmail.com>
2026-07-01 03:20:28 +03:00
Carles Fernandez fa96ce13a0 Fuse pilot and data correlation into a single carrier wipe-off pass
When tracking the pilot component, dll_pll_veml_tracking previously ran
two separate carrier wipe-off passes over the same input samples: one
for the pilot correlator taps and a second, redundant pass through a
dedicated Cpu_Multicorrelator_Real_Codes instance to compute only the
data prompt. The carrier rotation dominates the per-sample cost, so it
was effectively being computed twice over identical data.
Extend Cpu_Multicorrelator_Real_Codes with optional data-prompt support
(init with has_data_prompt, set_data_code_and_prompt_tap, and
Carrier_wipeoff_multicorrelator_resampler_with_data_prompt) that
resamples one extra local-code buffer for the data prompt and computes
all pilot taps plus the data prompt under a single carrier rotator via
one VOLK_GNSSSDR xN kernel call. Scratch buffers are allocated at init,
so there are no per-call heap allocations in the hot path. Both the
normal and high-dynamics resampler/rotator paths are preserved, and the
second correlator instance is no longer used for CPU VEML tracking.
Results are bit-for-bit equivalent to the previous two-pass
implementation.
This cuts tracking-loop time by ~33% (about 1.5x throughput) for
pilot-tracked signals (GPS L5, Galileo E1/E5a/E5b/E6, QZSS L5). Data-only tracking
(track_pilot = false) is unchanged.
2026-06-30 21:37:22 +02:00
Carles Fernandez 3bfbb1904d Prepare PCPS grids for batch FFT processing
Store PCPS Doppler wipeoffs and magnitude grids in flat, stride-aligned buffers instead of nested vectors. This reduces per-row indirection, improves cache locality, and makes the Doppler-bin data layout suitable for future batch FFT planning.
2026-06-30 20:29:50 +02:00
Carles Fernandez bdfc7883fd Acquisition: reuse PCPS assisted and fine Doppler buffers 2026-06-30 20:04:51 +02:00
Carles Fernandez 32e1aac6f6 Improve QuickSync acquisition implementation
Move QuickSync acquisition temporary buffers out of general_work() and
initialize them once in the block constructor. Clear the FFT input buffer
directly with std::fill_n() for each Doppler bin instead of recreating and
copying d_signal_folded.
2026-06-30 19:53:50 +02:00
Carles Fernandez b898bcad28 Fix segmentation fault when receiving QZSS signals and the RTCM printer is enabled 2026-06-29 16:09:37 +02:00
Carles Fernandez ba3e8982f5 Merge branch 'vladisslav2011-galileo-E5-acquisition-crash-fix' into next 2026-06-29 13:41:43 +02:00
Carles Fernandez 2c911ba8f6 Merge branch 'galileo-E5-acquisition-crash-fix' of https://github.com/vladisslav2011/gnss-sdr into vladisslav2011-galileo-E5-acquisition-crash-fix 2026-06-29 13:31:20 +02:00