GNSS-SDR v0.0.14
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
and
Notch_Filter_Lite
.
Improvements in Efficiency:
- Faster
SignalConditioner
block when its implementation is set to
Pass_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.
Replacedgoogle::
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: Thevolk_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 if
Acquisition_XX.blocking=false
. - Fixed the termination of the receiver with
q
+[Enter]
keys when using the
Osmosdr_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 accepts
SignalSource.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. IfTelemetryDecoder_XX.dump=true
, the resulting
.dat
binary file is also delivered in.mat
format, which is readable from
Matlab and Python.
See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/