GNSS-SDR v0.0.14 released
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.threshold
was set butAcquisition_XX.pfa
was not, causing false locks. - Fixed anti-jamming filters:
Pulse_Blanking_Filter
,Notch_Filter
andNotch_Filter_Lite
.
Improvements in Efficiency:
- Faster
SignalConditioner
block when its implementation is set toPass_Through
.
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 theboost::shared_ptr
tostd::shared_ptr
transition 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_gnsssdr
library 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:
readability-make-member-function-const
andreadability-qualified-auto
.
Improvements in Portability:
- Fixed
-DENABLE_OWN_GLOG=ON
building 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.
Replaced
google::
bygflags::
namespace when using functions of the gflags library. - Replaced
git://
byhttps://
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_gnsssdr
library 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 thecpu_features
library, 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. - The
volk_gnsssdr
library can be built on Microsoft Windows and can execute SIMD instructions on that OS. - Removed all instances of
_mm256_zeroupper()
in thevolk_gnsssdr
library, since they are not required and lead to miscompilation with GCC 10.2 and optimization level-O3
. - Fixed building with
-DENABLE_CUDA=ON
for 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.
- If
SignalConditioner.implementation=Pass_Through
, then all the configuration parameters for theDataTypeAdapter
,InputFilter
andResampler
blocks 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
q
+[Enter]
keys ifAcquisition_XX.blocking=false
. - Fixed the termination of the receiver with
q
+[Enter]
keys when using theOsmosdr_Signal_Source
implementation of theSignalSource
block. - The
Labsat_Signal_Source
implementation of theSignalSource
block now can be throttled with the new parametersSignalSource.enable_throttle_control
andSignalSource.throttle_frequency_sps
, thus allowing the emulation of real-time operation. - Improved General Block diagram, both in content and in image resolution.
- The
Custom_UDP_Signal_Source
implementation now acceptsSignalSource.sample_type=cfloat
, in addition to the existing 4 and 8-bit length sample types. - Fixed the
obsdiff
andrinex2assist
utilities 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 toON
by default. If set toOFF
, 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.dat
binary file is also delivered in.mat
format, which is readable from Matlab and Python.
As usual, compressed tarballs are available from GitHub and Sourceforge.
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.
Leave a comment