Add link to changelog in README.md file

Improve markdown usage and wording in changelog.md
This commit is contained in:
Carles Fernandez 2021-05-28 12:19:44 +02:00
parent 54f9a01082
commit 7c89df7039
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
2 changed files with 178 additions and 167 deletions

View File

@ -46,6 +46,8 @@ a framework for the development of new features. Please visit
[https://gnss-sdr.org](https://gnss-sdr.org "GNSS-SDR website") for more [https://gnss-sdr.org](https://gnss-sdr.org "GNSS-SDR website") for more
information about this open-source, software-defined GNSS receiver. information about this open-source, software-defined GNSS receiver.
:sparkles: See what's new in the [changelog](./docs/changelog.md).
# Table of Contents # Table of Contents
<details> <details>

View File

@ -8,6 +8,10 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
) )
<!-- prettier-ignore-end --> <!-- prettier-ignore-end -->
# Changelog
All notable changes to GNSS-SDR will be documented in this file.
## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next) ## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next)
### Improvements in Availability: ### Improvements in Availability:
@ -15,13 +19,13 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Added the reading of reduced clock and ephemeris data (CED) in the Galileo E1B - Added the reading of reduced clock and ephemeris data (CED) in the Galileo E1B
INAV message introduced in Galileo OS SIS ICD Issue 2.0. If the reduced CED is INAV message introduced in Galileo OS SIS ICD Issue 2.0. If the reduced CED is
available before the full ephemeris set, it is used for PVT computation until available before the full ephemeris set, it is used for PVT computation until
the full set has not yet been received. This can contribute to shorten the the full set has not yet been received. This can contribute to shortening the
Time-To-First-Fix. Time-To-First-Fix.
- Added the exploitation of the FEC2 Erasure Correction in the Galileo E1B INAV - Added the exploitation of the FEC2 Erasure Correction in the Galileo E1B INAV
message introduced in Galileo OS SIS ICD Issue 2.0. This can contribute to message introduced in Galileo OS SIS ICD Issue 2.0. This can contribute to
shorten the Time-To-First-Fix. Since the added computational cost could break shortening the Time-To-First-Fix. Since the added computational cost could
some real-time configurations, this feature is disabled by default. It can be break some real-time configurations, this feature is disabled by default. It
activated from the configuration file by adding can be activated from the configuration file by adding
`TelemetryDecoder_1B.enable_reed_solomon=true`. `TelemetryDecoder_1B.enable_reed_solomon=true`.
### Improvements in Maintainability: ### Improvements in Maintainability:
@ -36,25 +40,25 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Improved handling of change in GNU Radio 3.9 FFT API. - Improved handling of change in GNU Radio 3.9 FFT API.
- Improved handling of the filesystem library. - Improved handling of the filesystem library.
- Added an abstract class `SignalSourceInterface` and a common base class - Added an abstract class `SignalSourceInterface` and a common base class
`SignalSourceBase`, which allow to remove a lot of duplicated code in Signal `SignalSourceBase`, which allow removing a lot of duplicated code in Signal
Source blocks, and further abstract file-based interfaces behind them. Source blocks, and further abstract file-based interfaces behind them.
- Do not apply clang-tidy fixes to protobuf-generated headers. - Do not apply clang-tidy fixes to protobuf-generated headers.
- Refactored private implementation of flow graph connection and disconnection - Refactored private implementation of flow graph connection and disconnection
for improved source code readability. for improved source code readability.
- Added a base class for GNSS ephemeris, saving some duplicated code and - Added a base class for GNSS ephemeris, saving some duplicated code and
providing a common nomenclature for ephemeris' parameters. New generated XML providing a common nomenclature for ephemeris' parameters. New generated XML
files make use of the new parameters' name. files make use of the new parameters' names.
- Update GSL implementation to 0.38.1. See - Update GSL implementation to 0.38.1. See
https://github.com/gsl-lite/gsl-lite/releases/tag/v0.38.1 https://github.com/gsl-lite/gsl-lite/releases/tag/v0.38.1
### Improvements in Portability: ### Improvements in Portability:
- Avoid collision of the `cpu_features` library when installing the - Avoid collision of the `cpu_features` library when installing the
`volk_gnsssdr` library by its own, and VOLK has already installed its version. `volk_gnsssdr` library on its own, and VOLK has already installed its version.
Added a new building option `ENABLE_OWN_CPUFEATURES`, defaulting to `ON` when Added a new building option `ENABLE_OWN_CPUFEATURES`, defaulting to `ON` when
building `gnss-sdr` but defaulting to `OFF` when building a stand-alone building `gnss-sdr` but defaulting to `OFF` when building a stand-alone
version of `volk_gnsssdr`. When this building option is set to `ON`, it forces version of `volk_gnsssdr`. When this building option is set to `ON`, it forces
the building of the local version of the cpu_features library, regardless of the building of the local version of the `cpu_features` library, regardless of
whether it is already installed or not. whether it is already installed or not.
- Fix building when using the Xcode generator, Xcode >= 12 and CMake >= 3.19. - Fix building when using the Xcode generator, Xcode >= 12 and CMake >= 3.19.
- Fix building of FPGA blocks when linking against GNU Radio >= 3.9 and/or - Fix building of FPGA blocks when linking against GNU Radio >= 3.9 and/or
@ -67,8 +71,8 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Added a new `Fifo_Signal_Source` implementation that allows using a - Added a new `Fifo_Signal_Source` implementation that allows using a
[Unix FIFO](https://en.wikipedia.org/wiki/Named_pipe) as a signal source, thus [Unix FIFO](https://en.wikipedia.org/wiki/Named_pipe) as a signal source, thus
allowing to multiplex signal streams outside of `gnss-sdr`, letting another allowing to multiplex signal streams outside of `gnss-sdr`, letting another
program to hold access to the receiver, or allowing signal sources that are program hold access to the receiver, or allowing signal sources that are not
not supported by `gnss-sdr` but can dump the signal to a FIFO. supported by `gnss-sdr` but can dump the signal to a FIFO.
- Avoid segmentation faults in the flow graph connection and/or starting due to - Avoid segmentation faults in the flow graph connection and/or starting due to
some common inconsistencies in the configuration file. some common inconsistencies in the configuration file.
- Provide hints to the user in case of failed flow graph connection due to - Provide hints to the user in case of failed flow graph connection due to
@ -96,14 +100,14 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
&nbsp; &nbsp;
## [GNSS-SDR v0.0.14](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.14) ## [GNSS-SDR v0.0.14](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.14) - 2021-01-08
### Improvements in Availability: ### Improvements in Availability:
- Fixed bug in acquisition detection when the configuration parameter - Fixed bug in acquisition detection when the configuration parameter
`Acquisition_XX.threshold` was set but `Acquisition_XX.pfa` was not, causing `Acquisition_XX.threshold` was set but `Acquisition_XX.pfa` was not, causing
false locks. false locks.
- Fixed anti-jamming filters: `Pulse_Blanking_Filter`, `Notch_Filter` and - Fixed anti-jamming filters: `Pulse_Blanking_Filter`, `Notch_Filter`, and
`Notch_Filter_Lite`. `Notch_Filter_Lite`.
### Improvements in Efficiency: ### Improvements in Efficiency:
@ -121,8 +125,8 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
### Improvements in Maintainability: ### Improvements in Maintainability:
- Added a common shared pointer definition `gnss_shared_ptr`, which allows to - Added a common shared pointer definition `gnss_shared_ptr`, which allows
handle the `boost::shared_ptr` to `std::shared_ptr` transition in GNU Radio handling the `boost::shared_ptr` to `std::shared_ptr` transition in GNU Radio
3.9 API more nicely. 3.9 API more nicely.
- Support new FFT and firdes blocks' API in GNU Radio 3.9. - Support new FFT and firdes blocks' API in GNU Radio 3.9.
- Added detection of inconsistent function prototypes in `volk_gnsssdr` library - Added detection of inconsistent function prototypes in `volk_gnsssdr` library
@ -165,7 +169,7 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Fixed a bug introduced in v0.0.13 that prevented getting Galileo-only PVT - Fixed a bug introduced in v0.0.13 that prevented getting Galileo-only PVT
fixes in some environments. fixes in some environments.
- Fixed duplication of protobuf build tree if it was locally built and then - Fixed duplication of protobuf build tree if it was locally built and then
installed with DESTDIR variable set. installed with `DESTDIR` variable set.
### Improvements in Usability: ### Improvements in Usability:
@ -202,7 +206,7 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
&nbsp; &nbsp;
## [GNSS-SDR v0.0.13](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.13) ## [GNSS-SDR v0.0.13](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.13) - 2020-07-29
### Improvements in Efficiency: ### Improvements in Efficiency:
@ -223,7 +227,7 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Improved usage of smart pointers to better express ownership of resources. - Improved usage of smart pointers to better express ownership of resources.
- Add definition of `std::make_unique` for buildings with C++11, and make use of - Add definition of `std::make_unique` for buildings with C++11, and make use of
it along the source code. it through the source code.
- Private members in headers have been sorted by type and size, minimizing - Private members in headers have been sorted by type and size, minimizing
padding space in the stack and making the files more readable for humans. padding space in the stack and making the files more readable for humans.
- Simpler, less error-prone design of the `GNSSBlockFactory` class public API - Simpler, less error-prone design of the `GNSSBlockFactory` class public API
@ -231,14 +235,14 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Simpler API for the `Pvt_Solution` class. - Simpler API for the `Pvt_Solution` class.
- Improved system constant definition headers, numerical values are only written - Improved system constant definition headers, numerical values are only written
once. once.
- Improved const correctness. - Improved `const` correctness.
- The software can now be built against the GNU Radio 3.9 API that uses standard - The software can now be built against the GNU Radio 3.9 API that uses standard
library's smart pointers instead of Boost's. Minimum GNU Radio required library's smart pointers instead of Boost's. Minimum GNU Radio required
version still remains at 3.7.3. version still remains at 3.7.3.
- The software can now be built against Boost <= 1.73 (minimum version: 1.53). - The software can now be built against Boost <= 1.73 (minimum version: 1.53).
- Fixed building with GCC 10 (gcc-10 and above flipped a default from `-fcommon` - Fixed building with GCC 10 (gcc-10 and above flipped a default from `-fcommon`
to `-fno-common`, causing an error due to multiple defined lambda functions). to `-fno-common`, causing an error due to multiple defined lambda functions).
- Fixed warnings risen by GCC 10 and Clang 10. - Fixed warnings raised by GCC 10 and Clang 10.
- Various improvements in the CMake scripts: better decision on the C++ standard - Various improvements in the CMake scripts: better decision on the C++ standard
to use; simplifications for various API dependency and environment versions to use; simplifications for various API dependency and environment versions
requirements, with more intuitive naming for variables; fixed the requirements, with more intuitive naming for variables; fixed the
@ -249,10 +253,10 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- The software can now be cross-compiled on Petalinux environments. - The software can now be cross-compiled on Petalinux environments.
- Removed python six module as a dependency if using Python 3.x. - Removed python six module as a dependency if using Python 3.x.
- Make use of `std::span` if the compiler supports it, and use gsl-lite as a - Make use of `std::span` if the compiler supports it, and use `gsl-lite` as a
fallback. The latter has been updated to version fallback. The latter has been updated to version
[0.37.0](https://github.com/gsl-lite/gsl-lite/releases/tag/0.37.0). [0.37.0](https://github.com/gsl-lite/gsl-lite/releases/tag/0.37.0).
- Improved finding of libgfortran in openSUSE and Fedora distributions. - Improved finding of `libgfortran` in openSUSE and Fedora distributions.
- Improved interface for FPGA off-loading. - Improved interface for FPGA off-loading.
- Allow a random name for the build type. If not recognized, it is set to - Allow a random name for the build type. If not recognized, it is set to
`None`. This allows packaging in some distributions that pass an arbitrary `None`. This allows packaging in some distributions that pass an arbitrary
@ -269,7 +273,7 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
### Improvements in Reproducibility: ### Improvements in Reproducibility:
- Improved reproducibility of the volk_gnsssdr library: Drop compile-time CPU - Improved reproducibility of the `volk_gnsssdr` library: Drop compile-time CPU
detection. detection.
### Improvements in Testability: ### Improvements in Testability:
@ -282,7 +286,7 @@ SPDX-FileCopyrightText: 2011-2021 Carles Fernandez-Prades <carles.fernandez@cttc
- Do not pollute the source directory if the software is built from an - Do not pollute the source directory if the software is built from an
out-of-source-tree directory. Downloaded external sources and test raw files out-of-source-tree directory. Downloaded external sources and test raw files
are now stored in a `./thirdparty` folder under the building directory. In are now stored in a `./thirdparty` folder under the building directory. In the
case of an out-of-source-tree build, the generated binaries are stored in an case of an out-of-source-tree build, the generated binaries are stored in an
`./install` folder, also under the building directory. The old behavior for `./install` folder, also under the building directory. The old behavior for
generated binaries is maintained if the building is done from any source tree generated binaries is maintained if the building is done from any source tree
@ -316,7 +320,7 @@ https://gnss-sdr.org/design-forces/
&nbsp; &nbsp;
## [GNSS-SDR v0.0.12](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.12) ## [GNSS-SDR v0.0.12](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.12) - 2020-03-13
### Improvements in Accuracy: ### Improvements in Accuracy:
@ -338,7 +342,7 @@ https://gnss-sdr.org/design-forces/
### Improvements in Flexibility: ### Improvements in Flexibility:
- New Tracking parameters allow the configuration of the C/N0 and lock detector - New Tracking parameters allow the configuration of the C/N0 and lock detector
smoothers, as well as the activation of the FLL in pull-in and steady state smoothers, as well as the activation of the FLL in pull-in and steady-state
stages. stages.
- Added new Tracking parameter `Tracking_XX.carrier_aiding`, allowing - Added new Tracking parameter `Tracking_XX.carrier_aiding`, allowing
enabling/disabling of carrier aiding to the code tracking loop. enabling/disabling of carrier aiding to the code tracking loop.
@ -389,8 +393,8 @@ https://gnss-sdr.org/design-forces/
- Apply more clang-tidy checks related to readability: - Apply more clang-tidy checks related to readability:
`readability-avoid-const-params-in-decls`, `readability-avoid-const-params-in-decls`,
`readability-braces-around-statements`, `readability-isolate-declaration`, `readability-braces-around-statements`, `readability-isolate-declaration`,
`readability-redundant-control-flow`, `readability-uppercase-literal-suffix`. `readability-redundant-control-flow`, and
Fixed raised warnings. `readability-uppercase-literal-suffix`. Fixed raised warnings.
- Fixed a number of defects detected by `cpplint.py`. Filters applied: - Fixed a number of defects detected by `cpplint.py`. Filters applied:
`+build/class`, `+build/c++14`, `+build/deprecated`, `+build/class`, `+build/c++14`, `+build/deprecated`,
`+build/explicit_make_pair`, `+build/include_what_you_use`, `+build/explicit_make_pair`, `+build/include_what_you_use`,
@ -399,19 +403,19 @@ https://gnss-sdr.org/design-forces/
`+runtime/casting`, `+runtime/explicit`, `+runtime/indentation_namespace`, `+runtime/casting`, `+runtime/explicit`, `+runtime/indentation_namespace`,
`+runtime/init`, `+runtime/invalid_increment`, `+runtime/init`, `+runtime/invalid_increment`,
`+runtime/member_string_references`, `+runtime/memset`, `+runtime/operator`, `+runtime/member_string_references`, `+runtime/memset`, `+runtime/operator`,
`+runtime/printf`, `+runtime/printf_format`, `+whitespace/blank_line`. `+runtime/printf`, `+runtime/printf_format`, and `+whitespace/blank_line`.
- `clang-format` can now be applied to the whole code tree without breaking - `clang-format` can now be applied to the whole code tree without breaking
compilation. compilation.
- Added more check options to `.clang-tidy` file. - Added more check options to `.clang-tidy` file.
- Default Python version is now >= 3.4. Python 2.7 still can be used in systems - Default Python version is now >= 3.4. Python 2.7 still can be used in systems
where Python 3 is not available (e.g., CentOS 7, Debian 8, Ubuntu 10.04). where Python 3 is not available (e.g., CentOS 7, Debian 8, Ubuntu 10.04).
- CMake now passes the `-DCMAKE_BUILD_TYPE` (or configuration in - CMake now passes the `-DCMAKE_BUILD_TYPE` (or configuration in
multi-configuration generators like Xcode) to modules built along gnss-sdr multi-configuration generators like Xcode) to modules built along with
(e.g, the volk_gnsssdr library and googletest). Build types available: `None`, `gnss-sdr` (e.g, the `volk_gnsssdr` library and googletest). Build types
`Release` (by default), `Debug`, `RelWithDebInfo`, `MinSizeRel`, `Coverage`, available: `None`, `Release` (by default), `Debug`, `RelWithDebInfo`,
`NoOptWithASM`, `O2WithASM`, `O3WithASM`, `ASAN`. `MinSizeRel`, `Coverage`, `NoOptWithASM`, `O2WithASM`, `O3WithASM`, `ASAN`.
- Fix runtime errors when compiling in `Debug` mode on macOS. - Fix runtime errors when compiling in `Debug` mode on macOS.
- Updated links in comments along the source code and in CMake scripts. - Updated links in comments through the source code and in CMake scripts.
- Update GSL implementation to 0.36.0. See - Update GSL implementation to 0.36.0. See
https://github.com/gsl-lite/gsl-lite/releases/tag/v0.36.0 https://github.com/gsl-lite/gsl-lite/releases/tag/v0.36.0
- Create a CI job on GitHub to ensure that `clang-tidy` has been applied in most - Create a CI job on GitHub to ensure that `clang-tidy` has been applied in most
@ -433,18 +437,20 @@ https://gnss-sdr.org/design-forces/
### Improvements in Portability: ### Improvements in Portability:
- The CMake scripts now find dependencies in Debian's riscv64 architecture. - The CMake scripts now find dependencies in Debian's riscv64 architecture.
- Enable AVX2 kernels of the volk_gnsssdr library when using the Clang compiler. - Enable AVX2 kernels of the `volk_gnsssdr` library when using the Clang
compiler.
- Fixed building in some ARM-based devices. Now Clang and ARMClang can be used - Fixed building in some ARM-based devices. Now Clang and ARMClang can be used
for native building. for native building.
- Added toolchain files for building gnss-sdr and the volk_gnsssdr library in - Added toolchain files for building gnss-sdr and the `volk_gnsssdr` library in
several ARM processor architectures, including those in Raspberry Pi 3 and 4. several ARM processor architectures, including those in Raspberry Pi 3 and 4.
- The software can now be built using Xcode (passing `-GXcode` to CMake) without - The software can now be built using Xcode (passing `-GXcode` to CMake) without
previous manual installation of volk_gnsssdr. previous manual installation of `volk_gnsssdr`.
- The software can now be built using Xcode (passing `-GXcode` to CMake) without - The software can now be built using Xcode (passing `-GXcode` to CMake) without
gflags, glog, matio, PugiXML, Protocol Buffers or googletest previously gflags, glog, matio, PugiXML, Protocol Buffers or googletest previously
installed. installed.
- Now the volk_gnsssdr library can be built on Microsoft Windows. - Now the `volk_gnsssdr` library can be built on Microsoft Windows.
- Now the volk_gnsssdr library makes use of C11 `aligned_alloc` where available. - Now the `volk_gnsssdr` library makes use of C11 `aligned_alloc` where
available.
- Improved CMake script for cross-compilation and for the detection of AVX, AVX2 - Improved CMake script for cross-compilation and for the detection of AVX, AVX2
and NEON (v7 and v8) instructions. and NEON (v7 and v8) instructions.
- Fixed warnings raised by CMake 3.17. - Fixed warnings raised by CMake 3.17.
@ -490,10 +496,10 @@ https://gnss-sdr.org/design-forces/
- Improved DLL-PLL binary dump MATLAB/Octave plot script. Old versions removed. - Improved DLL-PLL binary dump MATLAB/Octave plot script. Old versions removed.
- Simplified RTKLIB error log. - Simplified RTKLIB error log.
- Added a Python 3 plotting script to show relative performance of generic - Added a Python 3 plotting script to show relative performance of generic
volk_gnsssdr kernels wrt SIMD fastest versions. `volk_gnsssdr` kernels wrt. SIMD fastest versions.
- Added reporting of velocity in the terminal. - Added reporting of velocity in the terminal.
- Added reporting of user clock drift estimation, in ppm, in the Pvt_Monitor and - Added reporting of user clock drift estimation, in ppm, in the `Pvt_Monitor`
in internal logging (`Debug` mode). and in internal logging (`Debug` mode).
- Updated documentation generated by Doxygen, now the `pdfmanual` target works - Updated documentation generated by Doxygen, now the `pdfmanual` target works
when using ninja. when using ninja.
- CMake now generates an improved summary of required/optional dependency - CMake now generates an improved summary of required/optional dependency
@ -508,7 +514,7 @@ https://gnss-sdr.org/design-forces/
&nbsp; &nbsp;
## [GNSS-SDR v0.0.11](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.11) ## [GNSS-SDR v0.0.11](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.11) - 2019-08-04
This release has several improvements in different dimensions, addition of new This release has several improvements in different dimensions, addition of new
features and bug fixes: features and bug fixes:
@ -541,14 +547,15 @@ features and bug fixes:
messages (acceleration by x1.6 on average per channel). messages (acceleration by x1.6 on average per channel).
- Shortened Acquisition to Tracking transition time. - Shortened Acquisition to Tracking transition time.
- Applied clang-tidy checks and fixes related to performance: - Applied clang-tidy checks and fixes related to performance:
performance-faster-string-find, performance-for-range-copy, `performance-faster-string-find`, `performance-for-range-copy`,
performance-implicit-conversion-in-loop, performance-inefficient-algorithm, `performance-implicit-conversion-in-loop`,
performance-inefficient-string-concatenation, `performance-inefficient-algorithm`,
performance-inefficient-vector-operation, performance-move-const-arg, `performance-inefficient-string-concatenation`,
performance-move-constructor-init, performance-noexcept-move-constructor, `performance-inefficient-vector-operation`, `performance-move-const-arg`,
performance-type-promotion-in-math-fn, `performance-move-constructor-init`, `performance-noexcept-move-constructor`,
performance-unnecessary-copy-initialization, `performance-type-promotion-in-math-fn`,
performance-unnecessary-value-param, readability-string-compare. `performance-unnecessary-copy-initialization`,
`performance-unnecessary-value-param`, `readability-string-compare`.
### Improvements in Flexibility: ### Improvements in Flexibility:
@ -566,36 +573,36 @@ features and bug fixes:
- Added a custom UDP/IP output for PVT data streaming. - Added a custom UDP/IP output for PVT data streaming.
- Improved Monitor block with UDP/IP output for internal receiver's data - Improved Monitor block with UDP/IP output for internal receiver's data
streaming. streaming.
- Custom output formats described with .proto files, making easier to other - Custom output formats described with `.proto` files, making easier to other
applications reading them in a forward and backward-compatible fashion upon applications reading them in a forward and backward-compatible fashion upon
future format changes. New dependency: Protocol Buffers >= 3.0.0 future format changes. New dependency: Protocol Buffers >= 3.0.0
- Fixes in RINEX generation: week rollover, annotations are not repeated anymore - Fixes in RINEX generation: week rollover, annotations are not repeated anymore
in navigation files. Parameter rinexnav_rate_ms has been removed, annotations in navigation files. Parameter `PVT.rinexnav_rate_ms` has been removed,
are made as new ephemeris arrive. annotations are made as new ephemeris arrive.
- Fixes in RTCM messages generation: week rollover. - Fixes in RTCM messages generation: week rollover.
### Improvements in Maintainability: ### Improvements in Maintainability:
- The internal communication mechanism based on gr::msg_queue has been replaced - The internal communication mechanism based on `gr::msg_queue` has been
by a thread-safe, built-in asynchronous message passing system based on GNU replaced by a thread-safe, built-in asynchronous message passing system based
Radio's Polymorphic Types. This change is backwards-compatible and prevents on GNU Radio's Polymorphic Types. This change is backwards-compatible and
from a failure in case of a possible future deprecation or removal of the prevents from a failure in case of a possible future deprecation or removal of
gr::msg_queue API. the `gr::msg_queue` API.
- Deprecated boost::asio::io_service replaced by boost::asio::io_context if - Deprecated `boost::asio::io_service` replaced by `boost::asio::io_context` if
Boost > 1.65 Boost > 1.65
- CMake turns all policies to ON according to the running version up to version - CMake turns all policies to ON according to the running version up to version
3.15. 3.15.
- Usage of clang-tidy integrated into CMake scripts. New option - Usage of clang-tidy integrated into CMake scripts. New option
-DENABLE_CLANG_TIDY=ON executes clang-tidy along with compilation. Requires `-DENABLE_CLANG_TIDY=ON` executes clang-tidy along with compilation. Requires
clang compiler. clang compiler.
- Applied clang-tidy checks and fixes related to readability: - Applied clang-tidy checks and fixes related to readability:
readability-container-size-empty, readability-identifier-naming, `readability-container-size-empty`, `readability-identifier-naming`,
readability-inconsistent-declaration-parameter-name, `readability-inconsistent-declaration-parameter-name`,
readability-named-parameter, readability-non-const-parameter, `readability-named-parameter`, `readability-non-const-parameter`,
readability-string-compare. `readability-string-compare`.
- Improved includes selection following suggestions by include-what-you-use (see - Improved includes selection following suggestions by `include-what-you-use`
https://include-what-you-use.org/), allowing faster compiles, fewer recompiles (see https://include-what-you-use.org/), allowing faster compiles, fewer
and making refactoring easier. recompiles and making refactoring easier.
- Massive reduction of warnings triggered by clang-tidy checks. - Massive reduction of warnings triggered by clang-tidy checks.
- Throughout code cleaning and formatting performed with automated tools in - Throughout code cleaning and formatting performed with automated tools in
order to reduce future commit noise. order to reduce future commit noise.
@ -609,12 +616,12 @@ features and bug fixes:
- Improvements for macOS users using Homebrew. - Improvements for macOS users using Homebrew.
- The software builds against GNU Radio >= 3.7.3, including 3.8.0. Automatically - The software builds against GNU Radio >= 3.7.3, including 3.8.0. Automatically
detected, no user intervention is required. detected, no user intervention is required.
- The volk_gnsssdr library can now be built without requiring Boost if the - The `volk_gnsssdr` library can now be built without requiring Boost if the
compiler supports C++17 or higher. compiler supports C++17 or higher.
- The Boost Filesystem library is not anymore a required dependency in cases - The Boost Filesystem library is not anymore a required dependency in cases
where it can be replaced by std::filesystem. Automatically detected, no user where it can be replaced by `std::filesystem`. Automatically detected, no user
intervention is required. intervention is required.
- CMake scripts automatically select among C++11, C++14, C++17 or C++20 - CMake scripts automatically select among C++11, C++14, C++17, or C++20
standards, the most recent as possible, depending on compiler and dependencies standards, the most recent as possible, depending on compiler and dependencies
versions. versions.
- Drawback in portability: Protocol Buffers >= 3.0.0 is a new required - Drawback in portability: Protocol Buffers >= 3.0.0 is a new required
@ -625,10 +632,11 @@ features and bug fixes:
- Included the Guidelines Support Library. General improvement of memory - Included the Guidelines Support Library. General improvement of memory
management, replacement of raw pointers by containers or smart pointers. management, replacement of raw pointers by containers or smart pointers.
- Applied clang-tidy checks and fixes related to High Integrity C++: - Applied clang-tidy checks and fixes related to High Integrity C++:
performance-move-const-arg, modernize-use-auto, modernize-use-equals-default, `performance-move-const-arg`, `modernize-use-auto`,
modernize-use-equals-delete, modernize-use-noexcept, modernize-use-nullptr, `modernize-use-equals-default`, `modernize-use-equals-delete`,
cert-dcl21-cpp, misc-new-delete-overloads, cert-dcl58-cpp, cert-err52-cpp, `modernize-use-noexcept`, `modernize-use-nullptr`, `cert-dcl21-cpp`,
cert-err60-cpp, hicpp-exception-baseclass, hicpp-explicit-conversions. `misc-new-delete-overloads`, `cert-dcl58-cpp`, `cert-err52-cpp`,
`cert-err60-cpp`, `hicpp-exception-baseclass`, `hicpp-explicit-conversions`.
- Fixed a number of defects detected by Coverity Scan (version June 2019). - Fixed a number of defects detected by Coverity Scan (version June 2019).
### Improvements in Usability: ### Improvements in Usability:
@ -638,12 +646,12 @@ features and bug fixes:
channels per signal in multiple bands. channels per signal in multiple bands.
- Fixed program termination (avoiding hangs and segfaults in some - Fixed program termination (avoiding hangs and segfaults in some
platforms/configurations). platforms/configurations).
- The Labsat_Signal_Source now terminates the receiver's execution when the end - The `Labsat_Signal_Source` now terminates the receiver's execution when the
of file(s) is reached. It now accepts LabSat 2 filenames and series of LabSat end of file(s) is reached. It now accepts LabSat 2 filenames and series of
3 files. LabSat 3 files.
- Added configuration parameters to set the annotation rate in KML, GPX, GeoJSON - Added configuration parameters to set the annotation rate in KML, GPX, GeoJSON
and NMEA outputs, set by default to 1 s. and NMEA outputs, set by default to 1 s.
- New parameter PVT.show_local_time_zone displays time in the local time zone. - New parameter `PVT.show_local_time_zone` displays time in the local time zone.
Subject to the proper system configuration of the machine running the software Subject to the proper system configuration of the machine running the software
receiver. This feature is not available in old compilers. receiver. This feature is not available in old compilers.
- CMake now generates a summary of required/optional dependency packages found - CMake now generates a summary of required/optional dependency packages found
@ -657,7 +665,7 @@ https://gnss-sdr.org/design-forces/
&nbsp; &nbsp;
## [GNSS-SDR v0.0.10](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.10) ## [GNSS-SDR v0.0.10](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.10) - 2018-12-14
This release has several improvements in different dimensions, addition of new This release has several improvements in different dimensions, addition of new
features and bug fixes: features and bug fixes:
@ -693,11 +701,11 @@ features and bug fixes:
band are immediately searched in others. band are immediately searched in others.
- Complex local codes have been replaced by real codes, alleviating the - Complex local codes have been replaced by real codes, alleviating the
computational burden. computational burden.
- New volk_gnsssdr kernels: volk_gnsssdr_16i_xn_resampler_16i_xn.h, - New `volk_gnsssdr` kernels: `volk_gnsssdr_16i_xn_resampler_16i_xn.h`,
volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h, `volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h`,
volk_gnsssdr_32f_xn_resampler_32f_xn.h, `volk_gnsssdr_32f_xn_resampler_32f_xn.h`, and
volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h `volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h`.
- Some AVX2 implementations added to the volk_gnsssdr library. - Some AVX2 implementations added to the `volk_gnsssdr` library.
- Improvement in C++ usage: Use of const container calls when result is - Improvement in C++ usage: Use of const container calls when result is
immediately converted to a const iterator. Using these members removes an immediately converted to a const iterator. Using these members removes an
implicit conversion from iterator to const_iterator. implicit conversion from iterator to const_iterator.
@ -722,13 +730,13 @@ features and bug fixes:
- Added the GLONASS L2 SP receiver chain. - Added the GLONASS L2 SP receiver chain.
- Improvements in the Galileo E5a and GPS L2C receiver chains. - Improvements in the Galileo E5a and GPS L2C receiver chains.
- Updated list of available GNSS satellites. - Updated list of available GNSS satellites.
- Added five more signal sources: "Fmcomms2_Signal_Source" (requires gr-iio), - Added five more signal sources: `Fmcomms2_Signal_Source` (requires gr-iio),
"Plutosdr_Signal Source" (requires gr-iio), "Spir_GSS6450_File_Signal_Source", `Plutosdr_Signal Source` (requires gr-iio), `Spir_GSS6450_File_Signal_Source`,
"Labsat_Signal_Source" and "Custom_UDP_Signal_Source" (requires libpcap). `Labsat_Signal_Source` and `Custom_UDP_Signal_Source` (requires libpcap).
Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/ Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/
- Improved support for BladeRF, HackRF and RTL-SDR front-ends. - Improved support for BladeRF, HackRF and RTL-SDR front-ends.
- Added tools for the interaction with front-ends based on the AD9361 chipset. - Added tools for the interaction with front-ends based on the AD9361 chipset.
- Intermediate results are now saved in MAT-file format (.mat), readable from - Intermediate results are now saved in MAT-file format (`.mat`), readable from
Matlab/Octave and from Python via h5py. Matlab/Octave and from Python via h5py.
- Added the GPX output format. - Added the GPX output format.
- Improvements in the generation of KML files. - Improvements in the generation of KML files.
@ -741,7 +749,7 @@ features and bug fixes:
https://www.gsc-europa.eu/system-status/almanac-data https://www.gsc-europa.eu/system-status/almanac-data
- Own-defined XML schemas for navigation data published at - Own-defined XML schemas for navigation data published at
https://github.com/gnss-sdr/gnss-sdr/tree/next/docs/xml-schemas https://github.com/gnss-sdr/gnss-sdr/tree/next/docs/xml-schemas
- Added program rinex2assist to convert RINEX navigation files into XML files - Added program `rinex2assist` to convert RINEX navigation files into XML files
usable for Assisted GNSS. Only available building from source. See usable for Assisted GNSS. Only available building from source. See
https://github.com/gnss-sdr/gnss-sdr/tree/next/src/utils/rinex2assist https://github.com/gnss-sdr/gnss-sdr/tree/next/src/utils/rinex2assist
@ -769,7 +777,7 @@ features and bug fixes:
system headers. This helps to detect missing includes. system headers. This helps to detect missing includes.
- Improvement in C++ usage: Enhanced const correctness. Misuses of those - Improvement in C++ usage: Enhanced const correctness. Misuses of those
variables are detected by the compiler. variables are detected by the compiler.
- Improved code with clang-tidy and generation of a compile_commands.json file - Improved code with clang-tidy and generation of a `compile_commands.json` file
containing the exact compiler calls for all translation units of the project containing the exact compiler calls for all translation units of the project
in machine-readable form if clang-tidy is detected. in machine-readable form if clang-tidy is detected.
- Applied some style rules to CMake scripts. - Applied some style rules to CMake scripts.
@ -787,16 +795,16 @@ features and bug fixes:
- The software can now be built using GCC >= 4.7.2 or LLVM/Clang >= 3.4.0 - The software can now be built using GCC >= 4.7.2 or LLVM/Clang >= 3.4.0
compilers on GNU/Linux, and with Clang/AppleClang on macOS. compilers on GNU/Linux, and with Clang/AppleClang on macOS.
- The Ninja build system can be used in replacement of make. - The Ninja build system can be used in replacement of make.
- The volk_gnsssdr library can be built using Python 2.7+ or Python 3.6+. - The `volk_gnsssdr` library can be built using Python 2.7+ or Python 3.6+.
- The volk_gnsssdr library is now ready for AArch64 NEON instructions. - The `volk_gnsssdr` library is now ready for AArch64 NEON instructions.
- Improved detection of required and optional dependencies in many GNU/Linux - Improved detection of required and optional dependencies in many GNU/Linux
distributions and processor architectures. distributions and processor architectures.
- Improvement in C++ usage: The <ctime> library has been replaced by the more - Improvement in C++ usage: The `<ctime>` library has been replaced by the more
modern and portable <chrono> (except for the interaction with RTKLIB). modern and portable `<chrono>` (except for the interaction with RTKLIB).
- Improvement in C++ usage: The <stdio.h> library has been replaced by the more - Improvement in C++ usage: The `<stdio.h>` library has been replaced by the
modern and portable <fstream> for file handling. more modern and portable `<fstream>` for file handling.
- Improvement in C++ usage: C++ libraries preferred over C libraries (e.g., - Improvement in C++ usage: C++ libraries preferred over C libraries (e.g.,
<cctype> instead of <ctype.h>, <cmath> instead of <math.h>). `<cctype>` instead of `<ctype.h>`, `<cmath>` instead of `<math.h>`).
- Fix compatibility with Boost 1.67 (closes Debian bug #911882 - Fix compatibility with Boost 1.67 (closes Debian bug #911882
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911882) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911882)
- Fixes required by Debian packaging. - Fixes required by Debian packaging.
@ -822,9 +830,9 @@ features and bug fixes:
- Fixed a number of defects detected by Coverity Scan. - Fixed a number of defects detected by Coverity Scan.
- Improvement of QA code and addition of a number of new tests. Documented at - Improvement of QA code and addition of a number of new tests. Documented at
https://gnss-sdr.org/docs/tutorials/testing-software-receiver-2/ https://gnss-sdr.org/docs/tutorials/testing-software-receiver-2/
- Improvement in C++ usage: rand() function replaced by <random> library. - Improvement in C++ usage: `rand()` function replaced by `<random>` library.
- Improvement in C++ usage: strlen and strncpy have been replaced by safer C++ - Improvement in C++ usage: `strlen` and `strncpy` have been replaced by safer
counterparts. C++ counterparts.
- Improvement in C++ usage: Some destructors have been fixed, avoiding - Improvement in C++ usage: Some destructors have been fixed, avoiding
segmentation faults when exiting the program. segmentation faults when exiting the program.
- Website switched from http to https. Links in the source tree switched when - Website switched from http to https. Links in the source tree switched when
@ -835,7 +843,7 @@ features and bug fixes:
- Setup of a Continuous Reproducibility system at GitLab for the automatic - Setup of a Continuous Reproducibility system at GitLab for the automatic
reproduction of experiments. The concept was introduced in reproduction of experiments. The concept was introduced in
https://ieeexplore.ieee.org/document/8331069/ Example added in the https://ieeexplore.ieee.org/document/8331069/ Example added in the
src/utils/reproducibility/ieee-access18/ folder. `src/utils/reproducibility/ieee-access18/` folder.
- Fixes of Lintian warnings related to build reproducibility. - Fixes of Lintian warnings related to build reproducibility.
### Improvements in Scalability: ### Improvements in Scalability:
@ -849,17 +857,17 @@ features and bug fixes:
- Several Unit Tests added. Documentation of testing concepts and available - Several Unit Tests added. Documentation of testing concepts and available
tests at https://gnss-sdr.org/docs/tutorials/testing-software-receiver/ tests at https://gnss-sdr.org/docs/tutorials/testing-software-receiver/
- New extra unit test AcquisitionPerformanceTest checks the performance of - New extra unit test `AcquisitionPerformanceTest` checks the performance of
Acquisition blocks. Acquisition blocks.
- New extra unit test TrackingPullInTest checks acquisition to tracking - New extra unit test `TrackingPullInTest` checks acquisition to tracking
transition. transition.
- New extra unit test HybridObservablesTest checks the generation of - New extra unit test `HybridObservablesTest` checks the generation of
observables. observables.
- Improved system testing: position_test accepts a wide list of parameters and - Improved system testing: position_test accepts a wide list of parameters and
can be used with external files. can be used with external files.
- Receiver channels can now be fixed to a given satellite. - Receiver channels can now be fixed to a given satellite.
- Testing integrated in a Continuous Reproducibility system (see above). - Testing integrated in a Continuous Reproducibility system (see above).
- Improved CTest support in volk_gnsssdr. - Improved CTest support in `volk_gnsssdr`.
### Improvements in Usability: ### Improvements in Usability:
@ -867,8 +875,8 @@ features and bug fixes:
implementation for all kinds of GNSS signals, making it easier to configure. implementation for all kinds of GNSS signals, making it easier to configure.
- All PVT block implementations have been merged into a single implementation - All PVT block implementations have been merged into a single implementation
for all kinds of GNSS signals, making it easier to configure. for all kinds of GNSS signals, making it easier to configure.
- Misleading parameter name GNSS-SDR.internal_fs_hz has been replaced by - Misleading parameter name `GNSS-SDR.internal_fs_hz` has been replaced by
GNSS-SDR.internal_fs_sps. The old parameter name is still read. If found, a `GNSS-SDR.internal_fs_sps`. The old parameter name is still read. If found, a
warning is provided to the user. The old name will be removed in future warning is provided to the user. The old name will be removed in future
releases. releases.
- Updated and improved online documentation of processing blocks at - Updated and improved online documentation of processing blocks at
@ -882,14 +890,14 @@ features and bug fixes:
template in the source tree. template in the source tree.
- Added colors to the commandline user interface. - Added colors to the commandline user interface.
- Updated manfiles. - Updated manfiles.
- Updated examples of configuration files under the conf/ folder. - Updated examples of configuration files under the `conf/` folder.
See the definitions of concepts and metrics at See the definitions of concepts and metrics at
https://gnss-sdr.org/design-forces/ https://gnss-sdr.org/design-forces/
&nbsp; &nbsp;
## [GNSS-SDR v0.0.9](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.9) ## [GNSS-SDR v0.0.9](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.9) - 2017-02-13
DOI: https://doi.org/10.5281/zenodo.291371 DOI: https://doi.org/10.5281/zenodo.291371
@ -914,8 +922,8 @@ many dimensions:
### Improvements in Efficiency: ### Improvements in Efficiency:
- VOLK_GNSSSDR: Added NEON,AVX and unaligned protokernels for - VOLK_GNSSSDR: Added NEON,AVX and unaligned protokernels for
volk_gnsssdr_32f_index_max_32 kernel. `volk_gnsssdr_32f_index_max_32` kernel.
- VOLK_GNSSSDR: Added volk_gnsssdr-config-info to the list of generated - VOLK_GNSSSDR: Added `volk_gnsssdr-config-info` to the list of generated
executables. executables.
### Improvements in Flexibility: ### Improvements in Flexibility:
@ -970,24 +978,24 @@ many dimensions:
### Improvements in Testability: ### Improvements in Testability:
- Major QA source code refactoring: they has been split into - Major QA source code refactoring: they has been split into
src/tests/unit-tests and src/tests/system-tests folders. They are optionally `src/tests/unit-tests` and `src/tests/system-tests` folders. They are
built with the ENABLE_UNIT_TESTING=ON (unit testing QA code), optionally built with the `ENABLE_UNIT_TESTING=ON` (unit testing QA code),
ENABLE_UNIT_TESTING_EXTRA=ON (unit tests that require extra files downloaded `ENABLE_UNIT_TESTING_EXTRA=ON` (unit tests that require extra files downloaded
at configure time), ENABLE_SYSTEM_TESTING=ON (system tests, such as at configure time), `ENABLE_SYSTEM_TESTING=ON` (system tests, such as
measurement of Time-To-First-Fix) and ENABLE_SYSTEM_TESTING_EXTRA=ON (extra measurement of Time-To-First-Fix) and `ENABLE_SYSTEM_TESTING_EXTRA=ON` (extra
system test requiring external tools, automatically downloaded and built at system test requiring external tools, automatically downloaded and built at
building time) configuration flags. The EXTRA options also download and build building time) configuration flags. The EXTRA options also download and build
a custom software-defined signal generator and version 2.9 of GPSTk, if not a custom software-defined signal generator and version 2.9 of GPSTk, if not
already found on the system. Download and local link of version 2.9 can be already found on the system. Download and local link of version 2.9 can be
forced by ENABLE_OWN_GPSTK=ON building configuration flag. Only forced by `ENABLE_OWN_GPSTK=ON` building configuration flag. Only
ENABLE_UNIT_TESTING is set to ON by default. `ENABLE_UNIT_TESTING` is set to ON by default.
- Unit tests added: CPU_multicorrelator_test and GPU_multicorrelator_test - Unit tests added: `CPU_multicorrelator_test` and `GPU_multicorrelator_test`
measure computer performance in multicorrelator setups. measure computer performance in multicorrelator setups.
- Unit tests added: GpsL1CADllPllTracking and GpsL1CATelemetryDecoderTest. - Unit tests added: `GpsL1CADllPllTracking` and `GpsL1CATelemetryDecoderTest`.
- System test added: ttff_gps_l1 performs a set of cold / assisted runs of the - System test added: `ttff_gps_l1` performs a set of cold / assisted runs of the
software receiver and computes statistics about the obtained Time To First software receiver and computes statistics about the obtained Time To First
Fix. Fix.
- System test added: obs_gps_l1_system_test uses an external software-defined - System test added: `obs_gps_l1_system_test` uses an external software-defined
signal generator to produce raw digital GNSS signal from a RINEX navigation signal generator to produce raw digital GNSS signal from a RINEX navigation
file and a position (static or dynamic), processes it with GNSS-SDR, and then file and a position (static or dynamic), processes it with GNSS-SDR, and then
compares the RINEX observation file produced by the software receiver to that compares the RINEX observation file produced by the software receiver to that
@ -1010,7 +1018,7 @@ https://gnss-sdr.org/design-forces/
&nbsp; &nbsp;
## [GNSS-SDR v0.0.8](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.8) ## [GNSS-SDR v0.0.8](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.8) - 2016-07-04
DOI: https://doi.org/10.5281/zenodo.57022 DOI: https://doi.org/10.5281/zenodo.57022
@ -1025,7 +1033,7 @@ respect to v0.0.7. The main changes are:
- Improved CUDA-based correlation. - Improved CUDA-based correlation.
- Updated documentation - Updated documentation
- Fixed building in mips and powerpc architectures. - Fixed building in mips and powerpc architectures.
- gr-gn3s and gr-dbfcttc moved to its own repository. - `gr-gn3s` and `gr-dbfcttc` moved to its own repository.
- Improved package reproducibility - Improved package reproducibility
- VOLK_GNSSSDR: Fixed a bug in AVX2 puppet - VOLK_GNSSSDR: Fixed a bug in AVX2 puppet
- VOLK_GNSSSDR: can now be built using the C98 standard - VOLK_GNSSSDR: can now be built using the C98 standard
@ -1036,7 +1044,7 @@ respect to v0.0.7. The main changes are:
&nbsp; &nbsp;
## [GNSS-SDR v0.0.7](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.7) ## [GNSS-SDR v0.0.7](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.7) - 2016-05-15
DOI: https://doi.org/10.5281/zenodo.51521 DOI: https://doi.org/10.5281/zenodo.51521
@ -1058,9 +1066,9 @@ This release has several improvements, addition of new features and bug fixes:
approach addresses both efficiency and portability. Now the library provides approach addresses both efficiency and portability. Now the library provides
the key kernels for GNSS signal processing in 16ic and 32fc versions, the key kernels for GNSS signal processing in 16ic and 32fc versions,
including SSE2, SSE3, SSE4.1, AVX, AV2 and NEON implementations. Please including SSE2, SSE3, SSE4.1, AVX, AV2 and NEON implementations. Please
execute volk_gnsssdr_profile and volk_profile to use the fastest execute `volk_gnsssdr_profile` and `volk_profile` to use the fastest
implementation for your host machine. implementation for your host machine.
- New source block: Two_Bit_Packed_File_Signal_Source. This block takes 2 bit - New source block: `Two_Bit_Packed_File_Signal_Source`. This block takes 2 bit
samples that have been packed into bytes or shorts as input and generates a samples that have been packed into bytes or shorts as input and generates a
byte for each sample. byte for each sample.
- Fixes in SUPL assistance (supl.nokia.com removed). - Fixes in SUPL assistance (supl.nokia.com removed).
@ -1075,38 +1083,38 @@ This release has several improvements, addition of new features and bug fixes:
- Improvements in tracking sensitivity: Added configuration option to customize - Improvements in tracking sensitivity: Added configuration option to customize
the extension of the GPS L1 CA correlation length after bit synchronization the extension of the GPS L1 CA correlation length after bit synchronization
(options are: [1,2,4,5,10,20] ms). Only available in the (options are: [1,2,4,5,10,20] ms). Only available in the
GPS_L1_CA_DLL_PLL_C_Aid_Tracking implementation. `GPS_L1_CA_DLL_PLL_C_Aid_Tracking` implementation.
- New tracking block introduced: GPS_L1_CA_DLL_PLL_C_Aid_Tracking is a GPS L1 - New tracking block introduced: `GPS_L1_CA_DLL_PLL_C_Aid_Tracking` is a GPS L1
C/A carrier PLL and code DLL with optional carrier-aid feedback. It is C/A carrier PLL and code DLL with optional carrier-aid feedback. It is
available in both 32 bits gr_complex input samples and in 16 bits short int available in both 32 bits `gr_complex` input samples and in 16 bits short int
complex samples. The gr_complex version has also the capability to extend the complex samples. The `gr_complex` version has also the capability to extend
coherent correlation period from 1ms to 20ms using telemetry symbol the coherent correlation period from 1 ms to 20 ms using telemetry symbol
synchronization. synchronization.
- Increased resolution in CN0 estimator internal variables. - Increased resolution in CN0 estimator internal variables.
- Fixed a bug in computation of GPS L1 C/A carrier phase observable. - Fixed a bug in computation of GPS L1 C/A carrier phase observable.
- Fixed a bug in the internal state machine that was blocking the receiver after - Fixed a bug in the internal state machine that was blocking the receiver after
a few hours of usage. Now the receiver can work continually (tested for more a few hours of usage. Now the receiver can work continually (tested for more
than one week, no known limit). than one week, no known limit).
- New tracking block introduced: GPS_L1_CA_DLL_PLL_Tracking_GPU is a GPS L1 C/A - New tracking block introduced: `GPS_L1_CA_DLL_PLL_Tracking_GPU` is a GPS L1
carrier PLL and code DLL that uses the CUDA-compatible GPU to compute carrier C/A carrier PLL and code DLL that uses the CUDA-compatible GPU to compute
wipe off and correlation operations, alleviating the CPU load. carrier wipe off and correlation operations, alleviating the CPU load.
- Obsolete/buggy blocks removed: GPS_L1_CA_DLL_FLL_PLL_Tracking, - Obsolete/buggy blocks removed: `GPS_L1_CA_DLL_FLL_PLL_Tracking`,
GPS_L1_CA_DLL_PLL_Optim_Tracking. `GPS_L1_CA_DLL_PLL_Optim_Tracking`.
- Added a RTCM printer and TCP server in PVT blocks (still experimental). The - Added a RTCM printer and TCP server in PVT blocks (still experimental). The
receiver is now able to stream data in real time, serving RTCM 3.2 messages to receiver is now able to stream data in real time, serving RTCM 3.2 messages to
multiple clients. For instance, it can act as a Ntrip Source feeding a Ntrip multiple clients. For instance, it can act as a Ntrip Source feeding a Ntrip
Server, or to be used as data input in RTKLIB, obtaining Precise Point Server, or to be used as data input in RTKLIB, obtaining Precise Point
Positioning fixes in real-time. The TCP port, Station ID, and rate of Positioning fixes in real-time. The TCP port, Station ID, and rate of
MT1019/MT1045 and MSM can be configured. GPS_L1_CA_PVT serves MT1019 (GPS MT1019/MT1045 and MSM can be configured. `GPS_L1_CA_PVT` serves MT1019 (GPS
Ephemeris) and MSM7 (MT1077, full GPS pseudoranges, phase ranges, phase range Ephemeris) and MSM7 (MT1077, full GPS pseudoranges, phase ranges, phase range
rates and CNR - high resolution) messages, while GALILEO_E1_PVT serves MT1045 rates and CNR - high resolution) messages, while `GALILEO_E1_PVT` serves
(Galileo ephemeris) and MSM7 (MT1097, full Galileo pseudoranges, phase ranges, MT1045 (Galileo ephemeris) and MSM7 (MT1097, full Galileo pseudoranges, phase
phase range rates and CNR - high resolution). ranges, phase range rates and CNR - high resolution).
- Added a GeoJSON printer. Basic (least-squares) position fixes can be now also - Added a GeoJSON printer. Basic (least-squares) position fixes can be now also
stored in this format, in addition to KML. stored in this format, in addition to KML.
- Obsolete block removed: output filter. - Obsolete block removed: output filter.
- QA code migrated to the new asynchronous message passing system. - QA code migrated to the new asynchronous message passing system.
- Improvements in documentation: update of README.md file, addition of - Improvements in documentation: update of `README.md` file, addition of
documentation for the VOLK_GNSSSDR library, updated links to new ICDs. documentation for the VOLK_GNSSSDR library, updated links to new ICDs.
- Improvements in documentation: Satellite identification updated to current - Improvements in documentation: Satellite identification updated to current
constellation status. constellation status.
@ -1128,7 +1136,7 @@ This release has several improvements, addition of new features and bug fixes:
&nbsp; &nbsp;
## [GNSS-SDR v0.0.6](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.6) ## [GNSS-SDR v0.0.6](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.6) - 2015-09-02
This release has several improvements and bug fixes: This release has several improvements and bug fixes:
@ -1151,12 +1159,13 @@ This release has several improvements and bug fixes:
on the Realtek's RTL2832U chipset. on the Realtek's RTL2832U chipset.
- Fixed bug in UTC time computation for GPS signals. - Fixed bug in UTC time computation for GPS signals.
- Updated satellite identification for GPS and Galileo. - Updated satellite identification for GPS and Galileo.
- Defined cbyte as a new input data type (std::complex<unsigned char>) - Defined `cbyte` as a new input data type (`std::complex<signed char>`).
- Adding a new data_type_adapter, from interleaved short to std::complex<short> - Adding a new data_type_adapter, from interleaved short to
`std::complex<short>`.
- Adding a filter for complex short streams. - Adding a filter for complex short streams.
- Adding a fir_filter for std::complex<signed char> (aka cbyte). It converts the - Adding a fir_filter for `std::complex<signed char>` (aka `cbyte`). It converts
data type to floats, filters, and converts back to cbyte. the data type to floats, filters, and converts back to cbyte.
- Added a resampler for cbytes and cshorts. - Added a resampler for `cbyte`s and `cshort`s.
- First working version of a GPS tracking block implementation using CUDA with - First working version of a GPS tracking block implementation using CUDA with
multi-GPU device support. multi-GPU device support.
- Updating RINEX obs header when leap second is available. - Updating RINEX obs header when leap second is available.
@ -1177,34 +1186,34 @@ This release has several improvements and bug fixes:
&nbsp; &nbsp;
## [GNSS-SDR v0.0.5](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.5) ## [GNSS-SDR v0.0.5](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.5) - 2015-01-13
This release has several improvements and bug fixes: This release has several improvements and bug fixes:
- Now GNSS-SDR can be installed on the system with the usual cmake ../ && make - Now GNSS-SDR can be installed on the system with the usual
&& sudo make install. `cmake ../ && make && sudo make install`.
- Added volk_gnsssdr library, a volk-like library implementing some specific - Added `volk_gnsssdr` library, a volk-like library implementing some specific
kernels and ensuring portable executables. It comes with a kernels and ensuring portable executables. It comes with a
volk_gnsssdr_profile executable, in the fashion of volk_profile. Volk and `volk_gnsssdr_profile` executable, in the fashion of `volk_profile`. Volk and
volk_gnsssdr are compatible and can be mixed together. This is expected to `volk_gnsssdr` are compatible and can be mixed together. This is expected to
enable faster execution of the software receiver in upcoming versions. enable faster execution of the software receiver in upcoming versions.
- The former rtlsdr_signal_source has been replaced by a more general - The former `rtlsdr_signal_source` has been replaced by a more general
osmosdr_signal_source compatible with all those front-ends accessible by the `osmosdr_signal_source` compatible with all those front-ends accessible by the
OsmoSDR driver (bladeRF, hackRF, etc.) in addition to RTL-based dongles. OsmoSDR driver (bladeRF, hackRF, etc.) in addition to RTL-based dongles.
- Added manpages when binaries gnss-sdr, volk_gnsssdr_profile and front-end-cal - Added manpages when binaries `gnss-sdr`, `volk_gnsssdr_profile` and
are installed. `front-end-cal` are installed.
- Now GNSS-SDR can be built on i386, amd64, armhf, armel and arm64 - Now GNSS-SDR can be built on i386, amd64, armhf, armel and arm64
architectures. architectures.
- Now GNSS-SDR builds on Ubuntu 14.04 and 14.10, Debian jessie/sid and Mac OS X - Now GNSS-SDR builds on Ubuntu 14.04 and 14.10, Debian jessie/sid and Mac OS X
10.9 and 10.10. 10.9 and 10.10.
- Improved detection of dependencies, specially when installed as .deb packages. - Improved detection of dependencies, specially when installed as .deb packages.
- Added a check' target with some minimal tests. - Added a `check` target with some minimal tests.
- Added support for interleaved I/Q byte-size sample files. - Added support for interleaved I/Q byte-size sample files.
- Minor bug fixes, updated documentation and code cleaning. - Minor bug fixes, updated documentation and code cleaning.
&nbsp; &nbsp;
## [GNSS-SDR v0.0.4](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.4) ## [GNSS-SDR v0.0.4](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.4) - 2014-09-08
This release has several improvements and bug fixes: This release has several improvements and bug fixes:
@ -1218,14 +1227,14 @@ This release has several improvements and bug fixes:
same receiver. same receiver.
- Added tropospheric corrections to GPS and Galileo PVT solution. - Added tropospheric corrections to GPS and Galileo PVT solution.
- Improved precision obtained by changing some variables from float to double. - Improved precision obtained by changing some variables from float to double.
- New building options: ENABLE_GN3S, ENABLE_RTLSDR and ENABLE_ARRAY and - New building options: `ENABLE_GN3S`, `ENABLE_RTLSDR`, `ENABLE_ARRAY`, and
ENABLE_OPENCL. `ENABLE_OPENCL`.
- Improved documentation on how to enable optional drivers. - Improved documentation on how to enable optional drivers.
- Fixed bug in memory alignment that caused problems with high data rates. - Fixed bug in memory alignment that caused problems with high data rates.
- Added ENABLE_GENERIC_ARCH, an option to build the binary without detecting the - Added `ENABLE_GENERIC_ARCH`, an option to build the binary without detecting
SIMD instruction set present in the compiling machine, so it can be executed the SIMD instruction set present in the compiling machine, so it can be
in other machines without those specific sets. executed in other machines without those specific sets.
- Added ENABLE_GPERFTOOLS, which links the executable to tcmalloc and profiler - Added `ENABLE_GPERFTOOLS`, which links the executable to tcmalloc and profiler
if Gperftools is available on the system. if Gperftools is available on the system.
- Added carrier phase, Doppler shift and signal strength observables to the - Added carrier phase, Doppler shift and signal strength observables to the
RINEX files. Static PPP solutions are available for GPS with RTKLIB via RINEX RINEX files. Static PPP solutions are available for GPS with RTKLIB via RINEX
@ -1241,7 +1250,7 @@ This release has several improvements and bug fixes:
&nbsp; &nbsp;
## [GNSS-SDR v0.0.3](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.3) ## [GNSS-SDR v0.0.3](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.3) - 2014-06-30
This release has several improvements and bug fixes, completing the transition This release has several improvements and bug fixes, completing the transition
from Subversion to Git. The main changes are: from Subversion to Git. The main changes are: