1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-12 11:10:33 +00:00
Commit Graph

428 Commits

Author SHA1 Message Date
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
db5466832c
Look for OpenSSL in the first place, fallback to GnuTLS if not found
Fix test building in some environments
2024-06-29 11:11:20 +02:00
Carles Fernandez
d62e2e0de5
Bump local version of google/glog to 0.7.1 2024-06-08 19:50:43 +02:00
Carles Fernandez
ea38f7e727
Update CHANGELOG 2024-05-26 22:01:14 +02: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
Carles Fernandez
f03608ac82
Update links 2024-03-29 14:39:32 +01:00
Carles Fernandez
fbca34a4b4
Fix typo in changelog 2024-02-21 17:49:24 +01:00
Carles Fernandez
58c066bd9e
Find dependencies in the loongarch64 architecture 2024-02-21 17:39:43 +01:00
Carles Fernandez
ffd925c1fc
Update changelog 2024-01-29 15:32:48 +01:00
Carles Fernandez
9880fdd57c
Bump version to 0.0.19 2024-01-23 14:49:19 +01:00
Carles Fernandez
95e6111a46
Better tuning of position KF for moving receivers 2024-01-23 11:07:31 +01:00
Carles Fernandez
c16440fb35
Update changelog 2024-01-02 18:20:54 +01:00
Carles Fernandez
76f2cc411a
Enable building using macOS Sonoma 2024-01-01 17:33:15 +01:00
Carles Fernandez
9c95aeb07f
Avoid deprecation warnings when VOLK >= 3.1
Bump CMake max version to 3.28
Do not leak build system paths when cross-compiling. Fixes OpenEmbedded QA warning
volk_gnsssdr: Fix 64-bit integer testing
CI: Fix for Python 3.12
2023-12-13 22:12:29 +01:00
Carles Fernandez
1685c896ea
Fix annotation rate for KML, GPX, GeoJSON, and NMEA 2023-12-01 13:35:31 +01:00
Carles Fernandez
1818c88983
Fix data race conditions and performance inefficiencies, update CHANGELOG 2023-11-28 18:06:41 +01:00
Carles Fernandez
caef6acdd4
Adjust number of decimal places displayed in terminal 2023-11-24 22:05:52 +01:00
Carles Fernandez
0a438ec726 Avoid shadowed variables 2023-11-15 16:08:56 +01:00
Carles Fernandez
ce14845bbb
Fix validation of GPS navigation data (fix due to @tractoan). Closes: #737 2023-11-14 14:32:19 +01:00
Carles Fernandez
ab4cc295e8
volk_gnsssdr: Fix syntax for Python 3.12
Without breaking older versions, including 2.7
2023-11-06 14:01:42 +01:00
Carles Fernandez
710f85dc03
Update local version of cpu_features to 0.9.0 2023-11-04 11:54:16 +01:00
Carles Fernandez
b116c17937
Print estimated CN0 on the terminal when navigation data is decoded 2023-10-26 18:57:24 +02:00
Carles Fernandez
8d1ef54c65 Update CHANGELOG 2023-10-05 13:50:46 +02:00
Carles Fernandez
146388d6ed Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into next 2023-10-05 13:43:46 +02:00
Carles Fernandez
757414dc9e
Add geohash to monitor_pvt and remove it from logs 2023-10-05 12:52:14 +02:00
Javier Arribas
99952f6275 Adding PVT flag to enable or disable the log INFO position geohash output 2023-10-03 12:41:22 +02:00
Javier Arribas
8019f067e6 Adding Galileo HAS status output to PVT monitor 2023-10-02 10:23:58 +02:00
Carles Fernandez
d487e4ce2c
Update changelog, fix formatting defects and typos 2023-10-01 09:03:14 +02:00
Javier Arribas
a39144105c Adding Local frame ENU velocity and COG to PVT monitor serialization 2023-09-28 10:01:03 +02:00
Carles Fernandez
6cb3ae99b3
Update changelog 2023-09-27 10:34:17 +02:00
Carles Fernandez
55df8d5333
Update changelog 2023-09-21 09:04:24 +02:00
Javier Arribas
5f5e861822 Adding PVT UTC time string in rfc 3339 format to protobuf PVT monitor output 2023-09-19 13:10:56 +02:00
Carles Fernandez
4cc4a6cbb6
Update changelog 2023-07-05 20:03:22 +02:00
Carles Fernandez
e7b0bac67f
The action continues in the next bracnh 2023-04-06 15:06:16 +02:00
Carles Fernandez
d955266d55
Bump version number 2023-04-06 11:20:17 +02:00
Carles Fernandez
51418850bb
Add configuration parameter PVT.bancroft_init, by default to true, to opt-out for Bancroft initialization in the first iteration of PVT computation 2023-04-03 13:36:54 +02:00
Carles Fernandez
bf3c3918ef
Update local version of Protocol Buffers to v22.2 (requires abseil-cpp >= 20230117). If abseil is not found or is too old, it falls back to Protocol Buffers v21.12 2023-03-31 13:23:31 +02:00
Carles Fernandez
1b2087944e
Add Geohash of PVT solution to internal logs 2023-03-17 10:39:22 +01:00
Carles Fernandez
0a11f1470a
Process and apply Galileo HAS corrections to the PVT solution
Add getters to Galileo_HAS_data class, improve implementation of existing ones
Process reception of HAS messages and inject corrections to RTKLIB
Apply HAS corrections to PVT computation within RTKLIB
Add configuration parameter PVT.use_has_corrections=true/false, true by default, to deactivate application of corrections but still retrieve HAS messages
Add configuration parameter PVT.use_unhealthy_sats=true/false, false by default, to use observables from satellites flagged as unhealthy
Use an unordered_map for signals and frequencies
2023-02-28 13:08:53 +01:00
Carles Fernandez
4999d38194
Improve portability
Improve support for RISC-V arch in volk_gnsssdr via cpu_features (updated to c919e9a).
Set BLA_PREFER_PKGCONFIG if not defined by the user, helps to find lapack in some archs (e.g., riscv64)
Fix for Fedora/OpenSUSE, which do not install cpu_features along volk.
Remove volk_gnsssdr_8ic_s8ic_multiply_8ic kernel since it was problematic in some archs
Improve Python detection
Fixes for GCC 13
Remove ENABLE_GENERIC_ARCH configuration option and old ARM detection mechanism
Update gtest to 1.13.0
Add CI jobs for volk_gnsssdr and gnss-sdr in non-x86 archs
2023-01-26 18:39:25 +01:00
Carles Fernandez
11f7bf5883
Update GNSSTk library version to v14.0.0 2023-01-11 16:22:45 +01:00
Carles Fernandez
92dca5faa5
Update changelog 2022-12-18 11:24:28 +01:00
Carles Fernandez
4e741fe0b4
Improve changelog 2022-08-27 13:08:18 +02:00
Carles Fernandez
62c4a10f03
Document new parameters for UHD_Signal_Source 2022-08-26 23:15:24 +02:00
Carles Fernandez
8247021f32
CMake: Move log4cpp/spdlog handling to the GNURADIO cmake module 2022-08-23 14:11:06 +02:00
Carles Fernandez
da120cfa22
Reorder CHANGELOG.md 2022-08-12 21:24:38 +02:00
Carles Fernandez
5120de51a5
Document new ZMQ_Signal_Source 2022-08-11 15:23:26 +02:00