1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-10-30 06:36:21 +00:00
Commit Graph

6692 Commits

Author SHA1 Message Date
Victor Castillo
4d1540181d
Removed unused member fields and function parameters 2024-08-19 15:36:03 +02:00
Carles Fernandez
6836ac44fb
Fix building for -DENABLE_PLUTOSDR=ON 2024-08-19 14:21:59 +02:00
Carles Fernandez
126421f847
Catch all exceptions 2024-08-19 12:30:25 +02:00
Carles Fernandez
df1314945f
Fix CMake lists 2024-08-19 10:56:11 +02:00
Carles Fernandez
f3ba1822b1
Fix building 2024-08-19 10:24:48 +02:00
Carles Fernandez
614693ea0f
Fix building error 2024-08-19 10:21:51 +02:00
Carles Fernandez
c212bac26d
Fix CMake error 2024-08-19 09:58:33 +02:00
Carles Fernandez
e37855d43e
Fixes for C++ standards older than 20. Avoid C++20-specific lambda templates 2024-08-19 09:27:29 +02:00
Carles Fernandez
da21ff4fd9
Improve formatting, add missing include 2024-08-19 09:26:21 +02:00
Carles Fernandez
62cb96ae03
Create a CMake target for the ION dependency for consistency 2024-08-19 09:25:05 +02:00
Carles Fernandez
7aa19d9642
Use lock_guard instead of unique_lock 2024-08-18 10:57:40 +02:00
Victor Castillo
27465f6a70
Fix formatting 2024-08-18 01:24:25 +02:00
Victor Castillo
a99ceafe85
Fixed arithmetic operations on pointers 2024-08-17 23:09:30 +02:00
Victor Castillo
61a9e179b0
Linting fixes 2024-08-17 23:05:38 +02:00
Victor Castillo
cf01a2d37a
Fixed conditional compilation issues
And added a comment
2024-08-17 20:40:13 +02:00
Victor Castillo
b368942463
Fix wrong buffer size 2024-08-17 20:22:39 +02:00
Victor Castillo
33067d631d
Less callback shenanigans 2024-08-17 20:20:27 +02:00
Victor Castillo
01bbc39fa6
Simpler handling of simpler bit formats
If a sample is the same size as a word, it is much easier to read.
2024-08-17 20:14:31 +02:00
Victor Castillo
38a24f5250
Reset sample value before writing new one
Sample values are ORed into the output buffer because they may need a few read/write operations depending on alignment.
So, if we don't set the value to 0 before doing this, all samples quickly become 0xFF after a few cycles of the output buffer.
2024-08-16 15:51:24 +02:00
Victor Castillo
cd2614a4dc
Bufferef IO & propagate configuration inside ION source 2024-08-16 13:56:10 +02:00
Victor Castillo
00fd1821b1
Fixed sample count error & refactored 2024-08-16 13:56:10 +02:00
Victor Castillo
469eaf76e5
Fixed decoding errors and refactored each class into its own file 2024-08-16 13:56:10 +02:00
Victor Castillo
598fa283b8
Treat data file paths as relative to the metadata file
The data file paths are actually not native paths but URLs, this covers most cases but not all of them.
2024-08-16 13:55:47 +02:00
Victor Castillo
5c442c8aae
Fixed block iteration withing a file
The `File` object only holds a shallow reference to its `Lane` (without the list of blocks). So we must retrieve the full reference manually.
2024-08-16 13:55:47 +02:00
Victor Castillo
38d548ba50
Only specify outputs for the requested streams 2024-08-16 13:55:47 +02:00
Victor Castillo
1f3047c67a
Added ION GNSS SDR Metadata Standard signal source 2024-08-16 13:55:47 +02:00
Victor Castillo
dbd94e005d
Fix CMakeLists header file list in signal source libs
Header file paths were being appended to the source files list.

This is not that important since, in general, you don't need to add the header files to the cmake target.
2024-08-16 13:55:09 +02:00
Carles Fernandez
94d7635612
Small fixes (#26)
* Decouple the FPGA DMA signal source from the AD9361 FPGA signal source.

* Add the MAX2771_EVKIT FPGA signal source and the ENABLE_FPGA_MAX2771_EVKIT flag to enable it.

* Adjust cross-compilation flags to properly support FPGA signal sources

* fix signal source names for consistency

* Detect if the spidev driver is installed when the ENABLE_MAX2771 flag is set. Detect if the DMA proxy driver is installed when the ENABLE_DMA_PROXY flag is set. Check if ENABLE_FPGA is set when either ENABLE_MAX2771 or ENABLE_DMA_PROXY is set.

* fix FPGA signal source names for consistency

* Fix FPGA-related CMakefile flags

* make cpplint happy

* make cpplint happy

* make cmakelint happy

* make clang-format happy

* Replaced the AD9361 FPGA signal source with the ADRV9361_Z7035 FPGA and the FMCOMMS5 FPGA signal sources.

* Bump local version of GoogleTest to 1.15.2 and Protocol Buffers to 27.3

* Avoid code duplication in CMake modules

* Update clang-tidy job

* Clang Tidy fixes

* Improve efficiency of Concurrent_Map and Concurrent_Queue classes

* Fix segmentation fault if the SignalSource implementation is not available

* Moved decimation factor count variable to the class

* Avoid possible runtime error when PVT.enable_rx_clock_correction=true

* Fix formatting

* Fix clang-tidy job

* Capitalize FPGA in class implementation names

* Capitalize acronyms in FPGA-related class names

* Instantiate sources only once

* Update changelog

* Fix building in some environments and fix CI jobs

* Fix clang-tidy complain

---------

Co-authored-by: Marc Majoral <majoralmarc@gmail.com>
Co-authored-by: cesaaargm <cesare.martinez@proton.me>
Co-authored-by: Xavier Guerrero-Pau <xguerrero@cttc.es>
2024-08-16 09:40:45 +02:00
cesaaargm
ea0684d640 [TAS-240][FEAT] Implement TESLA Chain Renewal and Revocation II
* revocation sucessfully tested.
* Diagram of step 1 is wrong in that KROOT with CID=0 also received after entering step 1.
* Duration of CREV=2.75h
* All tags verified succesffully.
2024-08-15 21:48:29 +02:00
cesaaargm
092a78f580 [TAS-145][Feat][PVT] Implement PVT logic for osnma data
* Created a map with PRN-> set<IOD_nav>
* osnma transmits every 30 s the list of authenticated PRNs along with the IOD authenticated
* PVT takes this into account to consider the observable valid (only strict mode)
* ""successfully"" tested. Osnma first tag authenticated: 1:36, TTFAF 2:06
=> most of the time the PVT has authenticated solution, except two 30s gaps in which there is no PVT computed. (3-4' firs gap and second from 13:30-14:06)
* TODOs: find out reason and improve size management of the maps.
2024-08-15 13:10:04 +02:00
cesaaargm
2e867f2dac [TAS-240][FEAT] Implement TESLA Chain Renewal and Revocation I
* Implemented a new chain renewal mechanism for OSNMA data structure updates and key management.
* Added related flags and data fields.
* tested successfully with test vectors.
2024-08-14 13:14:23 +02:00
cesaaargm
e4f4c335bc [TAS-257][TEST] add osnma benchmarking
* Introduced new benchmarks to assess the performance of various OSNMA related functions, such as public key verification.
* Mostly recycled code from testing codebase.
* TODO: methods are private, could not find a MACRO like FRIEND_TEST to allow for it. Result of this, only one benchmark test is active.
2024-08-12 12:50:17 +02:00
cesaaargm
794bd61419 [TAS-249][Bug][Tag] new NavDataManager causes less tags to be verified
[TAS-234][Feature] Dummy tags verification

* Fixed the navData retrieval which caused many tags to be skipped
* Dummy tags verification added.
* Replaced direct field access with getters/setters for OSNMA navigation data.
2024-08-11 16:41:54 +02:00
Carles Fernandez
5a634f7332
More fixes (#25)
* Clang Tidy fixes

* Fix some potential defects and be more consistent in class name. Improve const correctness

* Fix formatting

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-11 12:44:18 +02:00
Marc Majoral
0242f86088
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga_signal_sources 2024-08-10 15:29:40 +02:00
Carles Fernandez
79da7787ff
Move files (#24)
* Bump local version of GoogleTest to 1.15.2 and Protocol Buffers to 27.3

* Avoid code duplication in CMake modules

* Update clang-tidy job

* Clang Tidy fixes

* Improve efficiency of Concurrent_Map and Concurrent_Queue classes

* Fix segmentation fault if the SignalSource implementation is not available

* Moved decimation factor count variable to the class

* Avoid possible runtime error when PVT.enable_rx_clock_correction=true

* Fix formatting

* Fix clang-tidy job

* Move receiver-related classes to src/core/libs

* Uniformize cmake module names

* Fix formatting

* Make clang-tidy happy

* Fix crypto benchmarks

* Fixes for old systems

* Instantiate sources only once

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
Co-authored-by: Xavier Guerrero-Pau <xguerrero@cttc.es>
2024-08-10 11:31:15 +02:00
Carles Fernandez
7ce4f62344
Instantiate sources only once 2024-08-10 07:37:46 +02:00
Marc Majoral
d0caa64c5f
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into fpga_signal_sources 2024-08-09 15:47:02 +02:00
Marc Majoral
9b9f0fc438
Capitalize acronyms in FPGA-related class names 2024-08-09 15:17:19 +02:00
Marc Majoral
1502808f58
Capitalize FPGA in class implementation names 2024-08-08 22:30:45 +02:00
Carles Fernandez
621ee34048
Fix clang-tidy job 2024-08-08 17:53:59 +02:00
Carles Fernandez
a19d260281
Fix formatting 2024-08-08 14:05:03 +02:00
Carles Fernandez
e4f807e210
Merge branch 'decimation_factor_count' of https://github.com/xguerreropau/gnss-sdr into xguerreropau-decimation_factor_count 2024-08-08 13:59:33 +02:00
Carles Fernandez
41dd928689
Avoid possible runtime error when PVT.enable_rx_clock_correction=true 2024-08-08 12:41:11 +02:00
Xavier Guerrero-Pau
c8c46bc3c5
Moved decimation factor count variable to the class 2024-08-08 12:03:46 +02:00
Carles Fernandez
9ffb7e2dc8
Merge branch 'better-concurrency' into next 2024-08-08 10:39:18 +02:00
Carles Fernandez
7ff1d9006e
Fix segmentation fault if the SignalSource implementation is not available 2024-08-08 10:38:52 +02:00
Carles Fernandez
98f1cdfb6b
More minor fixes (#23)
* Clang Tidy fixes

* Fix defects detected by Coverity Scan

* Fix for OpenSSL 1.0

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-08 09:33:48 +02:00
Carles Fernandez
158b7caeb4
Improve efficiency of Concurrent_Map and Concurrent_Queue classes 2024-08-07 09:34:09 +02:00
Carles Fernandez
5a6d19be70
Fix some defects detected by Coverity Scan (#22)
* Clang Tidy fixes

* Fix defects detected by Coverity Scan

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-07 09:13:13 +02:00
Carles Fernandez
7367b56725
Improve test (#21)
* Clang Tidy fixes

* Improve GnssCryptoTest.VerifyPublicKeyStorage test

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-06 12:28:01 +02:00
Carles Fernandez
a1ef563988
Fix for OpenSSL 1.0 (#20)
* Clang Tidy fixes

* Fix for OpenSSL 1.0

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-05 13:06:28 +02:00
Carles Fernandez
8a45df29a8
Some API improvements and a bug fix (#18)
* Clang Tidy fixes

* Fix reading of .crt files with GnuTLS

* Hide d_crypto pointer from public API

* Read public key type also from .pem files

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-05 10:29:01 +02:00
Carles Fernandez
3457b8ed3b
Get time zone offset in a more standard way (#17)
* Clang Tidy fixes

* Get time zone offset in a more standard way

Account for leap seconds
Use GNSS-SDR.osnma_mode=strict to check for local time

* Fix for C++20

* Initialize tm in a more portable way

* Remove unnecessary data members in osnma_msg_receiver

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-03 19:58:34 +02:00
Carles Fernandez
6beb92278f
Read type of public key (#16)
* Clang Tidy fixes

* Improve reading public key type

* Update osnma_nav_data_manager.cc

hotfix

---------

Co-authored-by: cesaaargm <cesare.martinez@proton.me>
2024-08-02 09:38:37 +02:00
cesaaargm
960e76e3a0 Clang Tidy fixes 2024-08-01 19:16:47 +02:00
cesaaargm
a47cf1187c [TAS-255] [BUG] Assure time synch. is properly done
if d_flag_debug=false, now system clock is used to for the receiver synchronisation. It uses the UTC time and the GST epoch start time (adjusted for local time zone difference) to create a local estimation of GST, then compares with GST_SIS (coming from NavData Words 5 and 6)
2024-08-01 11:52:28 +02:00
cesaaargm
2db37f384e [TAS-242][FEAT] Implement alert message handling
* Test show that behavior is as expected.
* interestingly, the first batch of Tags after OAM received fail, then succeeds, until OAM is verified and OSNMA is disabled.
2024-07-31 17:08:06 +02:00
Marc Majoral
19a152c6ce
Replaced the AD9361 FPGA signal source with the ADRV9361_Z7035 FPGA and the FMCOMMS5 FPGA signal sources. 2024-07-30 22:28:52 +02:00
cesaaargm
02c5d26dcc [TAS-250] (x3) [FEAT] Implement PK renewal and revocation. Bugfix for DS length computation.
* it was based on the HF field, which is not correct. It was discovered when the PK was P521 instead of P256 then the Padding size check was failing due to this.
* The solution is temporary:
** GNSS_Crypto: when reading the key, the type is inferred (only for OSSL for the moment)
** when PK comes through the satellites, the public key type is taken from the NPKT field.
2024-07-30 18:09:07 +02:00
Carles Fernandez
07cbf2c01f
Fixes for GnuTLS and OpenSSL < 3 (#14)
* Fix set_public_key when using GnuTLS

* Fix for OpenSSL 1.1.1

* Fix formatting

* Fix formatting

* Fix ECDSA-P521 signature verification when using GnuTLS

* Improve finding of the GMP library in Debian-based systems

* Improve finding of the GMP library in Debian-based systems

* Keep GMP usage private
2024-07-30 18:00:41 +02:00
cesaaargm
26f77a3c42 [TAS-250] (x2) [FEAT] Implement PK renewal and revocation.
* Revocation implemented and tested. DSM-KROOT appears to be corrupted because length check fails after start of step 1, during steps 2 and 3.
2024-07-30 12:25:22 +02:00
cesaaargm
440dc582b5 [TEST][OsnmaTestVector] refactor parsing code into feedOsnmaWithTestVectors method.
* could not find a way to access osnma private methods, so had to make d_crypto and msg_handler_osnma public. Looking for a way to avoid that.
2024-07-29 15:21:35 +02:00
cesaaargm
fc1541ef10 [TAS-250] [FEAT] Implement PK renewal and revocation. 2024-07-29 12:18:08 +02:00
cesaaargm
5675b996e8 [TAS-251] set_public_key accepts compressed ECDSA PK. Make Crypto tests pass again (OSSL3 and OSSL<3)
* both P256 and P521 curves. Tested successfully.
2024-07-29 12:16:55 +02:00
cesaaargm
a947f10fd8 [TAS-246] [TEST] CI/CD set up - more fixes 2024-07-27 21:50:33 +02:00
cesaaargm
a4cfe51515 [TAS-248] [BUG][Kroot] Kroot and PK available, but until DSM-Kroot arrived no MACK processing
* reverted commit [TAS-247][FEAT][Kroot] enable hotstart with last known Kroot
* DSM-KROOT loaded during startup
* if new DSM verified => stored
* this improves TTFAF from 4 min to 1 minute.
2024-07-27 18:25:20 +02:00
Carles Fernandez
491a4ab40f
Add missing include 2024-07-27 07:48:34 +02:00
Carles Fernandez
c54f941dce
Adapt to new API 2024-07-26 18:26:15 +02:00
Carles Fernandez
6cfc8a351f
Adapt to new API 2024-07-26 18:20:24 +02:00
Carles Fernandez
ec127089ab
Fix building of OSNMA tests 2024-07-26 18:12:52 +02:00
cesaaargm
06e0c4b63a [TAS-247][FEAT][Kroot] enable hotstart with last known Kroot
* Kroot is now saved into binary file if successfuly verified.
* on startup, file is checked first.
* This should enable a much quicker TTFAF
2024-07-26 18:03:21 +02:00
Carles Fernandez
3cc12e9b66
Add basic infrastructure for the GNSS-SDR.osnma_mode=strict mode 2024-07-25 21:40:43 +02:00
cesaaargm
e0506eaf9b Consider CI/CD comments (x2) 2024-07-25 19:03:57 +02:00
cesaaargm
95aea155f0 Merge branch 'carlesfernandez-osnma-cesare-fix10' into osnma-cesare 2024-07-25 15:40:57 +02:00
cesaaargm
84b16cd54d Merge branch 'osnma-cesare-fix10' of https://github.com/carlesfernandez/gnss-sdr into carlesfernandez-osnma-cesare-fix10 2024-07-25 14:48:29 +02:00
cesaaargm
8566eca92f [TAS-238][FEAT] Implement Tag accumulation
* New class: osnma_nav_data_manager => manages navigation data coming to osnma
* navigation data is grouped now avoiding duplication => a NavData entry has now TOW_start and TOW_end
* tag accumulation: now, navigation data has verified_bits field, which shows how many tags have verified that data. unless L_T_min achieved, validation is not considered successful
2024-07-25 14:08:34 +02:00
Marc Majoral
40cc8de587
make clang-format happy 2024-07-25 09:44:21 +02:00
Carles Fernandez
8a208d57d8
Add benchmarks for cryptographic functions 2024-07-24 21:02:39 +02:00
Carles Fernandez
8ff339671b
Code cleaning 2024-07-24 20:39:40 +02:00
Marc Majoral
2df08c48fa
make cpplint happy 2024-07-24 15:55:26 +02:00
Marc Majoral
ef3afccfbc
make cpplint happy 2024-07-24 15:28:07 +02:00
Marc Majoral
468e840eb1
Fix FPGA-related CMakefile flags 2024-07-24 13:22:03 +02:00
Marc Majoral
f2acb7dc2f
fix FPGA signal source names for consistency 2024-07-24 11:02:44 +02:00
Carles Fernandez
70315ecfae
Fix formatting 2024-07-23 17:32:47 +02:00
Marc Majoral
5b06bc34bc
Detect if the spidev driver is installed when the ENABLE_MAX2771 flag is set. Detect if the DMA proxy driver is installed when the ENABLE_DMA_PROXY flag is set. Check if ENABLE_FPGA is set when either ENABLE_MAX2771 or ENABLE_DMA_PROXY is set. 2024-07-23 17:03:06 +02:00
Carles Fernandez
49eb854b16
Fix formatting 2024-07-23 16:51:59 +02:00
Carles Fernandez
39f94dcbe6
Code cleaning 2024-07-23 12:15:43 +02:00
Carles Fernandez
6ae7684ba7
Fix const correctness 2024-07-22 12:59:54 +02:00
Carles Fernandez
d0a1825c24
Fix defects detected by clang-tidy 2024-07-22 12:52:06 +02:00
Carles Fernandez
8fd6e4dc40
Improve const correctness 2024-07-22 09:46:28 +02:00
Carles Fernandez
c5c58c8d1d
Fix defects detected by clang-tidy 2024-07-22 08:24:12 +02:00
Carles Fernandez
2378fb4fbc
Fix for CMake 3.30 2024-07-20 21:44:06 +02:00
Carles Fernandez
0e6e39da44
Merge branch 'next' of github.com:carlesfernandez/gnss-sdr into osnma-cesare-fix9 2024-07-20 21:37:43 +02:00
Carles Fernandez
1a2cbe4506
Code cleaning 2024-07-20 21:25:53 +02:00
Marc Majoral
4b715866b5
fix signal source names for consistency 2024-07-19 12:06:53 +02:00
Marc Majoral
9567e95e33
Adjust cross-compilation flags to properly support FPGA signal sources 2024-07-19 10:11:44 +02:00
Marc Majoral
d24c35854a
Add the MAX2771_EVKIT FPGA signal source and the ENABLE_FPGA_MAX2771_EVKIT flag to enable it. 2024-07-18 16:33:25 +02:00
Carles Fernandez
82973db0d6
Fixes for old GnuTLS 2024-07-18 14:37:02 +02:00
Carles Fernandez
d687193156
Improve consistency of public API member function names in Gnss_Crypto 2024-07-18 10:49:52 +02:00