1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-13 19:50:34 +00:00
Commit Graph

4632 Commits

Author SHA1 Message Date
Carles Fernandez
d0a6264754
Make clang-tidy CI job happy 2024-09-25 20:08:02 +02:00
Carles Fernandez
abc07e414b
Merging next, solving conflicts (#28)
* 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

* Bump version of google benchmark to 1.9.0

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

* Added ION GNSS SDR Metadata Standard signal source

* Only specify outputs for the requested streams

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

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

* Fixed decoding errors and refactored each class into its own file

* Fixed sample count error & refactored

* Bufferef IO & propagate configuration inside ION source

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

* Simpler handling of simpler bit formats

If a sample is the same size as a word, it is much easier to read.

* Less callback shenanigans

* Fix wrong buffer size

* Fixed conditional compilation issues

And added a comment

* Linting fixes

* Fixed arithmetic operations on pointers

* Fix formatting

* Use lock_guard instead of unique_lock

* Create a CMake target for the ION dependency for consistency

* Improve formatting, add missing include

* Fixes for C++ standards older than 20. Avoid C++20-specific lambda templates

* Update changelog

* Add Victor to the list of authors

* Fix CMake error

* Fix building error

* Fix building

* Add -DENABLE_ION=ON to CI jobs

* Fix CMake lists

* Catch all exceptions

* Fix building for -DENABLE_PLUTOSDR=ON

* Removed unused member fields and function parameters

* Use std::ifstream instead of FILE for reading sample data

* Fixed includes and code style

* Simplified disconnect() function

We can disconnect the sources directly instead of disconnecting each of their outputs.

* Implemented range check in `IONGSMSSignalSource::get_right_block(int)`

* Moved ION GSMS file source to `gnuradio_blocks/` directory

Also fixed some header guards.

* Fixed ION GNSS Metadata Standard dependency version

* Simplified by removing a very shallow class

`ion_gnss_metadata_handler` was only reading the metadata file, which can easily be done in `ion_gsms_signal_source`.

* Added valves to properly handle end of samples

* Cleaner exit if the data file is not found

* Fix uninitialized warning

* Remove unused configuration parameter. Uniformize guard names

* Fix for CMake < 3.14

* fix configuration options for the FPGA-based AD9361-based boards

* Put the global function into an anonymous namespace

Use emplace_back instead of push_back

* Make private member metadata_ a std::shared_pointer

* Simplify code

* Remove ION source from CI

* Apply clang-tidy fixes

* Initialize the receiver local oscillator frequency to GPS_L5_FREQ_HZ by default in the ADRV9361Z7035 FPGA signal source and remove unnecessary include files.

* Sort out building flags and improve their reporting

* Allow building Ad936x_Custom_Signal_Source when gnuradio-iio is not available

* Bump local version of Protocol Buffers to v28.0

* Update AArch64 features to Linux 6.10.6

* Update AArch64 features to Linux 6.10.6

* Fix: Windows does not define __ARM_NEON

* Improve detection of the dma_proxy module and the spidev driver

* Add missing include (fixes building with modern GCC)

* Adapted udp_port to multiple ports

* Fixed typo

* Fixed clang format

* Update changelog

* Add Xavier Guerrero to the authors list

* Update changelog

* Bump local version of Protocol Buffers to 28.1

* Add install and uninstall targets to nav_msg_listener

* Add Cesare to the authors list

* Add OSNMA to changelog

* Leave OSNMA files in the same folder for consistency

* Fix conflict

---------

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>
Co-authored-by: Victor Castillo <victorcastilloaguero@gmail.com>
2024-09-21 11:40:17 +02:00
Carles Fernandez
3ec25f2347
Merge from upstream next (#27)
* 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

* Bump version of google benchmark to 1.9.0

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

* Added ION GNSS SDR Metadata Standard signal source

* Only specify outputs for the requested streams

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

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

* Fixed decoding errors and refactored each class into its own file

* Fixed sample count error & refactored

* Bufferef IO & propagate configuration inside ION source

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

* Simpler handling of simpler bit formats

If a sample is the same size as a word, it is much easier to read.

* Less callback shenanigans

* Fix wrong buffer size

* Fixed conditional compilation issues

And added a comment

* Linting fixes

* Fixed arithmetic operations on pointers

* Fix formatting

* Use lock_guard instead of unique_lock

* Create a CMake target for the ION dependency for consistency

* Improve formatting, add missing include

* Fixes for C++ standards older than 20. Avoid C++20-specific lambda templates

* Update changelog

* Add Victor to the list of authors

* Fix CMake error

* Fix building error

* Fix building

* Add -DENABLE_ION=ON to CI jobs

* Fix CMake lists

* Catch all exceptions

* Fix building for -DENABLE_PLUTOSDR=ON

* Removed unused member fields and function parameters

* Use std::ifstream instead of FILE for reading sample data

* Fixed includes and code style

* Simplified disconnect() function

We can disconnect the sources directly instead of disconnecting each of their outputs.

* Implemented range check in `IONGSMSSignalSource::get_right_block(int)`

* Moved ION GSMS file source to `gnuradio_blocks/` directory

Also fixed some header guards.

* Fixed ION GNSS Metadata Standard dependency version

* Simplified by removing a very shallow class

`ion_gnss_metadata_handler` was only reading the metadata file, which can easily be done in `ion_gsms_signal_source`.

* Added valves to properly handle end of samples

* Cleaner exit if the data file is not found

* Fix uninitialized warning

* Remove unused configuration parameter. Uniformize guard names

* Fix for CMake < 3.14

* fix configuration options for the FPGA-based AD9361-based boards

* Put the global function into an anonymous namespace

Use emplace_back instead of push_back

* Make private member metadata_ a std::shared_pointer

* Simplify code

* Remove ION source from CI

* Apply clang-tidy fixes

* Initialize the receiver local oscillator frequency to GPS_L5_FREQ_HZ by default in the ADRV9361Z7035 FPGA signal source and remove unnecessary include files.

* Sort out building flags and improve their reporting

* Allow building Ad936x_Custom_Signal_Source when gnuradio-iio is not available

* Bump local version of Protocol Buffers to v28.0

* Update AArch64 features to Linux 6.10.6

* Update AArch64 features to Linux 6.10.6

* Fix merging

---------

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>
Co-authored-by: Victor Castillo <victorcastilloaguero@gmail.com>
2024-08-31 10:07:44 +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
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
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
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
Carles Fernandez
3cc12e9b66
Add basic infrastructure for the GNSS-SDR.osnma_mode=strict mode 2024-07-25 21:40:43 +02:00
Carles Fernandez
8ff339671b
Code cleaning 2024-07-24 20:39:40 +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
0e6e39da44
Merge branch 'next' of github.com:carlesfernandez/gnss-sdr into osnma-cesare-fix9 2024-07-20 21:37:43 +02:00
Carles Fernandez
12a2fcadbe
Bump max version of CMake to 3.30 2024-07-10 14:28:16 +02:00
Carles Fernandez
36cb210ae2
Merge branch 'fix_acquisition_monitor' of https://github.com/vladisslav2011/gnss-sdr into vladisslav2011-fix_acquisition_monitor 2024-07-03 21:55:48 +02:00
cesaaargm
b77784d1f3 [TAS-227] [BUG] Tag verification fails for .dat files 2024-07-02 13:34:37 +02:00
cesaaargm
c8c7d4c352 [TAS-224] Update telemetry decoder to directly process Navigation Data bits
This update refactors the telemetry decoder to directly retrieve and compute Navigation Data bits. WIP as the tag verification still fails
2024-06-22 14:03:15 +02:00
cesaaargm
11e84e751b
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-06-17 17:28:19 +02:00
Carles Fernandez
d1b97cfa09
Clean log 2024-06-14 20:45:55 +02:00
cesaaargm
1a32ccaa19 [TAS-208 WIP ] [Feature] Retrieve directly NavData bits from Telemetry Decoder (ADKD4 and 0/12)
- appear to retrieve data as expected.
- However, tag verification fails still (new dat file)
2024-06-13 01:13:17 +02:00
cesaaargm
059e5e98d8 Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into osnma-cesare 2024-05-12 12:54:34 +02:00
Carles Fernandez
0a80c09a19
Remove blank line in logs 2024-05-06 19:01:38 +02:00
Carles Fernandez
079ef0f07d
Improve error handling of UDP connections 2024-05-06 18:58:09 +02:00
Carles Fernandez
fbc216c1a3
Add flag validation when using Abseil 2024-05-02 00:14:53 +02:00
Carles Fernandez
4515e67b3f
Fixes for the embedded Abseil 2024-05-01 08:39:22 +02:00
Carles Fernandez
95596b8f91
Soft transition from Gflags and Glog to Abseil. Some CI fixes 2024-04-29 08:27:33 +02:00
Carles Fernandez
1ad631128f
cpu_features: Update AArch64 features to Linux 6.6 2024-04-22 13:03:31 +02:00
Carles Fernandez
78295866e6
Find dependencies in the loongarch64 architecture 2024-04-22 12:41:11 +02:00
Carles Fernandez
c91c31bd35
Fix wrong order of arguments in calloc 2024-04-22 09:48:28 +02:00
Carles Fernandez
f1fb4abec0
Bump CMake max policy to 3.29 2024-04-13 09:17:18 +02:00
Carles Fernandez
fd5174e7ec
Remove duplicate libraries warning emitted by Xcode 15 2024-04-13 09:03:46 +02:00
Carles Fernandez
fc695cb6f6
CI: make cmakelint happy 2024-04-12 19:51:37 +02:00
Carles Fernandez
6fc04b34f2
Fix duplicate warning from Xcode 2024-04-12 18:15:33 +02:00
cesaaargm
881bb5c58a
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-04-12 15:24:51 +02:00
Carles Fernandez
7e79945529
Update Flexiband_Signal_Source to admit modern GNU Radio versions 2024-04-05 13:37:45 +02:00
Marc Majoral
3f014b4a64
Fixed a deadlock issue in the FPGA-based tracking loops 2024-04-04 19:13:55 +02:00
cesaaargm
35cfbd7f05 gitignore 2024-02-27 19:18:39 +01:00
cesaaargm
88a6d8e968
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-02-20 15:58:26 +01:00
cesaaargm
80e6d8df18 Add unit tests for GNSS_crypto
Introduced unit tests in `gnss_crypto_test.cc` to verify the functionality set_public_key and verify_signature. The added tests check the correctness of signature verification and public key import processes. Further minor changes
2024-02-20 15:52:19 +01:00
Carles Fernandez
f446bf3238
Add missing include
Fix compilation against glog-0.7.0
2024-02-19 17:54:18 +01:00
cesaaargm
1263af9ec1
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-01-25 16:19:15 +01:00
Carles Fernandez
9880fdd57c
Bump version to 0.0.19 2024-01-23 14:49:19 +01:00
Carles Fernandez
fe5523c565
Fix spelling errors detected by lintian 2024-01-23 14:42:46 +01:00
Carles Fernandez
95e6111a46
Better tuning of position KF for moving receivers 2024-01-23 11:07:31 +01:00
Carles Fernandez
84ce3ebc2f
Fix Wshorten-64-to-32 warning 2024-01-23 11:05:27 +01:00
Cesare G. Martínez
08bd1992af [TAS-125] NavData retrieval.
* set osnma flags to true when new data
		* send them to osnma block if filled.
2024-01-22 17:58:39 +01:00
cesaaargm
27a7274e1a
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-01-20 22:05:02 +01:00
Cesare G. Martínez
50fbc3e9e5 [TAS-111] time synch check: first draft 2024-01-20 10:21:22 +01:00
Carles Fernandez
5d5cbc05eb
Fix Wshorten-64-to-32 warning 2024-01-12 10:47:14 +01:00
cesaaargm
451bae4a3b
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-01-06 16:42:09 +01:00
Carles Fernandez
7d6d62dbc6
Fix data race condition 2024-01-01 14:23:42 +01:00