This is a maintenance and bug fix release. Most relevant changes with respect to the former release are listed below:
Improvements in Availability:
- Fixed bug in acquisition detection when the configuration parameter
Acquisition_XX.thresholdwas set but
Acquisition_XX.pfawas not, causing false locks.
- Fixed anti-jamming filters:
Improvements in Efficiency:
SignalConditionerblock when its implementation is set to
Improvements in Interoperability:
- Added the Galileo E6 B/C signal structure based on E6-B/C Codes Technical Note, Issue 1, January 2019, including Acquisition and Tracking blocks. The Telemetry Decoder is still empty (only the CRC is checked, based on Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2, April 2020).
Improvements in Maintainability:
- Added a common shared pointer definition
gnss_shared_ptr, which allows to handle the
std::shared_ptrtransition in GNU Radio 3.9 API more nicely.
- Support new FFT and firdes blocks’ API in GNU Radio 3.9.
- Added detection of inconsistent function prototypes in
volk_gnsssdrlibrary kernels at compile time.
- Fixed defects detected by clang-tidy check
bugprone-reserved-identifier, and added to the checks list. This check corresponds to CERT C Coding Standard rule DCL37-C as well as its C++ counterpart, DCL51-CPP.
- Applied and added more clang-tidy checks related to readability:
Improvements in Portability:
-DENABLE_OWN_GLOG=ONbuilding option when gflags is installed and it is older than v2.1.2 (e.g., in CentOS 7).
- Improved handling of old gflags versions, minimum version set to 2.1.2.
gflags::namespace when using functions of the gflags library.
https://as the used protocol when downloading Gflags, so it can work through firewalls requiring authentication.
- Fixed static linking of the matio library when downloaded and built by CMake.
- Improved CPU feature detection by switching to Google’s
cpu_features library: The
volk_gnsssdrlibrary had its own CPU feature detection methods, which were not totally reliable and difficult to implement across compilers and OSes. This is now handled by the
cpu_featureslibrary, thus building upon that expertise. Since that library has higher dependency version requirements than GNSS-SDR, the old method is still used in old development environments. No extra dependency is needed. This change is transparent to the user, since everything is managed by the CMake scripts.
volk_gnsssdrlibrary can be built on Microsoft Windows and can execute SIMD instructions on that OS.
- Removed all instances of
volk_gnsssdrlibrary, since they are not required and lead to miscompilation with GCC 10.2 and optimization level
- Fixed building with
-DENABLE_CUDA=ONfor blocks implemented with CUDA.
- Fixed linking against the ORC library if it is present in the system.
- Fixed a bug introduced in v0.0.13 that prevented getting Galileo-only PVT fixes in some environments.
- Fixed duplication of protobuf build tree if it was locally built and then installed with DESTDIR variable set.
Improvements in Usability:
- Fixed a bug when enabling pseudorange carrier smoothing in other bands than L1.
SignalConditioner.implementation=Pass_Through, then all the configuration parameters for the
Resamplerblocks are ignored. This was the default behavior in GNSS-SDR v0.0.12, but it changed in v0.0.13. This change recovers the old behavior.
- Fixed occasional segmentation fault when exiting with
- Fixed the termination of the receiver with
[Enter]keys when using the
Osmosdr_Signal_Sourceimplementation of the
Labsat_Signal_Sourceimplementation of the
SignalSourceblock now can be throttled with the new parameters
SignalSource.throttle_frequency_sps, thus allowing the emulation of real-time operation.
- Improved General Block diagram, both in content and in image resolution.
Custom_UDP_Signal_Sourceimplementation now accepts
SignalSource.sample_type=cfloat, in addition to the existing 4 and 8-bit length sample types.
- Fixed the
rinex2assistutilities when installed if they were built with a locally downloaded version of GPSTk.
- The generated HTML documentation now makes use of the Doxygen grouping feature.
- Improved rendering of equations in HTML documentation generated by Doxygen.
Make use of MathJax for equation rendering. Added new building option
ENABLE_EXTERNAL_MATHJAX, set to
ONby default. If set to
OFF, it allows using a local installation of MathJax 2.
- Improved dumps in Telemetry Decoding blocks. Now they include the raw
navigation message bits. If
TelemetryDecoder_XX.dump=true, the resulting
.datbinary file is also delivered in
.matformat, which is readable from Matlab and Python.
In order to make GNSS-SDR more easily referenced, and to promote reproducible research, each software release gets a Digital Object Identifier provided by Zenodo. The DOI for GNSS-SDR v0.0.14 is 10.5281/zenodo.4428100.