Commit Graph
10735 Commits
Author SHA1 Message Date
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 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
Vladslav P ec3317c20a pcps_acquisition: fix crash in PcpsAcquisitionAdapterCustom::set_local_code
... when Acquisition_5X.coherent_integration_time_ms is greater than 1.
In this case vectors codeQ_, codeI, codeQ are constructed with
code_length size, but written with vector_length which results in
arbitrary memory overwriting and crash.
Construct these arrays with vector_length sizeto make sure that there
will be enough space for all primary code replicas and zero padding.

Signed-off-by: Vladslav P <vladisslav2011@gmail.com>
2026-06-29 14:19:32 +03:00
Carles Fernandez 5769529a11 Fix rebuilding 2026-06-29 12:26:40 +02:00
Carles Fernandez 47580c4eb4 volk_gnsssdr: do not write files in source tree when building 2026-06-29 12:26:00 +02:00
Carles Fernandez 0b131707a5 Fix defects detected by Coverity Scan 2026-06-28 14:57:40 +02:00
Carles Fernandez 38d5fbbd04 Use traditional token representation for logical C++ operators and add clang-tidy check 2026-06-28 03:47:13 +02:00
Carles Fernandez e8e67a2278 cpu_festures: avoid undefined behaviour conversions from unaligned char* to int* 2026-06-28 01:47:54 +02:00
Carles Fernandez c29d4d7c9e CMake: bump local version of Armadillo to 15.4.x and PugiXML to 1.16 2026-06-28 01:35:00 +02:00
Carles Fernandez 419968d0a0 CMake: move bundled Protobuf build logic into module
Bump the bundled Protobuf version to 35.1
2026-06-28 00:40:45 +02:00
Carles Fernandez 0e124792f8 Remove unused include 2026-06-26 22:26:30 +02:00
Carles Fernandez 59125ea83d Fix LabSat header parsing 2026-06-26 21:38:38 +02:00
Carles Fernandez d0d10ee824 Fix LabSat single-channel endian decoding 2026-06-26 21:25:08 +02:00
Carles Fernandez 2bdc1406f9 Fix conversion in LabSat source 2026-06-26 17:11:35 +02:00
Carles Fernandez 8c71ede29c Fix test building 2026-06-26 16:30:32 +02:00