Commit Graph
22 Commits
Author SHA1 Message Date
Carles Fernandez 75ae5ce4e4 Allow BeiDou B2a signals in multi-band configurations 2026-09-16 07:47:19 +02:00
Carles Fernandez e6ebb77c75 WARMSTART keeps the almanac already in memory instead of clearing it
and reloading it from the XML assistance files, which could replace a
fresher, live-decoded almanac with a stale snapshot from disk, and the
handler now uses the visible-satellite list it computed instead of
prioritizing an empty one.
2026-09-14 16:37:38 +02:00
Carles Fernandez bcb5b7228b Extend visibility-aware search and fix dual-band acquisition scheduling
Visibility-aware acquisition search (GNSS-SDR.enable_visibility_aware_search):
- Classify GLONASS and QZSS satellites too. GLONASS positions come from the
  GNAV almanac (new Glonass_Gnav_Almanac::satellite_position with the
  standard perturbation model), so the search order benefits before any
  GLONASS ephemeris is decoded.
- PVT publishes a lock-free navigation snapshot (ephemeris, almanac, UTC
  models per system) that the classifier reads instead of locking the PVT
  maps on every recompute.
- Recompute on new navigation data, on position changes larger than
  visibility_recompute_position_threshold_m, every
  visibility_recompute_interval_s, and when the almanac ages out; fix the
  periodic and position-triggered recomputes that never fired, and the
  off-by-one that excluded satellites in [mask, mask+1) degrees.
- Enter the start-up standby only when the feature is enabled, so the
  default search order is untouched.

Secondary-frequency acquisition assistance:
- Do not start an acquisition on the PRN 0 placeholder left on assisted
  channels at connect time; it threw inside the control thread and left the
  flowgraph running headless with the secondary band never acquired.
- Match GLONASS assistance by FDMA frequency channel: the search pool keeps
  one slot per channel while tracked L1 channels report the decoded slot, so
  L2 was never picked.
- Assist from locked channels before their telemetry is decoded: the
  observables status now reports tracking-only channels and the flowgraph
  keeps a separate tracking map for the assisted search.
2026-09-12 14:15:00 +02:00
joebre f87e07513d Warm start: keep in-memory almanac instead of reloading from XML
WARMSTART used to clear ephemeris and almanac and then reload both
from local XML assistance files, which can silently regress the
receiver's live-accumulated almanac (new satellites/pages demodulated
since last start) back to whatever stale snapshot happens to be on
disk. It also never wrote anything back to disk first, so this was a
one-way loss with no merge.

Add PvtInterface::clear_ephemeris_keep_almanac(), which clears only
the ephemeris maps and leaves almanac untouched, and use it in
WARMSTART instead of clear_ephemeris() + read_assistance_from_XML().
This matches the classic cold/warm/hot start table (warm: almanac
current, ephemeris unknown/stale) using whatever almanac the receiver
already has, rather than a file that can't be any more current than
that.

Also fixes get_visible_sats()'s return value never being assigned to
visible_satellites in the WARMSTART handler, so priorize_satellites()
was always reordering the queue with an empty list.
2026-09-09 16:42:17 +02:00
Carles Fernandez 5454bc22ee Complete BeiDou D1/D2 DNAV decoding 2026-07-31 19:11:58 +02:00
Carles Fernandez 7308745f05 Apply more concise file header format
Re-license CMake scripts with BSD-3-Clause
2020-12-30 13:35:06 +01:00
Carles Fernandez 287284261c Make use of Doxygen grouping feature
Improve Modules page in generated HTML documentation
2020-11-01 13:37:19 +01:00
Carles Fernandez 499de7a9f1 Update file headers 2020-07-28 16:57:15 +02:00
Carles Fernandez 955348b080 Remove trailing underscore in header guards 2020-02-08 10:10:46 +01:00
Carles Fernandez 4d0d263280 Make the software package compliant with the REUSE Specification v3.0 (see https://reuse.software/spec/)
Update license headers to SPDX format (see https://spdx.org/)
Add license to all files
Add CI job in GitHub Actions to ensure compliance
2020-02-08 01:20:02 +01:00
Carles Fernandez 9023f19794 Use C++ comments for final #endif in headers 2020-01-26 22:23:22 +01:00
Carles Fernandez c31d9dea40 Fix errors risen by include_what_you_use 2019-08-17 13:56:54 +02:00
Carles Fernandez a4d6800e22 Update copyright year
Applied on files changed since last release
clang-format applied
2019-07-26 12:38:20 +02:00
Carles Fernandez 5f79053d65 Sort includes automatically with clang-format
Order:
1.- Main header
2.- Local headers
3.- Third-party library headers
4.- System headers

each category sorted lexicographically
2018-12-09 22:00:09 +01:00
Carles Fernandez 98726ef036 Improve const correctess, change name of variable to a more meaningful name 2018-11-08 14:25:38 +01:00
Javier ea3db59fd7 Adding Tele Command status for reporting the Position, Speed and Course over ground and Time 2018-11-06 14:39:57 +01:00
Javier 01a1954b15 Adding the Hotstart telecommand implementation to predict visible satellites for GPS and Galileo constellations 2018-11-05 17:53:53 +01:00
Carles Fernandez 0d60d97c24 Use https instead of http in links when available
Update copyright year in headers
2018-05-13 22:49:11 +02:00
Carles Fernandez 6620e7d43c Updating copyright year 2015-01-08 19:49:59 +01:00
Carles Fernandez ae4a867249 code cleaning
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@262 64b25241-fba3-4117-9849-534c7e92360d
2012-10-28 10:56:04 +00:00
Carles Fernandez 2ce62706af Adding documentation and improving code formatting.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@103 64b25241-fba3-4117-9849-534c7e92360d
2011-12-28 21:36:45 +00:00
Javier Arribas 69b8ac00dc - Major changes:
- The executable file and the default configuration file is now changed from "./install/mercurio" and "./conf/mercurio.conf" to "./install/gnss-sdr" and "./conf/gnss-sdr.conf", respectively.
        - Configuration file structure changed to define in a single entry the internal sampling frequency (after the signal conditioner). NOTICE that this change affects the all the adapters (acquisition, tracking, telemetry_decoder, observables, and PVT). All the adapters are now modified to work with this feature.
        - Moved several in-line GPS L1 CA parameters (a.k.a magic numbers..) to ./src/core/system_parameters/GPS_L1_CA.h definition file.
        - Tracking blocks now uses DOUBLE values in their outputs.
        - Observables and PVT now are separated. PVT and their associated libraries are moved to ./src/algorithms/PVT
        - Temporarily disabled the RINEX output (I am working on that!)
        - GNSS-SDR screen output now gives extended debug information of the receiver status and events. In the future, this output will be redirected to a log file.

- Bug fixes:
        - FILE_SIGNAL_SOURCE now works correctly when the user configures GNSS-SDR to process the entire file.
        - GPS_L1_CA_DLL_PLL now computes correctly the PRN start values.
        - GPS_L1_CA_DLL_FLL_PLL now computes correctly the PRN start values.
        - Several modifications in GPS_L1_CA_Telemetry_Decoder, GPS_L1_CA_Observables, and GPS_L1_CA_PVT modules to fix the GPS position computation.

- New features
        - Tracking blocks perform a signal integrity check against NaN outliers before the correlation process.
        - Tracking and PVT binary dump options are now documented and we provide MATLAB libraries and sample files to read it. Available in ./utils/matlab" and "./utils/matlab/libs"
        - Observables output rate can be configured. This option enables the GPS L1 CA PVT computation at a maximum rate of 1ms.
        - GPS_L1_CA_PVT now can perform a moving average Latitude, Longitude, and Altitude output for each of the Observables output. It is configurable using the configuration file.
        - Added Google Earth compatible Keyhole Markup Language (KML) output writer class (./src/algorithms/PVT/libs/kml_printer.h and ./src/algorithms/PVT/libs/kml_printer.cc ). You can see the receiver position directly using Google Earth.
        - We provide a master configuration file which includes an in-line documentation with all the new (and old) options. It can be found in ./conf/master.conf

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@84 64b25241-fba3-4117-9849-534c7e92360d
2011-12-07 17:59:34 +00:00