1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-10-31 23:26:22 +00:00
Commit Graph

840 Commits

Author SHA1 Message Date
Carles Fernandez
98ee81f3ac
Add Cshort_To_Gr_Complex Data Type Adapter implementation 2024-09-30 15:34:50 +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
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
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
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
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
359693c0e8
Add GNSS-SDR.osnma_enable configuration parameter, by default set to true 2024-06-28 13:03:14 +02:00
Carles Fernandez
bac36b2df5
Read .crt files instead of .pem files
Define the following global configuration parameters:
GNSS-SDR.osnma_public_key (string, by default pointing to ../data/OSNMA_PublicKey_20240115100000_newPKID_1.crt)
GNSS-SDR.osnma_merkletree (string, by default pointing to  ../data/OSNMA_MerkleTree_20240115100000_newPKID_1.xml)

Add logging of OSNMA events
Clean public API of Gnss_Crypto class
2024-06-23 09:49:14 +02:00
cesaaargm
35bb2afaba
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-06-03 05:19:16 +02:00
Carles Fernandez
d320ea70ff
Fix typo in comment 2024-05-26 22:01:46 +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
Vladislav P
3b10a3663f
Allow connection of more than 1 signal conditioner to a signal source
Signed-off-by: Vladislav P <vladisslav2011@gmail.com>
2024-05-07 11:01:58 +03:00
Carles Fernandez
079ef0f07d
Improve error handling of UDP connections 2024-05-06 18:58:09 +02:00
Carles Fernandez
95596b8f91
Soft transition from Gflags and Glog to Abseil. Some CI fixes 2024-04-29 08:27:33 +02:00
cesaaargm
451bae4a3b
Merge branch 'carlesfernandez:next' into osnma-cesare 2024-01-06 16:42:09 +01:00
Carles Fernandez
4916c6c8e8
Fix member initializations, potential data race conditions, and minor performance issues detected by Coverity Scan
Never throw from main
2023-12-21 13:57:41 +01:00
cesaaargm
55e624e9f8
Merge branch 'carlesfernandez:next' into osnma-cesare 2023-12-07 04:05:52 +01:00
Carles Fernandez
4a8c58f6ba
Fix performance inefficiencies detected by Coverity Scan 2023-11-29 21:34:59 +01:00
Carles Fernandez
1818c88983
Fix data race conditions and performance inefficiencies, update CHANGELOG 2023-11-28 18:06:41 +01:00
Carles Fernandez
346cd8f9ac
Fix data race condition 2023-11-28 12:26:13 +01:00
Carles Fernandez
ee5659ba55
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into osnma 2023-10-15 15:51:04 +02:00
Carles Fernandez
707c7826fb
Move signal handler after the constructor 2023-10-05 17:47:13 +02:00
Carles Fernandez
9b5739603a
CI: Make clang-tidy happy 2023-10-05 17:19:22 +02:00
Javier Arribas
3474c9d8ac Adding receiver stop action triggered by the SIGHUP signal 2023-10-03 11:23:11 +02:00
Javier Arribas
559e570cbc Add SIGTERM to control_thread signal handler 2023-10-03 11:02:05 +02:00
Javier Arribas
145db1faa8 Write in INFO log file the OS signals received by gnss-sdr at runtime 2023-10-02 10:25:10 +02:00
Carles Fernandez
d487e4ce2c
Update changelog, fix formatting defects and typos 2023-10-01 09:03:14 +02:00
Javier Arribas
b971b61eed Adding standard UNIX/POSIX signals listener. GNSS-SDR now can be safely stopped using CTL+C 2023-09-30 14:48:04 +02:00
Carles Fernandez
1e61a317a0
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into osnma 2023-07-05 22:30:46 +02:00
Carles Fernandez
6fcf6d79b3
Add the Merkle Tree 2023-06-19 09:57:24 +02:00
Carles Fernandez
c8347584f8
Add work on OSNMA receiver 2023-06-11 01:46:08 +02:00
Carles Fernandez
972ead3cae
Introducing the crypto bro 2023-06-07 17:21:42 +02:00
Carles Fernandez
916dde2174
Add work on OSNMA receiver 2023-05-23 12:11:53 +02:00
Javier Arribas
3d62be00ed Merge branch 'next' of github.com:gnss-sdr/gnss-sdr into pps_lime 2022-09-06 12:04:57 +02:00
Carles Fernandez
45e1fa3ade
Allow for multi-system configurations containing Galileo E6 2022-09-06 12:03:17 +02:00
Javier Arribas
f20a696f8a Merge branch 'next' of github.com:gnss-sdr/gnss-sdr into pps_lime 2022-08-30 15:27:24 +02:00
Carles Fernandez
66935170a6
Rename GPS_L1_CA_KF_VTL_Tracking to GPS_L1_CA_KF_Tracking 2022-08-30 12:03:41 +02:00
Carles Fernandez
858ea91ca8
Rename GPS_L1_CA_KF_Tracking implementation to GPS_L1_CA_Gaussian_Tracking 2022-08-30 11:30:53 +02:00
Javier Arribas
e5d6579e9a Merge branch 'next' of github.com:gnss-sdr/gnss-sdr into pps_lime 2022-08-14 12:12:33 +02:00
Javier Arribas
6311530cb4 Adding new Ad936x custom signal source, initial commit, experimental 2022-08-14 12:10:59 +02:00
Jim Melton
b24141ca72
add ZMQ signal source 2022-08-10 17:37:57 -06:00
Javier Arribas
831cc2d7b6 Merge branch 'next' of github.com:gnss-sdr/gnss-sdr into pps_lime 2022-08-02 12:15:05 +02:00
Carles Fernandez
6ec452a7c0
Allow the CMake project to be a sub-project 2022-07-28 10:37:36 +02:00
Vladisslav P
eb56367f05 Simplify multiple signal source configuration
Make it possible to specify signal sorce per channel group.
Example:

;Set GPS L1 C/A channels RF channel ID to 1
Channels_1C.RF_channel_ID=1

instead of

;Set GPS L1 C/A channels RF channel ID to 1
Channel0.RF_channel_ID=1
Channel1.RF_channel_ID=1
Channel2.RF_channel_ID=1
....

Signed-off-by: Vladisslav P <vladisslav2011@gmail.com>
2022-07-12 11:46:59 +03:00
Javier Arribas
527d3d2307 Merge with next 2022-06-14 10:38:05 +02:00
Carles Fernandez
f076c6afd9
Avoid segmentation fault due to misconfiguration 2022-06-08 17:10:34 +02:00
Javier Arribas
f8b227952a Merge with next 2022-06-03 21:08:13 +02:00
Carles Fernandez
266b3bdfe8
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into e6-pvt 2022-06-01 17:10:36 +02:00