Software Open Access
Carles Fernandez; Javier Arribas; Gabriel Araujo; antonioramosdet; Damian Miralles; mmajoral; Luis Esteve; odrisci; Piyush Gupta; Anthony Arnold; Gerald LaMountain; Álvaro Cebrián Juan; marc-sales; Andrés Cecilia Luque; SergiSeguraMunoz; marabra; OSQZSS; Zosoworld; Marc L; lmne741; Bitsulia Dmitry; Michael Dickens; Sergey; Academias IT; Dawei Sun; Usman Haider
This is a maintenance release which includes bug fixes, compatibility with the most recent compiler versions, some code optimization and the addition of minor new features. Most relevant changes with respect to the former release are listed below:Improvements in Efficiency:
Gnss_Synchroobjects by reducing the amount of copying via adding
noexceptmove constructor and move assignment operators, so the move semantics are also used in STL containers.
std::endlhave been replaced by the
'\n'character, since there is no need to always flush the stream.
ENABLE_STRIPto generate stripped binaries (that is, without debugging symbols), smaller in size and potentially providing better performance than non-stripped counterparts. Only for GCC in Release build mode. Set to
std::make_uniquefor buildings with C++11, and make use of it along the source code.
GNSSBlockFactoryclass public API and internal implementation.
-fno-common, causing an error due to multiple defined lambda functions).
ENABLE_CLANG_TIDYoption; better GFORTRAN module; and broader adoption of the modern per-target approach.
std::spanif the compiler supports it, and use gsl-lite as a fallback. The latter has been updated to version 0.37.0.
None. This allows packaging in some distributions that pass an arbitrary name as the build type (e.g., Gentoo) to avoid unexpected compiler flags. The building option
ENABLE_PACKAGINGmust be set to
ENABLE_BENCHMARKS, which activates the building of benchmarks for some code snippets, making it easier to developers to benchmark different implementations for the same purpose. Set to
./thirdpartyfolder under the building directory. In case of an out-of-source-tree build, the generated binaries are stored in an
./installfolder, also under the building directory. The old behavior for generated binaries is maintained if the building is done from any source tree subfolder (for instance,
gnss-sdr/build): in that case, binaries are stored in the source tree (under
GNSS-SDR.Beidou_banned_prnsconfiguration parameters. The user can specify lists of satellites that will not be processed (e.g.,
GNSS-SDR.Galileo_banned_prns=14,18since Galileo E14 and E18 satellites are not usable for PVT). Satellites on those lists will never be assigned to a processing channel.
-DENABLE_LOG=OFF, which strips internal logging from the binary and can help to reduce its size and ultimately to speed up the receiver. In binaries with enabled logging, it still can be disabled by passing the command line flag
gnss-sdr. This can be relevant in embedded devices with scarce storage capabilities.
samplesparameter accepts values up to 2^64-1, that is, 18,446,744,073,709,551,615 samples.
PVT.nmea_dump_devnameparameter was ignored).
See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/