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.
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.
* 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>
* 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.
* 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.
* 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.
* 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.
[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.
* 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>
* 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>
* 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>
* 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>
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)
* 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.
* 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.
* 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
* 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.
* 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