2020-02-27 20:05:29 +00:00
|
|
|
|
<!-- prettier-ignore-start -->
|
|
|
|
|
[comment]: # (
|
|
|
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
[comment]: # (
|
2022-02-09 19:58:53 +00:00
|
|
|
|
SPDX-FileCopyrightText: 2011-2022 Carles Fernandez-Prades <carles.fernandez@cttc.es>
|
2020-02-27 20:05:29 +00:00
|
|
|
|
)
|
|
|
|
|
<!-- prettier-ignore-end -->
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
# Changelog
|
|
|
|
|
|
|
|
|
|
All notable changes to GNSS-SDR will be documented in this file.
|
|
|
|
|
|
2021-09-05 22:05:29 +00:00
|
|
|
|
## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next)
|
|
|
|
|
|
2021-09-27 14:18:42 +00:00
|
|
|
|
### Improvements in Availability:
|
|
|
|
|
|
2022-02-10 14:15:35 +00:00
|
|
|
|
- Added the Galileo E5b receiving chain. The software is now able to compute PVT
|
|
|
|
|
solutions as a standalone Galileo E5b receiver.
|
2021-09-27 14:18:42 +00:00
|
|
|
|
- Improved Time-To-First-Fix when using GPS L1 C/A signals, fixing a bug that
|
|
|
|
|
was making the receiver to drop the satellite if the PLL got locked at 180
|
|
|
|
|
degrees, and making some optimizations on bit transition detection.
|
2021-11-29 16:01:58 +00:00
|
|
|
|
- Fixed a bug that prevented from obtaining PVT fixes with Galileo E1 OS signals
|
|
|
|
|
if the I/NAV subframe type 0 was the first decoded subframe.
|
2021-09-27 14:18:42 +00:00
|
|
|
|
|
2021-09-15 11:16:16 +00:00
|
|
|
|
### Improvements in Interoperability:
|
|
|
|
|
|
2021-10-04 20:02:47 +00:00
|
|
|
|
- Fixed setting of the signal source gain if the AGC is enabled when using the
|
2021-09-15 11:16:16 +00:00
|
|
|
|
AD9361 front-end.
|
2021-10-04 20:02:47 +00:00
|
|
|
|
- Fixed the regeneration of Galileo ephemeris from the reduced clock and
|
|
|
|
|
ephemeris data (CED) defined in the Galileo E1B INAV message introduced in
|
|
|
|
|
Galileo OS SIS ICD Issue 2.0.
|
2021-12-07 07:22:16 +00:00
|
|
|
|
- Added a `Limesdr_Signal_Source` for interoperability with LimeSDR (requires
|
|
|
|
|
[gr-limesdr](https://github.com/myriadrf/gr-limesdr) and the
|
|
|
|
|
`-DENABLE_LIMESDR=ON` building flag).
|
2021-09-15 11:16:16 +00:00
|
|
|
|
|
2021-09-25 18:29:51 +00:00
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
2021-10-27 19:05:59 +00:00
|
|
|
|
- Rewritten Viterbi decoder for Galileo navigation messages. Encapsulated in a
|
2021-09-25 18:29:51 +00:00
|
|
|
|
class instead of being implemented as free inline functions. This improves
|
2021-10-08 17:22:37 +00:00
|
|
|
|
memory management and source code readability.
|
2021-10-27 19:05:59 +00:00
|
|
|
|
- Prefer initialization to assignment in constructors. This improves the
|
|
|
|
|
readability of the code, could potentially increase performance, and allows
|
2022-02-09 19:58:53 +00:00
|
|
|
|
for easier detection of unused data members (see the
|
|
|
|
|
[CppCoreGuidelines](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md/#Rc-initialize)).
|
2021-12-17 19:11:02 +00:00
|
|
|
|
Added the `cppcoreguidelines-prefer-member-initializer` clang-tidy check to
|
|
|
|
|
enforce this policy.
|
2021-10-27 19:05:59 +00:00
|
|
|
|
- Non-functional change: Fixed formatting defects detected by clang-format 13.0.
|
2021-12-17 13:43:37 +00:00
|
|
|
|
- Non-functional change: Simplified flow graph disconnection.
|
2022-02-09 19:58:53 +00:00
|
|
|
|
- Updated GSL implementation to v0.40.0. See the
|
|
|
|
|
[gsl-lite release](https://github.com/gsl-lite/gsl-lite/releases/tag/v0.40.0).
|
2021-10-08 17:22:37 +00:00
|
|
|
|
- CI - `cpplint` job on GitHub: Added the `build/include_what_you_use` filter
|
|
|
|
|
for early detection of missing includes.
|
|
|
|
|
- CI - `clang-tidy` job on GitHub: More robust detection of LLVM paths installed
|
|
|
|
|
by homebrew.
|
2021-09-25 18:29:51 +00:00
|
|
|
|
|
2021-10-27 19:05:59 +00:00
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
|
|
|
|
- Fixed building against the new API in the gr-iio component present in GNU
|
2022-02-06 10:45:29 +00:00
|
|
|
|
Radio v3.10.X.Y.
|
2022-02-06 10:59:18 +00:00
|
|
|
|
- Fixed building against GNU Radio v3.10.X.Y, which does not support the C++20
|
|
|
|
|
standard.
|
2022-02-06 10:45:29 +00:00
|
|
|
|
- Fixed building against GNU Radio v3.10.X.Y, which replaced
|
2022-02-09 19:58:53 +00:00
|
|
|
|
[log4cpp](http://log4cpp.sourceforge.net/) by the
|
2021-11-29 15:50:43 +00:00
|
|
|
|
[spdlog](https://github.com/gabime/spdlog) and
|
|
|
|
|
[fmt](https://github.com/fmtlib/fmt) libraries.
|
2021-10-27 19:05:59 +00:00
|
|
|
|
- Updated `cpu_features` library for improved processor detection.
|
|
|
|
|
|
|
|
|
|
### Improvements in Reliability:
|
2021-09-27 14:18:42 +00:00
|
|
|
|
|
|
|
|
|
- Fixed some potential buffer overflows.
|
2021-11-12 17:04:12 +00:00
|
|
|
|
- Avoid source code lines longer than 512 characters. This was a warning raised
|
|
|
|
|
by Lintian (very-long-line-length-in-source-file). Long lines in source code
|
|
|
|
|
could be used to obfuscate the source code and to hide stuff like backdoors or
|
|
|
|
|
security problems.
|
2021-09-27 14:18:42 +00:00
|
|
|
|
|
2021-09-05 22:05:29 +00:00
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
2021-09-07 10:13:54 +00:00
|
|
|
|
- Added a new monitor to extract the decoded data bits of the navigation
|
|
|
|
|
messages and send them elsewhere via UDP. Activated by setting
|
2021-09-05 22:05:29 +00:00
|
|
|
|
`NavDataMonitor.enable_monitor=true`,
|
|
|
|
|
`NavDataMonitor.client_addresses=127.0.0.1` and `NavDataMonitor.port=1237` in
|
2021-09-07 10:13:54 +00:00
|
|
|
|
the configuration file. Format described in the `nav_message.proto` file. A
|
|
|
|
|
simple listener application written in C++ is included in
|
2021-09-15 11:16:16 +00:00
|
|
|
|
`src/utils/nav-listener` as an example.
|
2021-09-13 21:19:37 +00:00
|
|
|
|
- Extract successful rate of the CRC check in the decoding of navigation
|
2021-09-15 11:16:16 +00:00
|
|
|
|
messages. This can be enabled by setting
|
2021-09-13 21:19:37 +00:00
|
|
|
|
`TelemetryDecoder_XX.dump_crc_stats=true` and, optionally,
|
|
|
|
|
`TelemetryDecoder_XX.dump_crc_stats_filename=./crc_stats` in the configuration
|
|
|
|
|
file. At the end of the processing (or exiting with `q` + `[Enter]`), the CRC
|
|
|
|
|
check success rate will be reported in a file.
|
2021-09-24 14:52:13 +00:00
|
|
|
|
- The `UHD_Signal_Source` learned to dump data in folders that do not exist,
|
2021-09-24 15:31:34 +00:00
|
|
|
|
_e.g._, if `SignalSource.dump=true`,
|
2021-09-24 14:52:13 +00:00
|
|
|
|
`SignalSource.dump_filename=./non-existing/data.dat`, and the `non-existing`
|
|
|
|
|
folder does not exist, it will be created if the running user has writing
|
|
|
|
|
permissions. This also works for absolute paths.
|
2021-09-28 02:25:53 +00:00
|
|
|
|
- Added a new configuration parameter `PVT.rtk_trace_level` that sets the
|
|
|
|
|
logging verbosity level of the RTKLIB library.
|
2021-09-29 07:49:46 +00:00
|
|
|
|
- Added a new output parameter `Flag_PLL_180_deg_phase_locked` in the monitor
|
|
|
|
|
output that indicates if the PLL got locked at 180 degrees, so the symbol sign
|
|
|
|
|
is reversed.
|
2021-12-28 12:59:57 +00:00
|
|
|
|
- Fixed a bug in the satellite selection algorithm for configurations with a
|
|
|
|
|
large number of channels. The maximum number of channels per signal is now
|
|
|
|
|
limited to the number of available satellites per system minus one. The number
|
|
|
|
|
of channels performing concurrent acquisition, `Channels.in_acquisition`,
|
|
|
|
|
cannot be larger than the total number of channels. The program will stop if
|
|
|
|
|
those requirements are not met in the configuration file.
|
|
|
|
|
- Fixed program termination when using `File_Signal_Source` and extended
|
|
|
|
|
integration times.
|
2022-02-09 19:58:53 +00:00
|
|
|
|
- The `Fifo_Signal_Source` Signal Source implementation learned to handle the
|
|
|
|
|
`ibyte` type.
|
|
|
|
|
- Added a `CITATION.cff` file.
|
2022-02-06 10:45:29 +00:00
|
|
|
|
- Updated version of the Contributor Covenant to version 2.1.
|
2021-09-13 21:19:37 +00:00
|
|
|
|
|
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
|
|
|
|
|
2021-09-05 22:05:29 +00:00
|
|
|
|
|
2021-08-23 12:28:30 +00:00
|
|
|
|
## [GNSS-SDR v0.0.15](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.15) - 2021-08-23
|
2021-01-11 12:57:29 +00:00
|
|
|
|
|
2021-04-09 13:00:58 +00:00
|
|
|
|
### Improvements in Availability:
|
2021-01-11 12:57:29 +00:00
|
|
|
|
|
2021-04-09 13:00:58 +00:00
|
|
|
|
- Added the reading of reduced clock and ephemeris data (CED) in the Galileo E1B
|
2021-04-19 11:26:46 +00:00
|
|
|
|
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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
the full set has not yet been received. This can contribute to shortening the
|
2021-08-23 12:28:30 +00:00
|
|
|
|
Time-To-First-Fix. Still experimental.
|
2021-04-19 11:26:46 +00:00
|
|
|
|
- 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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
shortening the Time-To-First-Fix. Since the added computational cost could
|
|
|
|
|
break some real-time configurations, this feature is disabled by default. It
|
|
|
|
|
can be activated from the configuration file by adding
|
2021-04-19 11:26:46 +00:00
|
|
|
|
`TelemetryDecoder_1B.enable_reed_solomon=true`.
|
2021-08-03 12:43:44 +00:00
|
|
|
|
- Reduction of the TTFF in GPS L1 and Galileo E1 by improving the frame
|
|
|
|
|
synchronization mechanism.
|
2021-01-11 12:57:29 +00:00
|
|
|
|
|
2021-01-15 12:39:26 +00:00
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
2021-01-27 15:26:48 +00:00
|
|
|
|
- The Contributor License Agreement (CLA) signing for new contributors has been
|
|
|
|
|
replaced by a
|
|
|
|
|
[Developer's Certificate of Origin (DCO)](https://github.com/gnss-sdr/gnss-sdr/blob/next/.github/DCO.txt),
|
|
|
|
|
which implies that contributed commits in a pull request need to be signed as
|
|
|
|
|
a manifestation that contributors have the right to submit their work under
|
|
|
|
|
the open source license indicated in the contributed file(s) (instead of
|
|
|
|
|
asking them to sign the CLA document).
|
2021-08-23 12:28:30 +00:00
|
|
|
|
- Improved handling of changes in GNU Radio 3.9 FFT API.
|
2021-01-16 13:37:19 +00:00
|
|
|
|
- Improved handling of the filesystem library.
|
2021-02-16 13:27:46 +00:00
|
|
|
|
- Added an abstract class `SignalSourceInterface` and a common base class
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`SignalSourceBase`, which allow removing a lot of duplicated code in Signal
|
2021-02-16 13:27:46 +00:00
|
|
|
|
Source blocks, and further abstract file-based interfaces behind them.
|
2021-01-18 15:08:56 +00:00
|
|
|
|
- Do not apply clang-tidy fixes to protobuf-generated headers.
|
2021-01-24 00:49:16 +00:00
|
|
|
|
- Refactored private implementation of flow graph connection and disconnection
|
|
|
|
|
for improved source code readability.
|
2021-02-20 23:01:56 +00:00
|
|
|
|
- Added a base class for GNSS ephemeris, saving some duplicated code and
|
|
|
|
|
providing a common nomenclature for ephemeris' parameters. New generated XML
|
2021-05-28 10:19:44 +00:00
|
|
|
|
files make use of the new parameters' names.
|
2021-04-23 13:38:23 +00:00
|
|
|
|
- Update GSL implementation to 0.38.1. See
|
|
|
|
|
https://github.com/gsl-lite/gsl-lite/releases/tag/v0.38.1
|
2021-07-24 11:47:52 +00:00
|
|
|
|
- Update references to the latest GPS ICDs (IS-GPS-200M, IS-GPS-800H,
|
|
|
|
|
IS-GPS-705H) published in May, 2021.
|
2021-01-24 00:49:16 +00:00
|
|
|
|
|
2021-04-09 13:00:58 +00:00
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
|
|
|
|
- Avoid collision of the `cpu_features` library when installing the
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`volk_gnsssdr` library on its own, and VOLK has already installed its version.
|
2021-04-09 13:00:58 +00:00
|
|
|
|
Added a new building option `ENABLE_OWN_CPUFEATURES`, defaulting to `ON` when
|
|
|
|
|
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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
the building of the local version of the `cpu_features` library, regardless of
|
2021-04-09 13:00:58 +00:00
|
|
|
|
whether it is already installed or not.
|
2021-07-24 18:18:57 +00:00
|
|
|
|
- CMake's `<policy_max>` version bumped to 3.21. The minimum CMake version is
|
|
|
|
|
2.8.12.
|
2021-04-09 13:00:58 +00:00
|
|
|
|
- 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
|
|
|
|
|
Boost >= 1.74.
|
|
|
|
|
- Fix linking of the `<filesystem>` library when using GCC 8.x and GNU Radio >=
|
|
|
|
|
3.8.
|
2021-06-12 10:37:39 +00:00
|
|
|
|
- If the Matio library is not found, now it is configured and built by CMake
|
|
|
|
|
instead of using autotools.
|
2021-07-25 12:09:03 +00:00
|
|
|
|
- Added support for Apple M1 AArch64 architecture processor and for FreeBSD on
|
|
|
|
|
x86, improved AMD microarchitecture detection.
|
2021-07-27 19:18:26 +00:00
|
|
|
|
- CMake now selects the C++23 standard if the environment allows for it.
|
2021-08-02 07:33:16 +00:00
|
|
|
|
- Improved detection of Gnuplot and `gnss_sim` when cross-compiling.
|
2021-08-11 11:01:25 +00:00
|
|
|
|
- NEON kernel implementations of the `volk_gnsssdr` library are now enabled in
|
|
|
|
|
aarch64 architectures.
|
2021-04-09 13:00:58 +00:00
|
|
|
|
|
2021-07-24 08:21:25 +00:00
|
|
|
|
### Improvements in Reliability
|
|
|
|
|
|
2021-08-03 12:43:44 +00:00
|
|
|
|
- Bug fix in the Galileo E1/E5 telemetry decoder that produced incorrect timing
|
|
|
|
|
information if a satellite is lost and then readquired.
|
2021-07-24 08:21:25 +00:00
|
|
|
|
- Check satellites' health status. If a satellite is marked as not healthy in
|
|
|
|
|
its navigation message, the corresponding observables are not used for
|
|
|
|
|
navigation.
|
|
|
|
|
|
2021-01-24 00:49:16 +00:00
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
2021-04-20 06:35:22 +00:00
|
|
|
|
- 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
|
2021-04-19 14:24:26 +00:00
|
|
|
|
allowing to multiplex signal streams outside of `gnss-sdr`, letting another
|
2021-05-28 10:19:44 +00:00
|
|
|
|
program hold access to the receiver, or allowing signal sources that are not
|
|
|
|
|
supported by `gnss-sdr` but can dump the signal to a FIFO.
|
2021-01-24 00:49:16 +00:00
|
|
|
|
- Avoid segmentation faults in the flow graph connection and/or starting due to
|
|
|
|
|
some common inconsistencies in the configuration file.
|
|
|
|
|
- Provide hints to the user in case of failed flow graph connection due to
|
|
|
|
|
inconsistencies in the configuration file.
|
2021-01-27 11:07:11 +00:00
|
|
|
|
- Fix segmentation fault if the RINEX output was disabled.
|
2021-02-16 15:46:42 +00:00
|
|
|
|
- Added a feature that optionally enables the remote monitoring of GPS and
|
2021-02-23 23:11:22 +00:00
|
|
|
|
Galileo ephemeris using UDP and
|
|
|
|
|
[Protocol Buffers](https://developers.google.com/protocol-buffers).
|
2021-02-23 23:02:29 +00:00
|
|
|
|
- Now building the software passing the `-DENABLE_FPGA=ON` to CMake does not
|
|
|
|
|
make the receiver unusable when running on non-FPGA-enabled platforms. On
|
|
|
|
|
FPGA-enabled platforms, now it is possible to run non-FPGA-enabled
|
|
|
|
|
configurations.
|
2021-03-10 12:31:17 +00:00
|
|
|
|
- Fix bug that made the Monitor block to always set to 0 the
|
|
|
|
|
`carrier_phase_rads` parameter value.
|
2021-03-11 21:13:23 +00:00
|
|
|
|
- The `Labsat_Signal_Source` implementation of the `SignalSource` block now can
|
2021-03-14 19:00:18 +00:00
|
|
|
|
read files in the LabSat 3 Wideband format (`.LS3W`). When using this format,
|
|
|
|
|
this source block can provide multiple RF chain outputs.
|
2021-03-13 21:30:23 +00:00
|
|
|
|
- Replace `Receiver.sources_count` configuration parameter name by
|
|
|
|
|
`GNSS-SDR.num_sources`. The former parameter name is still read to ensure
|
|
|
|
|
backward compatibility with configuration files using that nomenclature.
|
2021-04-07 12:16:50 +00:00
|
|
|
|
- Fix bug in searching for gr-iio when CMake was re-run several times with
|
|
|
|
|
different settings for the `-DENABLE_FMCOMMS2` or `-DENABLE_PLUTOSDR` building
|
|
|
|
|
options.
|
2021-07-27 19:18:26 +00:00
|
|
|
|
- Fix building when using UHD >= v4.0.0.0.
|
2021-06-09 13:46:17 +00:00
|
|
|
|
- Fix building for `-DENABLE_FMCOMMS2=ON` and/or `-DENABLE_PLUTOSDR=ON` when the
|
|
|
|
|
built-in gr-iio module introduced in GNU Radio 3.10 is found. This in-tree GNU
|
|
|
|
|
Radio module takes precedence over the gr-iio package provided at
|
|
|
|
|
https://github.com/analogdevicesinc/gr-iio. If the GNU Radio module is found,
|
|
|
|
|
the other one is ignored.
|
|
|
|
|
- File `changelog.md` renamed to the more usual `CHANGELOG.md` uppercase name.
|
2021-06-12 10:48:38 +00:00
|
|
|
|
- New global configuration parameter `GNSS-SDR.observable_interval_ms`, set by
|
|
|
|
|
default to 20 [ms], allows to control the internal rate at which computed
|
|
|
|
|
observables sets are processed (50 observables sets per second by default).
|
2021-07-25 17:34:35 +00:00
|
|
|
|
- Fix bug in the `Monitor.decimation_factor` parameter, which was not working
|
|
|
|
|
properly for other values than 1.
|
2021-01-15 12:39:26 +00:00
|
|
|
|
|
2021-05-28 10:27:20 +00:00
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2021-01-11 12:57:29 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.14](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.14) - 2021-01-08
|
2020-08-01 12:28:27 +00:00
|
|
|
|
|
2020-08-13 23:07:03 +00:00
|
|
|
|
### Improvements in Availability:
|
|
|
|
|
|
|
|
|
|
- Fixed bug in acquisition detection when the configuration parameter
|
|
|
|
|
`Acquisition_XX.threshold` was set but `Acquisition_XX.pfa` was not, causing
|
|
|
|
|
false locks.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Fixed anti-jamming filters: `Pulse_Blanking_Filter`, `Notch_Filter`, and
|
2020-10-29 11:01:39 +00:00
|
|
|
|
`Notch_Filter_Lite`.
|
2020-08-13 23:07:03 +00:00
|
|
|
|
|
2020-08-05 10:58:10 +00:00
|
|
|
|
### Improvements in Efficiency:
|
|
|
|
|
|
|
|
|
|
- Faster `SignalConditioner` block when its implementation is set to
|
|
|
|
|
`Pass_Through`.
|
|
|
|
|
|
2020-11-07 20:33:26 +00:00
|
|
|
|
### 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
|
2020-11-08 13:10:43 +00:00
|
|
|
|
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).
|
2020-11-07 20:33:26 +00:00
|
|
|
|
|
2020-11-03 19:51:57 +00:00
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added a common shared pointer definition `gnss_shared_ptr`, which allows
|
|
|
|
|
handling the `boost::shared_ptr` to `std::shared_ptr` transition in GNU Radio
|
2020-11-03 19:51:57 +00:00
|
|
|
|
3.9 API more nicely.
|
2020-12-21 23:05:28 +00:00
|
|
|
|
- Support new FFT and firdes blocks' API in GNU Radio 3.9.
|
2021-01-06 09:21:40 +00:00
|
|
|
|
- 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](https://wiki.sei.cmu.edu/confluence/display/c/DCL37-C.+Do+not+declare+or+define+a+reserved+identifier)
|
|
|
|
|
as well as its C++ counterpart,
|
|
|
|
|
[DCL51-CPP](https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL51-CPP.+Do+not+declare+or+define+a+reserved+identifier).
|
|
|
|
|
- Applied and added more clang-tidy checks related to readability:
|
|
|
|
|
`readability-make-member-function-const` and `readability-qualified-auto`.
|
2020-11-03 19:51:57 +00:00
|
|
|
|
|
2020-08-09 00:13:32 +00:00
|
|
|
|
### 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).
|
2020-08-13 18:54:22 +00:00
|
|
|
|
- Improved handling of old gflags versions, minimum version set to 2.1.2.
|
|
|
|
|
Replaced `google::` by `gflags::` namespace when using functions of the gflags
|
|
|
|
|
library.
|
2020-08-14 09:35:59 +00:00
|
|
|
|
- Replaced `git://` by `https://` as the used protocol when downloading Gflags,
|
|
|
|
|
so it can work through firewalls requiring authentication.
|
2020-08-09 00:13:32 +00:00
|
|
|
|
- Fixed static linking of the matio library when downloaded and built by CMake.
|
2020-08-21 14:31:57 +00:00
|
|
|
|
- Improved CPU feature detection by switching to Google's
|
|
|
|
|
[cpu_features](https://github.com/google/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 the `cpu_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.
|
2020-11-20 15:44:06 +00:00
|
|
|
|
- The `volk_gnsssdr` library can be built on Microsoft Windows and can execute
|
|
|
|
|
SIMD instructions on that OS.
|
2021-01-06 09:21:40 +00:00
|
|
|
|
- Removed all instances of `_mm256_zeroupper()` in the `volk_gnsssdr` library,
|
|
|
|
|
since they are not required and lead to miscompilation with GCC 10.2 and
|
|
|
|
|
optimization level `-O3`.
|
2020-12-02 15:19:56 +00:00
|
|
|
|
- Fixed building with `-DENABLE_CUDA=ON` for blocks implemented with CUDA.
|
|
|
|
|
- Fixed linking against the ORC library if it is present in the system.
|
2020-12-21 23:05:28 +00:00
|
|
|
|
- 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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
installed with `DESTDIR` variable set.
|
2020-08-09 00:13:32 +00:00
|
|
|
|
|
2020-08-01 12:28:27 +00:00
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
|
|
|
|
- Fixed a bug when enabling pseudorange carrier smoothing in other bands than
|
|
|
|
|
L1.
|
2020-08-05 10:58:10 +00:00
|
|
|
|
- If `SignalConditioner.implementation=Pass_Through`, then all the configuration
|
|
|
|
|
parameters for the `DataTypeAdapter`, `InputFilter` and `Resampler` 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.
|
2020-11-22 13:08:48 +00:00
|
|
|
|
- Fixed occasional segmentation fault when exiting with `q` + `[Enter]` keys if
|
|
|
|
|
`Acquisition_XX.blocking=false`.
|
2020-08-06 09:45:27 +00:00
|
|
|
|
- Fixed the termination of the receiver with `q` + `[Enter]` keys when using the
|
|
|
|
|
`Osmosdr_Signal_Source` implementation of the `SignalSource` block.
|
2020-08-27 10:14:00 +00:00
|
|
|
|
- The `Labsat_Signal_Source` implementation of the `SignalSource` block now can
|
|
|
|
|
be throttled with the new parameters `SignalSource.enable_throttle_control`
|
|
|
|
|
and `SignalSource.throttle_frequency_sps`, thus allowing the emulation of
|
|
|
|
|
real-time operation.
|
2020-08-05 11:24:34 +00:00
|
|
|
|
- Improved General Block diagram, both in content and in image resolution.
|
2020-10-01 08:45:59 +00:00
|
|
|
|
- The `Custom_UDP_Signal_Source` implementation now accepts
|
2020-10-01 08:47:38 +00:00
|
|
|
|
`SignalSource.sample_type=cfloat`, in addition to the existing 4 and 8-bit
|
2020-10-01 08:45:59 +00:00
|
|
|
|
length sample types.
|
2020-10-25 10:50:09 +00:00
|
|
|
|
- Fixed the `obsdiff` and `rinex2assist` utilities when installed if they were
|
|
|
|
|
built with a locally downloaded version of GPSTk.
|
2020-11-01 12:37:19 +00:00
|
|
|
|
- The generated HTML documentation now makes use of the Doxygen grouping
|
|
|
|
|
feature.
|
2020-10-29 18:56:28 +00:00
|
|
|
|
- Improved rendering of equations in HTML documentation generated by Doxygen.
|
2020-10-30 14:28:03 +00:00
|
|
|
|
Make use of MathJax for equation rendering. Added new building option
|
|
|
|
|
`ENABLE_EXTERNAL_MATHJAX`, set to `ON` by default. If set to `OFF`, it allows
|
|
|
|
|
using a local installation of MathJax 2.
|
2020-11-19 08:55:08 +00:00
|
|
|
|
- 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.
|
2020-08-01 12:28:27 +00:00
|
|
|
|
|
2021-05-28 10:27:20 +00:00
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2020-08-01 12:28:27 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.13](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.13) - 2020-07-29
|
2020-04-02 09:13:49 +00:00
|
|
|
|
|
2020-04-25 14:08:33 +00:00
|
|
|
|
### Improvements in Efficiency:
|
|
|
|
|
|
|
|
|
|
- Faster internal handling of `Gnss_Synchro` objects by reducing the amount of
|
|
|
|
|
copying via adding `noexcept` move constructor and move assignment operators,
|
|
|
|
|
so the move semantics are also used in STL containers.
|
2020-07-07 19:19:35 +00:00
|
|
|
|
- All `std::endl` have been replaced by the `'\n'` character, since there is no
|
|
|
|
|
need to always flush the stream.
|
|
|
|
|
- Performed a stack reordering of class members that seems to offer
|
|
|
|
|
statistically better performance in some processor architectures and/or
|
|
|
|
|
compilers.
|
2020-06-10 15:22:03 +00:00
|
|
|
|
- Add building option `ENABLE_STRIP` to 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 `OFF` by default.
|
2020-04-25 14:08:33 +00:00
|
|
|
|
|
2020-04-02 21:59:35 +00:00
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
2020-07-07 19:19:35 +00:00
|
|
|
|
- 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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
it through the source code.
|
2020-06-27 09:39:14 +00:00
|
|
|
|
- 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.
|
2020-07-16 12:00:41 +00:00
|
|
|
|
- Simpler, less error-prone design of the `GNSSBlockFactory` class public API
|
|
|
|
|
and internal implementation.
|
2020-07-17 08:48:37 +00:00
|
|
|
|
- Simpler API for the `Pvt_Solution` class.
|
2020-07-16 12:00:41 +00:00
|
|
|
|
- Improved system constant definition headers, numerical values are only written
|
2020-07-16 17:43:11 +00:00
|
|
|
|
once.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improved `const` correctness.
|
2020-07-07 19:19:35 +00:00
|
|
|
|
- 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
|
|
|
|
|
version still remains at 3.7.3.
|
|
|
|
|
- The software can now be built against Boost <= 1.73 (minimum version: 1.53).
|
2020-06-06 21:35:10 +00:00
|
|
|
|
- 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).
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Fixed warnings raised by GCC 10 and Clang 10.
|
2020-06-14 11:48:20 +00:00
|
|
|
|
- Various improvements in the CMake scripts: better decision on the C++ standard
|
|
|
|
|
to use; simplifications for various API dependency and environment versions
|
|
|
|
|
requirements, with more intuitive naming for variables; fixed the
|
|
|
|
|
`ENABLE_CLANG_TIDY` option; better GFORTRAN module; and broader adoption of
|
|
|
|
|
the modern per-target approach.
|
2020-04-02 21:59:35 +00:00
|
|
|
|
|
2020-04-08 08:51:46 +00:00
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
2020-04-22 11:06:14 +00:00
|
|
|
|
- The software can now be cross-compiled on Petalinux environments.
|
2020-07-07 19:19:35 +00:00
|
|
|
|
- Removed python six module as a dependency if using Python 3.x.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Make use of `std::span` if the compiler supports it, and use `gsl-lite` as a
|
2020-05-14 17:36:04 +00:00
|
|
|
|
fallback. The latter has been updated to version
|
|
|
|
|
[0.37.0](https://github.com/gsl-lite/gsl-lite/releases/tag/0.37.0).
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improved finding of `libgfortran` in openSUSE and Fedora distributions.
|
2020-07-28 10:30:11 +00:00
|
|
|
|
- Improved interface for FPGA off-loading.
|
2020-06-27 17:51:22 +00:00
|
|
|
|
- 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
|
|
|
|
|
name as the build type (e.g., Gentoo) to avoid unexpected compiler flags. The
|
2020-07-28 10:30:11 +00:00
|
|
|
|
building option `ENABLE_PACKAGING` must be set to `ON` when packaging.
|
2020-06-30 08:41:59 +00:00
|
|
|
|
- Do not stop the receiver if SysV message queues cannot be created.
|
2020-04-08 08:51:46 +00:00
|
|
|
|
|
2020-04-10 11:44:45 +00:00
|
|
|
|
### Improvements in Reliability:
|
|
|
|
|
|
|
|
|
|
- Fixed a bug in GLONASS GNAV CRC computation.
|
2020-07-19 12:44:18 +00:00
|
|
|
|
- Fixed a bug in GLONASS time year.
|
2020-06-06 21:35:10 +00:00
|
|
|
|
- Fixed a possible buffer overflow in the generation of RTCM messages.
|
2020-07-16 12:00:41 +00:00
|
|
|
|
- Fixed bugs which could cause a random crash on receiver stopping.
|
2020-04-10 11:44:45 +00:00
|
|
|
|
|
2020-04-02 09:13:49 +00:00
|
|
|
|
### Improvements in Reproducibility:
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improved reproducibility of the `volk_gnsssdr` library: Drop compile-time CPU
|
2020-04-02 09:13:49 +00:00
|
|
|
|
detection.
|
|
|
|
|
|
2020-07-28 10:30:11 +00:00
|
|
|
|
### Improvements in Testability:
|
|
|
|
|
|
|
|
|
|
- Add building option `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 `OFF` by default.
|
|
|
|
|
|
2020-04-02 09:13:49 +00:00
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
2020-06-12 18:51:26 +00:00
|
|
|
|
- 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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
are now stored in a `./thirdparty` folder under the building directory. In the
|
2020-06-12 18:51:26 +00:00
|
|
|
|
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
|
|
|
|
|
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/install`).
|
2020-07-06 22:05:31 +00:00
|
|
|
|
- Defined new `GNSS-SDR.GPS_banned_prns`, `GNSS-SDR.Galileo_banned_prns`,
|
|
|
|
|
`GNSS-SDR.Glonass_banned_prns` and `GNSS-SDR.Beidou_banned_prns` configuration
|
|
|
|
|
parameters. The user can specify lists of satellites that will not be
|
|
|
|
|
processed (e.g., `GNSS-SDR.Galileo_banned_prns=14,18` since Galileo E14 and
|
|
|
|
|
E18 satellites are not usable for PVT). Satellites on those lists will never
|
|
|
|
|
be assigned to a processing channel.
|
2020-10-18 11:29:23 +00:00
|
|
|
|
- Added acquisition and tracking monitors, with configuration examples.
|
2020-07-07 19:19:35 +00:00
|
|
|
|
- Added a Matlab script to quantize the input signal with a given number of bits
|
|
|
|
|
per sample.
|
|
|
|
|
- Fixed the building option `-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 `--minloglevel=3` to `gnss-sdr`. This can be
|
|
|
|
|
relevant in embedded devices with scarce storage capabilities.
|
|
|
|
|
- Fixed a bug in the Signal Sources configuration that made the number of
|
|
|
|
|
samples parameter ignored when too large (that is, when set larger than
|
|
|
|
|
2^31-1). Now the `samples` parameter accepts values up to 2^64-1, that is,
|
|
|
|
|
18,446,744,073,709,551,615 samples.
|
2020-07-17 08:48:37 +00:00
|
|
|
|
- Fixed a bug in the forwarding of NMEA messages to a serial port (configuration
|
|
|
|
|
of the `PVT.nmea_dump_devname` parameter was ignored).
|
2020-07-16 12:00:41 +00:00
|
|
|
|
- Updated version of the Contributor Covenant to version 2.0. Added badge in the
|
|
|
|
|
README.md file.
|
2020-04-02 09:13:49 +00:00
|
|
|
|
|
2020-07-28 10:30:11 +00:00
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2020-04-02 09:13:49 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.12](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.12) - 2020-03-13
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
### Improvements in Accuracy:
|
|
|
|
|
|
2020-03-09 18:30:43 +00:00
|
|
|
|
- Improved accuracy of the C/N0 estimator.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
### Improvements in Availability:
|
|
|
|
|
|
|
|
|
|
- Fixed computation of acquisition threshold when using the `Acquisition_XX.pfa`
|
|
|
|
|
configuration parameter, including non-coherent accumulation
|
|
|
|
|
(`Acquisition_XX.max_dwells` > 1).
|
|
|
|
|
|
|
|
|
|
### Improvements in Efficiency:
|
|
|
|
|
|
|
|
|
|
- Faster implementation of the Viterbi decoder for Galileo navigation messages.
|
|
|
|
|
- The `-O3` flag is now passed to GCC in `Release` and `RelWithDebInfo` build
|
|
|
|
|
types (instead of `-O2`), thus enabling tree vectorization. Disabled if
|
|
|
|
|
building for Fedora or Gentoo.
|
|
|
|
|
|
|
|
|
|
### Improvements in Flexibility:
|
|
|
|
|
|
|
|
|
|
- New Tracking parameters allow the configuration of the C/N0 and lock detector
|
2021-05-28 10:19:44 +00:00
|
|
|
|
smoothers, as well as the activation of the FLL in pull-in and steady-state
|
2020-02-27 20:05:29 +00:00
|
|
|
|
stages.
|
|
|
|
|
- Added new Tracking parameter `Tracking_XX.carrier_aiding`, allowing
|
|
|
|
|
enabling/disabling of carrier aiding to the code tracking loop.
|
|
|
|
|
- New PVT parameter `PVT.enable_rx_clock_correction` allows to enable or disable
|
|
|
|
|
the continuous application of the Time solution correction (clock steering) to
|
|
|
|
|
the computation of Observables. By default is set to `false` (that is,
|
|
|
|
|
disabled).
|
|
|
|
|
- New PVT parameter `PVT.max_clock_offset_ms`: if
|
|
|
|
|
`PVT.enable_rx_clock_correction` is set to `false`, this parameter sets the
|
|
|
|
|
maximum allowed local clock offset with respect to the Time solution. If the
|
|
|
|
|
estimated offset exceeds this parameter, a clock correction is applied to the
|
|
|
|
|
computation of Observables.
|
|
|
|
|
- Fixed L5 and E5a receiver chains when tracking the data component.
|
|
|
|
|
- Added new PVT configuration parameter `PVT.rinex_name` to specify a custom
|
|
|
|
|
name of the generated RINEX files. A commandline flag `--RINEX_name` is also
|
|
|
|
|
available, and overrides the configuration.
|
|
|
|
|
|
|
|
|
|
### Improvements in Interoperability:
|
|
|
|
|
|
|
|
|
|
- Fixed PVT solution in receivers processing L1 plus L2C and/or L5 signals.
|
2020-03-09 18:30:43 +00:00
|
|
|
|
- Fixed the initialization of the carrier phase accumulator. Carrier phase
|
|
|
|
|
measurements are now usable to compute integer ambiguity resolution.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Added carrier phase observable initialization to match the pseudorange length.
|
|
|
|
|
- Added RINEX files generation for triple-band configurations (L1 + L2C + L5 and
|
|
|
|
|
L1 + E1 + L2C + L5 + E5a).
|
|
|
|
|
- Fixed bugs in the decoding of BeiDou navigation messages.
|
|
|
|
|
- Fixed bugs in the generation of RTCM messages.
|
|
|
|
|
- Fixed a bug in feeding Galileo channels' observations to RTKLIB, which was
|
|
|
|
|
causing wrong date of PVT fixes in Galileo-only receivers and not considering
|
|
|
|
|
Galileo observations in multi-constellation receivers when using signals after
|
|
|
|
|
the GPS rollover on April 6, 2019.
|
|
|
|
|
- Improved management of devices with the AD9361 RF transceiver.
|
|
|
|
|
- Fixed bugs in FPGA off-loading.
|
|
|
|
|
|
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
|
|
|
|
- Rewriting of acquisition and tracking adapters, thus avoiding a lot of code
|
|
|
|
|
duplication.
|
|
|
|
|
- New CMake option `-DENABLE_ARMA_NO_DEBUG` defines the macro `ARMA_NO_DEBUG`,
|
|
|
|
|
which disables all run-time checks, such as bounds checking, in the Armadillo
|
|
|
|
|
library. This will result in faster code. This option is disabled by default
|
|
|
|
|
during development, but automatically set to `ON` if the option
|
|
|
|
|
`ENABLE_PACKAGING` is set to `ON`.
|
|
|
|
|
- All shadowed variables detected by passing `-Wshadow` to the compiler have
|
|
|
|
|
been fixed (see https://rules.sonarsource.com/cpp/RSPEC-1117?search=shadow and
|
|
|
|
|
MISRA C++:2008, 2-10-2 - Identifiers declared in an inner scope shall not hide
|
|
|
|
|
an identifier declared in an outer scope).
|
|
|
|
|
- Apply more clang-tidy checks related to readability:
|
|
|
|
|
`readability-avoid-const-params-in-decls`,
|
|
|
|
|
`readability-braces-around-statements`, `readability-isolate-declaration`,
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`readability-redundant-control-flow`, and
|
|
|
|
|
`readability-uppercase-literal-suffix`. Fixed raised warnings.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fixed a number of defects detected by `cpplint.py`. Filters applied:
|
|
|
|
|
`+build/class`, `+build/c++14`, `+build/deprecated`,
|
|
|
|
|
`+build/explicit_make_pair`, `+build/include_what_you_use`,
|
|
|
|
|
`+build/printf_format`, `+build/storage_class`, `+readability/constructors`,
|
|
|
|
|
`+readability/namespace`, `+readability/newline`, `+readability/utf8`,
|
|
|
|
|
`+runtime/casting`, `+runtime/explicit`, `+runtime/indentation_namespace`,
|
|
|
|
|
`+runtime/init`, `+runtime/invalid_increment`,
|
|
|
|
|
`+runtime/member_string_references`, `+runtime/memset`, `+runtime/operator`,
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`+runtime/printf`, `+runtime/printf_format`, and `+whitespace/blank_line`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- `clang-format` can now be applied to the whole code tree without breaking
|
|
|
|
|
compilation.
|
|
|
|
|
- Added more check options to `.clang-tidy` file.
|
|
|
|
|
- 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).
|
|
|
|
|
- CMake now passes the `-DCMAKE_BUILD_TYPE` (or configuration in
|
2021-05-28 10:19:44 +00:00
|
|
|
|
multi-configuration generators like Xcode) to modules built along with
|
|
|
|
|
`gnss-sdr` (e.g, the `volk_gnsssdr` library and googletest). Build types
|
|
|
|
|
available: `None`, `Release` (by default), `Debug`, `RelWithDebInfo`,
|
|
|
|
|
`MinSizeRel`, `Coverage`, `NoOptWithASM`, `O2WithASM`, `O3WithASM`, `ASAN`.
|
2020-02-28 21:00:36 +00:00
|
|
|
|
- Fix runtime errors when compiling in `Debug` mode on macOS.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Updated links in comments through the source code and in CMake scripts.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Update GSL implementation to 0.36.0. See
|
|
|
|
|
https://github.com/gsl-lite/gsl-lite/releases/tag/v0.36.0
|
2020-03-01 12:18:59 +00:00
|
|
|
|
- Create a CI job on GitHub to ensure that `clang-tidy` has been applied in most
|
2020-02-27 20:05:29 +00:00
|
|
|
|
of the source code (some optional blocks and tests are left apart).
|
2020-03-01 12:18:59 +00:00
|
|
|
|
- Create a CI job on GitHub to ensure that `clang-format` has been applied.
|
|
|
|
|
- Create a CI job on GitHub to ensure that `cpplint` filters have been applied.
|
|
|
|
|
- Create a CI job on GitHub to ensure compliance with REUSE Specification (see
|
2020-02-27 20:05:29 +00:00
|
|
|
|
https://reuse.software)
|
2020-03-01 12:18:59 +00:00
|
|
|
|
- Create a CI job on GitHub using `prettier` (https://prettier.io/) to check
|
2020-02-27 20:05:29 +00:00
|
|
|
|
markdown files formatting.
|
2020-03-01 12:18:59 +00:00
|
|
|
|
- Create a CI job on GitHub to check the formatting of CMake scripts using
|
|
|
|
|
`cmakelint` (see https://github.com/richq/cmake-lint).
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
### Improvements in Openness:
|
|
|
|
|
|
|
|
|
|
- Make software compliant with REUSE Specification – Version 3.0 (see
|
|
|
|
|
https://reuse.software/spec/).
|
|
|
|
|
|
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
|
|
|
|
- The CMake scripts now find dependencies in Debian's riscv64 architecture.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Enable AVX2 kernels of the `volk_gnsssdr` library when using the Clang
|
|
|
|
|
compiler.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fixed building in some ARM-based devices. Now Clang and ARMClang can be used
|
|
|
|
|
for native building.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added toolchain files for building gnss-sdr and the `volk_gnsssdr` library in
|
2020-02-27 20:05:29 +00:00
|
|
|
|
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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
previous manual installation of `volk_gnsssdr`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- The software can now be built using Xcode (passing `-GXcode` to CMake) without
|
|
|
|
|
gflags, glog, matio, PugiXML, Protocol Buffers or googletest previously
|
|
|
|
|
installed.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Now the `volk_gnsssdr` library can be built on Microsoft Windows.
|
|
|
|
|
- Now the `volk_gnsssdr` library makes use of C11 `aligned_alloc` where
|
|
|
|
|
available.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improved CMake script for cross-compilation and for the detection of AVX, AVX2
|
|
|
|
|
and NEON (v7 and v8) instructions.
|
|
|
|
|
- Fixed warnings raised by CMake 3.17.
|
2020-03-12 19:13:49 +00:00
|
|
|
|
- Fixed warnings raised by `cmake --warn-uninitialized ..`
|
2020-03-10 19:28:52 +00:00
|
|
|
|
- Fixed the receiver's availability in systems in which the Sys V message queue
|
|
|
|
|
mechanism is not available.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
### Improvements in Reliability:
|
|
|
|
|
|
|
|
|
|
- Decoding of navigation messages no longer rely on implementation defined
|
|
|
|
|
behavior for shifting left a signed integer.
|
|
|
|
|
- Removed usage of functions with insecure API (e.g., `strcpy`, `sprintf`).
|
|
|
|
|
- New type alias `volk_gnsssdr::vector` allows both aligned memory allocation
|
|
|
|
|
and automatic deallocation.
|
|
|
|
|
- Fixed a memory leak in the generation of Galileo PRN codes.
|
|
|
|
|
- Added clang-tidy checks `clang-analyzer-security.*`,
|
|
|
|
|
`clang-analyzer-optin.portability.UnixAPI` clang-tidy checks. Fixed raised
|
|
|
|
|
warnings.
|
|
|
|
|
- Fixed `cpplint.py` `runtime/printf` and `runtime/explicit` errors.
|
|
|
|
|
- All constructors callable with one argument are marked with the keyword
|
|
|
|
|
explicit. See MISRA C++:2008, 12-1-3 - All constructors that are callable with
|
|
|
|
|
a single argument of fundamental type shall be declared explicit.
|
|
|
|
|
|
|
|
|
|
### Improvements in Repeatability:
|
|
|
|
|
|
|
|
|
|
- Added the option to apply carrier smoothing of code pseudoranges with new
|
2020-03-12 19:13:49 +00:00
|
|
|
|
Observables parameter `Observables.enable_carrier_smoothing`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fixed normalization of DLL discriminator in BPSK modulations when the spacing
|
|
|
|
|
between correlators was not 0.5.
|
|
|
|
|
|
|
|
|
|
### Improvements in Testability:
|
|
|
|
|
|
2020-02-28 21:00:36 +00:00
|
|
|
|
- Add receiver runtime to `position_test` report.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improvements in FPGA unit tests.
|
|
|
|
|
- Add new utility tool `obsdiff` to perform single and double differences
|
|
|
|
|
computations from observation RINEX files. Requires GPSTk and Armadillo >=
|
|
|
|
|
9.800.
|
|
|
|
|
|
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
|
|
|
|
- A new global parameter `GNSS-SDR.pre_2009_file` allows to process raw sample
|
|
|
|
|
files containing GPS L1 C/A signals dated before July 14, 2009.
|
|
|
|
|
- Improved DLL-PLL binary dump MATLAB/Octave plot script. Old versions removed.
|
|
|
|
|
- Simplified RTKLIB error log.
|
|
|
|
|
- Added a Python 3 plotting script to show relative performance of generic
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`volk_gnsssdr` kernels wrt. SIMD fastest versions.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Added reporting of velocity in the terminal.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added reporting of user clock drift estimation, in ppm, in the `Pvt_Monitor`
|
|
|
|
|
and in internal logging (`Debug` mode).
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Updated documentation generated by Doxygen, now the `pdfmanual` target works
|
|
|
|
|
when using ninja.
|
|
|
|
|
- CMake now generates an improved summary of required/optional dependency
|
|
|
|
|
packages found and enabled/disabled features, including the building system
|
|
|
|
|
and GNSS-SDR, CMake and compiler versions. This info is also stored in a file
|
|
|
|
|
called `features.log` in the building directory.
|
|
|
|
|
- Markdown files have been wrapped to 80 characters line length to make it
|
|
|
|
|
easier to read them from the terminal.
|
|
|
|
|
|
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.11](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.11) - 2019-08-04
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
This release has several improvements in different dimensions, addition of new
|
|
|
|
|
features and bug fixes:
|
|
|
|
|
|
|
|
|
|
### Improvements in Accuracy:
|
|
|
|
|
|
|
|
|
|
- Local clock correction based on PVT solution, allowing the delivery of
|
|
|
|
|
continuous observables.
|
|
|
|
|
- Fix a bug in broadcast ionospheric parameters usage.
|
|
|
|
|
|
|
|
|
|
### Improvements in Availability:
|
|
|
|
|
|
|
|
|
|
- Improved mechanism for false lock detection in the Tracking loops.
|
|
|
|
|
- Fixed bug in Galileo INAV/FNAV message decoding when PLL is locked at 180
|
|
|
|
|
degrees, which prevented from correct navigation message decoding in some
|
|
|
|
|
situations.
|
|
|
|
|
- Fixed bug that caused a random deadlock in the Observables block, preventing
|
|
|
|
|
the computation of PVT fixes.
|
|
|
|
|
- Fixed PVT computation continuity through the TOW rollover.
|
|
|
|
|
- Improved signal acquisition and tracking mechanisms in high dynamic scenarios.
|
|
|
|
|
|
|
|
|
|
### Improvements in Efficiency:
|
|
|
|
|
|
|
|
|
|
- Added mechanism for assisted acquisition of signals on a secondary band when
|
|
|
|
|
the primary has already been acquired. This allows a great reduction of the
|
|
|
|
|
computational load in multi-frequency configurations.
|
|
|
|
|
- Tracking loops now perform bit synchronization, simplifying the decoding
|
|
|
|
|
process in Telemetry blocks and FPGA-offloading.
|
|
|
|
|
- Improved preamble detection implementation in the decoding of navigation
|
|
|
|
|
messages (acceleration by x1.6 on average per channel).
|
|
|
|
|
- Shortened Acquisition to Tracking transition time.
|
|
|
|
|
- Applied clang-tidy checks and fixes related to performance:
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`performance-faster-string-find`, `performance-for-range-copy`,
|
|
|
|
|
`performance-implicit-conversion-in-loop`,
|
|
|
|
|
`performance-inefficient-algorithm`,
|
|
|
|
|
`performance-inefficient-string-concatenation`,
|
|
|
|
|
`performance-inefficient-vector-operation`, `performance-move-const-arg`,
|
|
|
|
|
`performance-move-constructor-init`, `performance-noexcept-move-constructor`,
|
|
|
|
|
`performance-type-promotion-in-math-fn`,
|
|
|
|
|
`performance-unnecessary-copy-initialization`,
|
|
|
|
|
`performance-unnecessary-value-param`, `readability-string-compare`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
### Improvements in Flexibility:
|
|
|
|
|
|
|
|
|
|
- Rewritten Control Thread and GNSS flow graph for increased control of
|
|
|
|
|
channels' status and smarter assignation of satellites in multi-band
|
|
|
|
|
configurations.
|
|
|
|
|
- New Tracking parameters allow the configuration of PLL and DLL filters order.
|
|
|
|
|
- Added parameter to enable FLL during pull-in time.
|
|
|
|
|
- Configurable pull-in time in the Tracking loops.
|
|
|
|
|
|
|
|
|
|
### Improvements in Interoperability:
|
|
|
|
|
|
|
|
|
|
- Added the BeiDou B1I and B3I receiver chains.
|
|
|
|
|
- Fix bug in GLONASS dual frequency receiver.
|
|
|
|
|
- Added a custom UDP/IP output for PVT data streaming.
|
|
|
|
|
- Improved Monitor block with UDP/IP output for internal receiver's data
|
|
|
|
|
streaming.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Custom output formats described with `.proto` files, making easier to other
|
2020-02-27 20:05:29 +00:00
|
|
|
|
applications reading them in a forward and backward-compatible fashion upon
|
|
|
|
|
future format changes. New dependency: Protocol Buffers >= 3.0.0
|
|
|
|
|
- Fixes in RINEX generation: week rollover, annotations are not repeated anymore
|
2021-05-28 10:19:44 +00:00
|
|
|
|
in navigation files. Parameter `PVT.rinexnav_rate_ms` has been removed,
|
|
|
|
|
annotations are made as new ephemeris arrive.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fixes in RTCM messages generation: week rollover.
|
|
|
|
|
|
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- The internal communication mechanism based on `gr::msg_queue` has been
|
|
|
|
|
replaced by a thread-safe, built-in asynchronous message passing system based
|
|
|
|
|
on GNU Radio's Polymorphic Types. This change is backwards-compatible and
|
|
|
|
|
prevents from a failure in case of a possible future deprecation or removal of
|
|
|
|
|
the `gr::msg_queue` API.
|
|
|
|
|
- Deprecated `boost::asio::io_service` replaced by `boost::asio::io_context` if
|
2020-02-27 20:05:29 +00:00
|
|
|
|
Boost > 1.65
|
|
|
|
|
- CMake turns all policies to ON according to the running version up to version
|
|
|
|
|
3.15.
|
|
|
|
|
- Usage of clang-tidy integrated into CMake scripts. New option
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`-DENABLE_CLANG_TIDY=ON` executes clang-tidy along with compilation. Requires
|
2020-02-27 20:05:29 +00:00
|
|
|
|
clang compiler.
|
|
|
|
|
- Applied clang-tidy checks and fixes related to readability:
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`readability-container-size-empty`, `readability-identifier-naming`,
|
|
|
|
|
`readability-inconsistent-declaration-parameter-name`,
|
|
|
|
|
`readability-named-parameter`, `readability-non-const-parameter`,
|
|
|
|
|
`readability-string-compare`.
|
|
|
|
|
- Improved includes selection following suggestions by `include-what-you-use`
|
|
|
|
|
(see https://include-what-you-use.org/), allowing faster compiles, fewer
|
|
|
|
|
recompiles and making refactoring easier.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Massive reduction of warnings triggered by clang-tidy checks.
|
|
|
|
|
- Throughout code cleaning and formatting performed with automated tools in
|
|
|
|
|
order to reduce future commit noise.
|
|
|
|
|
|
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
|
|
|
|
- Added interfaces for FPGA off-loading in GPS L1 C/A, Galileo E1b/c, GPS L2C,
|
|
|
|
|
GPS L5 and Galileo E5a receiver chains.
|
|
|
|
|
- CMake scripts now follow a modern approach (targets and properties) but still
|
|
|
|
|
work with 2.8.12.
|
|
|
|
|
- Improvements for macOS users using Homebrew.
|
|
|
|
|
- The software builds against GNU Radio >= 3.7.3, including 3.8.0. Automatically
|
|
|
|
|
detected, no user intervention is required.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- The `volk_gnsssdr` library can now be built without requiring Boost if the
|
2020-02-27 20:05:29 +00:00
|
|
|
|
compiler supports C++17 or higher.
|
|
|
|
|
- The Boost Filesystem library is not anymore a required dependency in cases
|
2021-05-28 10:19:44 +00:00
|
|
|
|
where it can be replaced by `std::filesystem`. Automatically detected, no user
|
2020-02-27 20:05:29 +00:00
|
|
|
|
intervention is required.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- CMake scripts automatically select among C++11, C++14, C++17, or C++20
|
2020-02-27 20:05:29 +00:00
|
|
|
|
standards, the most recent as possible, depending on compiler and dependencies
|
|
|
|
|
versions.
|
|
|
|
|
- Drawback in portability: Protocol Buffers >= 3.0.0 is a new required
|
|
|
|
|
dependency.
|
|
|
|
|
|
|
|
|
|
### Improvements in Reliability:
|
|
|
|
|
|
|
|
|
|
- Included the Guidelines Support Library. General improvement of memory
|
|
|
|
|
management, replacement of raw pointers by containers or smart pointers.
|
|
|
|
|
- Applied clang-tidy checks and fixes related to High Integrity C++:
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`performance-move-const-arg`, `modernize-use-auto`,
|
|
|
|
|
`modernize-use-equals-default`, `modernize-use-equals-delete`,
|
|
|
|
|
`modernize-use-noexcept`, `modernize-use-nullptr`, `cert-dcl21-cpp`,
|
|
|
|
|
`misc-new-delete-overloads`, `cert-dcl58-cpp`, `cert-err52-cpp`,
|
|
|
|
|
`cert-err60-cpp`, `hicpp-exception-baseclass`, `hicpp-explicit-conversions`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fixed a number of defects detected by Coverity Scan (version June 2019).
|
|
|
|
|
|
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
|
|
|
|
- The receiver now admits FPGA off-loading, allowing for real time operation in
|
|
|
|
|
embedded systems at high sampling rates and high number of signals and
|
|
|
|
|
channels per signal in multiple bands.
|
|
|
|
|
- Fixed program termination (avoiding hangs and segfaults in some
|
|
|
|
|
platforms/configurations).
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- The `Labsat_Signal_Source` now terminates the receiver's execution when the
|
|
|
|
|
end of file(s) is reached. It now accepts LabSat 2 filenames and series of
|
|
|
|
|
LabSat 3 files.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Added configuration parameters to set the annotation rate in KML, GPX, GeoJSON
|
|
|
|
|
and NMEA outputs, set by default to 1 s.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New parameter `PVT.show_local_time_zone` displays time in the local time zone.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
Subject to the proper system configuration of the machine running the software
|
|
|
|
|
receiver. This feature is not available in old compilers.
|
|
|
|
|
- CMake now generates a summary of required/optional dependency packages found
|
|
|
|
|
and enabled/disabled features. This info is also stored in a file called
|
|
|
|
|
features.log in the building directory.
|
|
|
|
|
- Improved information provided to the user in case of building configuration
|
|
|
|
|
and runtime failures.
|
2021-06-15 12:19:40 +00:00
|
|
|
|
- Remove abandoned building option `-DENABLE_GN3S` and `Gn3s_Signal_Source`
|
|
|
|
|
implementation.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.10](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.10) - 2018-12-14
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
This release has several improvements in different dimensions, addition of new
|
|
|
|
|
features and bug fixes:
|
|
|
|
|
|
|
|
|
|
### Improvements in Accuracy:
|
|
|
|
|
|
|
|
|
|
- Part of the RTKLIB core library has been integrated into GNSS-SDR. There is
|
|
|
|
|
now a single PVT block implementation which makes use of RTKLIB to deliver PVT
|
|
|
|
|
solutions, including Single and PPP navigation modes.
|
|
|
|
|
- Fixed CN0 estimation for other correlation times than 1 ms.
|
|
|
|
|
- Improved computation of tracking parameters and GNSS observables.
|
|
|
|
|
- Other minor bug fixes.
|
|
|
|
|
|
|
|
|
|
### Improvements in Availability:
|
|
|
|
|
|
|
|
|
|
- Internal Finite State Machines rewritten for improved continuity in delivering
|
|
|
|
|
position fixes. This fixes a bug that was stalling the receiver after about
|
|
|
|
|
six hours of continuous operation.
|
|
|
|
|
- Redesign of the time counter for enhanced continuity.
|
|
|
|
|
- Improved flow graph in multi-system configurations: the receiver does not get
|
|
|
|
|
stalled anymore if no signal is found from the first system.
|
|
|
|
|
- Improved acquisition and tracking sensitivity.
|
|
|
|
|
- Added mechanisms for Assisted GNSS, thus shortening the Time-To-First-Fix.
|
|
|
|
|
Provision of data via XML files or via SUPL v1.0. Documented at
|
|
|
|
|
https://gnss-sdr.org/docs/sp-blocks/global-parameters/
|
|
|
|
|
- Other minor bug fixes.
|
|
|
|
|
|
|
|
|
|
### Improvements in Efficiency:
|
|
|
|
|
|
|
|
|
|
- Added the possibility of non-blocking acquisition, which works well when using
|
|
|
|
|
real-time data from an RF front-end.
|
|
|
|
|
- Improved flow graph in multi-band configurations: satellites acquired in one
|
|
|
|
|
band are immediately searched in others.
|
|
|
|
|
- Complex local codes have been replaced by real codes, alleviating the
|
|
|
|
|
computational burden.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New `volk_gnsssdr` kernels: `volk_gnsssdr_16i_xn_resampler_16i_xn.h`,
|
|
|
|
|
`volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h`,
|
|
|
|
|
`volk_gnsssdr_32f_xn_resampler_32f_xn.h`, and
|
|
|
|
|
`volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h`.
|
|
|
|
|
- Some AVX2 implementations added to the `volk_gnsssdr` library.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improvement in C++ usage: Use of const container calls when result is
|
|
|
|
|
immediately converted to a const iterator. Using these members removes an
|
|
|
|
|
implicit conversion from iterator to const_iterator.
|
|
|
|
|
- Output printers can be shut down, with some savings in memory and storage
|
|
|
|
|
requirements.
|
|
|
|
|
- A number of code optimizations here and there.
|
|
|
|
|
|
|
|
|
|
### Improvements in Flexibility:
|
|
|
|
|
|
|
|
|
|
- A number of new parameters have been exposed to the configuration system.
|
|
|
|
|
- Possibility to choose Pilot or Data component for tracking of GPS L5 and
|
|
|
|
|
Galileo E5a signals.
|
|
|
|
|
- Enabled extended coherent integration times for signal tracking.
|
|
|
|
|
- Configurable coherent and/or non-coherent signal acquisition.
|
|
|
|
|
- Some configuration parameters can now be overridden by commandline flags for
|
|
|
|
|
easier use in scripts.
|
|
|
|
|
|
|
|
|
|
### Improvements in Interoperability:
|
|
|
|
|
|
|
|
|
|
- Added the GPS L5 receiver chain.
|
|
|
|
|
- Added the GLONASS L1 SP receiver chain.
|
|
|
|
|
- Added the GLONASS L2 SP receiver chain.
|
|
|
|
|
- Improvements in the Galileo E5a and GPS L2C receiver chains.
|
|
|
|
|
- Updated list of available GNSS satellites.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added five more signal sources: `Fmcomms2_Signal_Source` (requires gr-iio),
|
|
|
|
|
`Plutosdr_Signal Source` (requires gr-iio), `Spir_GSS6450_File_Signal_Source`,
|
|
|
|
|
`Labsat_Signal_Source` and `Custom_UDP_Signal_Source` (requires libpcap).
|
2020-02-27 20:05:29 +00:00
|
|
|
|
Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/
|
|
|
|
|
- Improved support for BladeRF, HackRF and RTL-SDR front-ends.
|
|
|
|
|
- Added tools for the interaction with front-ends based on the AD9361 chipset.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Intermediate results are now saved in MAT-file format (`.mat`), readable from
|
2020-02-27 20:05:29 +00:00
|
|
|
|
Matlab/Octave and from Python via h5py.
|
|
|
|
|
- Added the GPX output format.
|
|
|
|
|
- Improvements in the generation of KML files.
|
|
|
|
|
- Improvements in the NMEA output. The receiver can produce GPGGA, GPRMC, GPGSA,
|
|
|
|
|
GPGSV, GAGSA and GAGSV sentences.
|
|
|
|
|
- Improvements in the RTCM server stability.
|
|
|
|
|
- Improvements in the correctness of generated RINEX files.
|
|
|
|
|
- The receiver can read and make use of Galileo almanac XML files published by
|
|
|
|
|
the European GNSS Service Centre at
|
|
|
|
|
https://www.gsc-europa.eu/system-status/almanac-data
|
|
|
|
|
- Own-defined XML schemas for navigation data published at
|
|
|
|
|
https://github.com/gnss-sdr/gnss-sdr/tree/next/docs/xml-schemas
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added program `rinex2assist` to convert RINEX navigation files into XML files
|
2020-02-27 20:05:29 +00:00
|
|
|
|
usable for Assisted GNSS. Only available building from source. See
|
|
|
|
|
https://github.com/gnss-sdr/gnss-sdr/tree/next/src/utils/rinex2assist
|
|
|
|
|
|
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
|
|
|
|
- Setup of a Continuous Integration system that checks building and runs QA code
|
|
|
|
|
in a wide range of GNU/Linux distributions (Arch Linux, CentOS, Debian,
|
|
|
|
|
Fedora, OpenSUSE, Ubuntu) and releases. See
|
|
|
|
|
https://gitlab.com/gnss-sdr/gnss-sdr
|
|
|
|
|
- Creation of multi-system processing blocks, drastically reducing code
|
|
|
|
|
duplication and maintainability time.
|
|
|
|
|
- Automated code formatting with clang-format. This tool is widely available and
|
|
|
|
|
easy to integrate into many code editors, and it also can be used from the
|
|
|
|
|
command line. It cuts time spent on adhering to the project's code formatting
|
|
|
|
|
style.
|
|
|
|
|
- Improvement in C++ usage: C-style casts have been replaced by C++ casts.
|
|
|
|
|
C-style casts are difficult to search for. C++ casts provide compile time
|
|
|
|
|
checking ability and express programmers' intent better, so they are safer and
|
|
|
|
|
clearer.
|
|
|
|
|
- Improvement in C++ usage: The override special identifier is now used when
|
|
|
|
|
overriding a virtual function. This helps the compiler to check for type
|
|
|
|
|
changes in the base class, making the detection of errors easier.
|
|
|
|
|
- Improvement in C++ usage: A number of unused includes have been removed. Order
|
|
|
|
|
of includes set to: local (in-source) headers, then library headers, then
|
|
|
|
|
system headers. This helps to detect missing includes.
|
|
|
|
|
- Improvement in C++ usage: Enhanced const correctness. Misuses of those
|
|
|
|
|
variables are detected by the compiler.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improved code with clang-tidy and generation of a `compile_commands.json` file
|
2020-02-27 20:05:29 +00:00
|
|
|
|
containing the exact compiler calls for all translation units of the project
|
|
|
|
|
in machine-readable form if clang-tidy is detected.
|
|
|
|
|
- Applied some style rules to CMake scripts.
|
|
|
|
|
- Minimal versions of dependencies identified and detected.
|
|
|
|
|
|
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
|
|
|
|
- Several CMake scripts improvements, more verbose outputs in case of errors.
|
|
|
|
|
Building configuration has been documented in
|
|
|
|
|
https://gnss-sdr.org/docs/tutorials/configuration-options-building-time/
|
|
|
|
|
- Improved SDK for cross-compilation in embedded devices. Documented in
|
|
|
|
|
https://gnss-sdr.org/docs/tutorials/cross-compiling/
|
|
|
|
|
- Improved control over minimum required versions for core dependencies.
|
|
|
|
|
- The software builds with C++11, C++14 and C++17 standards.
|
|
|
|
|
- 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.
|
|
|
|
|
- The Ninja build system can be used in replacement of make.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- 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.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improved detection of required and optional dependencies in many GNU/Linux
|
|
|
|
|
distributions and processor architectures.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improvement in C++ usage: The `<ctime>` library has been replaced by the more
|
|
|
|
|
modern and portable `<chrono>` (except for the interaction with RTKLIB).
|
|
|
|
|
- Improvement in C++ usage: The `<stdio.h>` library has been replaced by the
|
|
|
|
|
more modern and portable `<fstream>` for file handling.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improvement in C++ usage: C++ libraries preferred over C libraries (e.g.,
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`<cctype>` instead of `<ctype.h>`, `<cmath>` instead of `<math.h>`).
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fix compatibility with Boost 1.67 (closes Debian bug #911882
|
|
|
|
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911882)
|
|
|
|
|
- Fixes required by Debian packaging.
|
|
|
|
|
- Fixes required by Macports packaging.
|
|
|
|
|
- A downside in portability: BLAS and LAPACK libraries are now required even in
|
|
|
|
|
ARM devices.
|
|
|
|
|
- A downside in portability: the matio library >= 1.5.3 is a new required
|
|
|
|
|
dependency. If not found, it is downloaded and built automatically at building
|
|
|
|
|
time, but this requires libtool, automake and hdf5 already installed in the
|
|
|
|
|
system.
|
|
|
|
|
- A downside in portability: the PugiXML library is a new required dependency.
|
|
|
|
|
If not found, it is downloaded and built automatically at building time.
|
|
|
|
|
|
|
|
|
|
### Improvements in Reliability:
|
|
|
|
|
|
|
|
|
|
- Introduced 3 new Input Filter implementations for pulsed and narrowband
|
|
|
|
|
interference mitigation: `Pulse_Blanking_Filter`, `Notch_Filter` and
|
|
|
|
|
`Notch_Filter_Lite`. Documented in
|
|
|
|
|
https://gnss-sdr.org/docs/sp-blocks/input-filter/
|
|
|
|
|
- Improved flow graph stability.
|
|
|
|
|
- Introduction of high-integrity C++ practices into the source code and included
|
|
|
|
|
in the coding style guide. See https://gnss-sdr.org/coding-style/
|
|
|
|
|
- Fixed a number of defects detected by Coverity Scan.
|
|
|
|
|
- Improvement of QA code and addition of a number of new tests. Documented at
|
|
|
|
|
https://gnss-sdr.org/docs/tutorials/testing-software-receiver-2/
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improvement in C++ usage: `rand()` function replaced by `<random>` library.
|
|
|
|
|
- Improvement in C++ usage: `strlen` and `strncpy` have been replaced by safer
|
|
|
|
|
C++ counterparts.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improvement in C++ usage: Some destructors have been fixed, avoiding
|
|
|
|
|
segmentation faults when exiting the program.
|
|
|
|
|
- Website switched from http to https. Links in the source tree switched when
|
|
|
|
|
available.
|
|
|
|
|
|
|
|
|
|
### Improvements in Reproducibility:
|
|
|
|
|
|
|
|
|
|
- Setup of a Continuous Reproducibility system at GitLab for the automatic
|
|
|
|
|
reproduction of experiments. The concept was introduced in
|
|
|
|
|
https://ieeexplore.ieee.org/document/8331069/ Example added in the
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`src/utils/reproducibility/ieee-access18/` folder.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Fixes of Lintian warnings related to build reproducibility.
|
|
|
|
|
|
|
|
|
|
### Improvements in Scalability:
|
|
|
|
|
|
|
|
|
|
- Improvements in multi-system, multi-band receiver configurations. The receiver
|
|
|
|
|
now accepts any number of channels and systems in the three available bands.
|
|
|
|
|
- All possible combinations of signals and integration times are now accepted by
|
|
|
|
|
the Observables block.
|
|
|
|
|
|
|
|
|
|
### Improvements in Testability:
|
|
|
|
|
|
|
|
|
|
- Several Unit Tests added. Documentation of testing concepts and available
|
|
|
|
|
tests at https://gnss-sdr.org/docs/tutorials/testing-software-receiver/
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New extra unit test `AcquisitionPerformanceTest` checks the performance of
|
2020-02-27 20:05:29 +00:00
|
|
|
|
Acquisition blocks.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New extra unit test `TrackingPullInTest` checks acquisition to tracking
|
2020-02-27 20:05:29 +00:00
|
|
|
|
transition.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New extra unit test `HybridObservablesTest` checks the generation of
|
2020-02-27 20:05:29 +00:00
|
|
|
|
observables.
|
|
|
|
|
- Improved system testing: position_test accepts a wide list of parameters and
|
|
|
|
|
can be used with external files.
|
|
|
|
|
- Receiver channels can now be fixed to a given satellite.
|
|
|
|
|
- Testing integrated in a Continuous Reproducibility system (see above).
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improved CTest support in `volk_gnsssdr`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
|
|
|
|
- All Observables block implementations have been merged into a single
|
|
|
|
|
implementation for all kinds of GNSS signals, making it easier to configure.
|
|
|
|
|
- All PVT block implementations have been merged into a single implementation
|
|
|
|
|
for all kinds of GNSS signals, making it easier to configure.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- 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
|
2020-02-27 20:05:29 +00:00
|
|
|
|
warning is provided to the user. The old name will be removed in future
|
|
|
|
|
releases.
|
|
|
|
|
- Updated and improved online documentation of processing blocks at
|
|
|
|
|
https://gnss-sdr.org/docs/sp-blocks/
|
|
|
|
|
- Improved documentation of required dependency packages in several GNU/Linux
|
|
|
|
|
distributions.
|
|
|
|
|
- Dump and output files can now be stored anywhere.
|
|
|
|
|
- Parameter names with the same role have been harmonized within different block
|
|
|
|
|
implementations.
|
|
|
|
|
- Added a changelog, a code of conduct, a contributing guide and a pull-request
|
|
|
|
|
template in the source tree.
|
|
|
|
|
- Added colors to the commandline user interface.
|
|
|
|
|
- Updated manfiles.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Updated examples of configuration files under the `conf/` folder.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.9](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.9) - 2017-02-13
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
DOI: https://doi.org/10.5281/zenodo.291371
|
|
|
|
|
|
|
|
|
|
This release has several improvements, addition of new features and bug fixes in
|
|
|
|
|
many dimensions:
|
|
|
|
|
|
|
|
|
|
### Improvements in Accuracy:
|
|
|
|
|
|
|
|
|
|
- Major rewriting in the generation of pseudoranges.
|
|
|
|
|
- Fixed bug in Galileo E5a/I codes.
|
|
|
|
|
- Fixed bug in Galileo E1 correlator spacing.
|
|
|
|
|
- Fixed bug that was causing errors in receivers above the troposphere.
|
|
|
|
|
- Fixed 16-bit complex resampler.
|
|
|
|
|
- Improved time tracking algorithm.
|
|
|
|
|
- Added Bancroft's algorithm implementation for PVT initialization.
|
|
|
|
|
|
|
|
|
|
### Improvements in Availability:
|
|
|
|
|
|
|
|
|
|
- Improved numerical stability of the PVT solution. The infamous bug that was
|
|
|
|
|
causing apparently random error peaks has finally been fixed.
|
|
|
|
|
|
|
|
|
|
### Improvements in Efficiency:
|
|
|
|
|
|
|
|
|
|
- VOLK_GNSSSDR: Added NEON,AVX and unaligned protokernels for
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`volk_gnsssdr_32f_index_max_32` kernel.
|
|
|
|
|
- VOLK_GNSSSDR: Added `volk_gnsssdr-config-info` to the list of generated
|
2020-02-27 20:05:29 +00:00
|
|
|
|
executables.
|
|
|
|
|
|
|
|
|
|
### Improvements in Flexibility:
|
|
|
|
|
|
|
|
|
|
- Added maximum number of dwells in the Tong algorithm.
|
|
|
|
|
|
|
|
|
|
### Improvements in Interoperability:
|
|
|
|
|
|
|
|
|
|
- Added six new Galileo satellites: FM7, FM10, FM11, FM12, FM13, FM14.
|
|
|
|
|
- The Hybrid_Observables and Hybrid_PVT implementations can now handle more
|
|
|
|
|
types of GNSS signals.
|
|
|
|
|
- The RINEX printer can now print L2C and E5a observables and navigation files,
|
|
|
|
|
including multiband configurations.
|
|
|
|
|
- Added RTCM 3.2 output to more receiver configurations.
|
|
|
|
|
|
|
|
|
|
### Improvements in Maintainability:
|
|
|
|
|
|
|
|
|
|
- The VOLK_GNSSSDR library can now be built with Python 3. Switched dependencies
|
|
|
|
|
for VOLK_GNSSDR: from (old, python2.7-only) python-cheetah templates to
|
|
|
|
|
Python3 friendly python-mako and python-six. So, Python-cheetah dependency has
|
|
|
|
|
been dropped, and python-mako and python-six have been added.
|
|
|
|
|
- If suitable versions of gflags, glog, armadillo or googletest are not found in
|
|
|
|
|
the system, they will be downloaded and built at compile time (versions 2.2.0,
|
|
|
|
|
0.3.4, 7.600.2 and 1.8.0, respectively).
|
|
|
|
|
- Fixed more than 30 defects detected by Coverity Scan.
|
|
|
|
|
- Added CMake Python finder and module checker.
|
|
|
|
|
- Deleted files related to CPack.
|
|
|
|
|
- Fixes, updates and improvements in the documentation.
|
|
|
|
|
- Improvements in CMake scripts: General code cleaning and addition of comments.
|
|
|
|
|
Improved user information in case of failure. Improved detection of
|
|
|
|
|
dependencies in more processor architectures (e.g. aarch64).
|
|
|
|
|
|
|
|
|
|
### Improvements in Marketability:
|
|
|
|
|
|
|
|
|
|
- Reduced time from a commit to deployment (see virtualization mechanisms in
|
|
|
|
|
Portability).
|
|
|
|
|
|
|
|
|
|
### Improvements in Portability:
|
|
|
|
|
|
|
|
|
|
- Now GNSS-SDR can be run in virtual environments through snap packages (see
|
|
|
|
|
https://github.com/carlesfernandez/snapcraft-sandbox) and docker images (see
|
|
|
|
|
https://github.com/carlesfernandez/docker-gnsssdr).
|
|
|
|
|
- Now GNSS-SDR is adapted to cross-compiling environments for embedded devices
|
|
|
|
|
(see https://github.com/carlesfernandez/oe-gnss-sdr-manifest).
|
|
|
|
|
- BLAS and LAPACK libraries are no longer mandatory on ARM devices.
|
|
|
|
|
|
|
|
|
|
### Improvements in Scalability:
|
|
|
|
|
|
|
|
|
|
- Fixed bug in acquisition with rata rates higher than 16 Msps in 4ms code
|
|
|
|
|
periods.
|
|
|
|
|
|
|
|
|
|
### Improvements in Testability:
|
|
|
|
|
|
|
|
|
|
- Major QA source code refactoring: they has been split into
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`src/tests/unit-tests` and `src/tests/system-tests` folders. They are
|
|
|
|
|
optionally built with the `ENABLE_UNIT_TESTING=ON` (unit testing QA code),
|
|
|
|
|
`ENABLE_UNIT_TESTING_EXTRA=ON` (unit tests that require extra files downloaded
|
|
|
|
|
at configure time), `ENABLE_SYSTEM_TESTING=ON` (system tests, such as
|
|
|
|
|
measurement of Time-To-First-Fix) and `ENABLE_SYSTEM_TESTING_EXTRA=ON` (extra
|
2020-02-27 20:05:29 +00:00
|
|
|
|
system test requiring external tools, automatically downloaded and built at
|
|
|
|
|
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
|
|
|
|
|
already found on the system. Download and local link of version 2.9 can be
|
2021-05-28 10:19:44 +00:00
|
|
|
|
forced by `ENABLE_OWN_GPSTK=ON` building configuration flag. Only
|
|
|
|
|
`ENABLE_UNIT_TESTING` is set to ON by default.
|
|
|
|
|
- Unit tests added: `CPU_multicorrelator_test` and `GPU_multicorrelator_test`
|
2020-02-27 20:05:29 +00:00
|
|
|
|
measure computer performance in multicorrelator setups.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Unit tests added: `GpsL1CADllPllTracking` and `GpsL1CATelemetryDecoderTest`.
|
|
|
|
|
- System test added: `ttff_gps_l1` performs a set of cold / assisted runs of the
|
2020-02-27 20:05:29 +00:00
|
|
|
|
software receiver and computes statistics about the obtained Time To First
|
|
|
|
|
Fix.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- System test added: `obs_gps_l1_system_test` uses an external software-defined
|
2020-02-27 20:05:29 +00:00
|
|
|
|
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
|
|
|
|
|
compares the RINEX observation file produced by the software receiver to that
|
|
|
|
|
produced by the signal generator.
|
|
|
|
|
- Software Development Kit provided for embedded devices (see
|
|
|
|
|
https://gnss-sdr.org/docs/tutorials/cross-compiling/).
|
|
|
|
|
|
|
|
|
|
### Improvements in Usability:
|
|
|
|
|
|
|
|
|
|
- Now the block factory automatically detects Channel input data type, so it is
|
|
|
|
|
no longer required to specify Channel.input_type in the configuration. An
|
|
|
|
|
error raises if Acquisition and Tracking Blocks are not configured with the
|
|
|
|
|
same input data type.
|
|
|
|
|
- Block names changed from L2_M to L2C.
|
|
|
|
|
- Documentation available at https://gnss-sdr.org/docs/
|
|
|
|
|
- Improved tools for compilation, execution and testing in embedded devices.
|
|
|
|
|
|
|
|
|
|
See the definitions of concepts and metrics at
|
|
|
|
|
https://gnss-sdr.org/design-forces/
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.8](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.8) - 2016-07-04
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
DOI: https://doi.org/10.5281/zenodo.57022
|
|
|
|
|
|
|
|
|
|
This is a maintenance and bug fix release with no relevant new features with
|
|
|
|
|
respect to v0.0.7. The main changes are:
|
|
|
|
|
|
|
|
|
|
- Fixed a bug that broke building when using latest VOLK release
|
|
|
|
|
- Updated PYBOMBS instructions
|
|
|
|
|
- Added Tests for FFT length
|
|
|
|
|
- Added Tests for CUDA-based tracking
|
|
|
|
|
- Added Tests for SIMD-based tracking
|
|
|
|
|
- Improved CUDA-based correlation.
|
|
|
|
|
- Updated documentation
|
|
|
|
|
- Fixed building in mips and powerpc architectures.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- `gr-gn3s` and `gr-dbfcttc` moved to its own repository.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improved package reproducibility
|
|
|
|
|
- VOLK_GNSSSDR: Fixed a bug in AVX2 puppet
|
|
|
|
|
- VOLK_GNSSSDR: can now be built using the C98 standard
|
|
|
|
|
- VOLK_GNSSSDR: Fixed a bug that broke building when linking to Boost in some
|
|
|
|
|
configurations.
|
|
|
|
|
- VOLK_GNSSSDR: Added an option to trigger profiling at building time.
|
|
|
|
|
- VOLK_GNSSSDR: Fix the CMake-based check for posix_memalign.
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.7](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.7) - 2016-05-15
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
DOI: https://doi.org/10.5281/zenodo.51521
|
|
|
|
|
|
|
|
|
|
This release has several improvements, addition of new features and bug fixes:
|
|
|
|
|
|
|
|
|
|
- Improvements in receiver design: Internal block communication has been
|
|
|
|
|
redesigned to accommodate the addition of new signals, and now upstream and
|
|
|
|
|
downstream communication within blocks is implemented through the GNU Radio
|
|
|
|
|
block’s asynchronous message passing system, leading to a more scalable, more
|
|
|
|
|
robust and cleaner design.
|
|
|
|
|
- Improvements in receiver design: Correlators have been rewritten to take full
|
|
|
|
|
advantage of VOLK and VOLK_GNSSSDR, and they are of general use for any
|
|
|
|
|
tracking block. Their API now admit an arbitrary number of correlators, spaced
|
|
|
|
|
in an arbitrary manner, in 16ic and 32fc versions.
|
|
|
|
|
- Improvements in receiver design: Block adapters are now all managed by smart
|
|
|
|
|
pointers, ensuring better memory management.
|
|
|
|
|
- Improvements in processing speed: The VOLK_GNSSSDR library has been rewritten,
|
|
|
|
|
following current VOLK standards and adding a number of new kernels. This
|
|
|
|
|
approach addresses both efficiency and portability. Now the library provides
|
|
|
|
|
the key kernels for GNSS signal processing in 16ic and 32fc versions,
|
|
|
|
|
including SSE2, SSE3, SSE4.1, AVX, AV2 and NEON implementations. Please
|
2021-05-28 10:19:44 +00:00
|
|
|
|
execute `volk_gnsssdr_profile` and `volk_profile` to use the fastest
|
2020-02-27 20:05:29 +00:00
|
|
|
|
implementation for your host machine.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New source block: `Two_Bit_Packed_File_Signal_Source`. This block takes 2 bit
|
2020-02-27 20:05:29 +00:00
|
|
|
|
samples that have been packed into bytes or shorts as input and generates a
|
|
|
|
|
byte for each sample.
|
|
|
|
|
- Fixes in SUPL assistance (supl.nokia.com removed).
|
|
|
|
|
- Improvements in acquisition: Added a non CFAR PCPS acquisition algorithm based
|
|
|
|
|
on the estimation of the post correlation noise floor. If enabled as an option
|
|
|
|
|
in the acquisition configuration, it allows setting more stable thresholds in
|
|
|
|
|
the presence of non-gaussian front-end noise (which is the usual behavior of
|
|
|
|
|
front-ends.)
|
|
|
|
|
- Fixes in acquisition: Fixed mismatch between the config files and the
|
|
|
|
|
acquisition code in the specification of the IF. Fixed a bug in the length of
|
|
|
|
|
the FFT of local codes.
|
|
|
|
|
- Improvements in tracking sensitivity: Added configuration option to customize
|
|
|
|
|
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
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`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
|
2020-02-27 20:05:29 +00:00
|
|
|
|
C/A carrier PLL and code DLL with optional carrier-aid feedback. It is
|
2021-05-28 10:19:44 +00:00
|
|
|
|
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 coherent correlation period from 1 ms to 20 ms using telemetry symbol
|
2020-02-27 20:05:29 +00:00
|
|
|
|
synchronization.
|
|
|
|
|
- Increased resolution in CN0 estimator internal variables.
|
|
|
|
|
- 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
|
|
|
|
|
a few hours of usage. Now the receiver can work continually (tested for more
|
|
|
|
|
than one week, no known limit).
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New tracking block introduced: `GPS_L1_CA_DLL_PLL_Tracking_GPU` is a GPS L1
|
|
|
|
|
C/A carrier PLL and code DLL that uses the CUDA-compatible GPU to compute
|
|
|
|
|
carrier wipe off and correlation operations, alleviating the CPU load.
|
|
|
|
|
- Obsolete/buggy blocks removed: `GPS_L1_CA_DLL_FLL_PLL_Tracking`,
|
|
|
|
|
`GPS_L1_CA_DLL_PLL_Optim_Tracking`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- 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
|
|
|
|
|
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
|
|
|
|
|
Positioning fixes in real-time. The TCP port, Station ID, and rate of
|
2021-05-28 10:19:44 +00:00
|
|
|
|
MT1019/MT1045 and MSM can be configured. `GPS_L1_CA_PVT` serves MT1019 (GPS
|
2020-02-27 20:05:29 +00:00
|
|
|
|
Ephemeris) and MSM7 (MT1077, full GPS pseudoranges, phase ranges, phase range
|
2021-05-28 10:19:44 +00:00
|
|
|
|
rates and CNR - high resolution) messages, while `GALILEO_E1_PVT` serves
|
|
|
|
|
MT1045 (Galileo ephemeris) and MSM7 (MT1097, full Galileo pseudoranges, phase
|
|
|
|
|
ranges, phase range rates and CNR - high resolution).
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Added a GeoJSON printer. Basic (least-squares) position fixes can be now also
|
|
|
|
|
stored in this format, in addition to KML.
|
|
|
|
|
- Obsolete block removed: output filter.
|
|
|
|
|
- QA code migrated to the new asynchronous message passing system.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Improvements in documentation: update of `README.md` file, addition of
|
2020-02-27 20:05:29 +00:00
|
|
|
|
documentation for the VOLK_GNSSSDR library, updated links to new ICDs.
|
|
|
|
|
- Improvements in documentation: Satellite identification updated to current
|
|
|
|
|
constellation status.
|
|
|
|
|
- Updated and cleaner console output. Now Galileo satellites have the ‘E’
|
|
|
|
|
identifier in their PRN number.
|
|
|
|
|
- Several improvements in CMake scripts allow to build GNSS-SDR in Linux Debian
|
|
|
|
|
(Jessie, Stretch and Sid), Ubuntu (from 12.04 to 16.04), including amd64,
|
|
|
|
|
i386, armhf and arm64 architectures, and possibly in other GNU/Linux
|
|
|
|
|
distributions, as well as in Mac OS X 10.9 to 10.11. It also works well with
|
|
|
|
|
CMake 3.5 (some problems solved with VOLK_GNSSSDR as a sub-project).
|
|
|
|
|
- The software can link either against OpenSSL or against GnuTLS with openssl
|
|
|
|
|
extensions, whatever it is available. This allows buildings in distributions
|
|
|
|
|
such as Fedora or ArchLinux, while being compatible with binary distribution
|
|
|
|
|
through Debian packages.
|
|
|
|
|
- Fixed a number of defects detected by Coverity Scan.
|
|
|
|
|
- Some fixes required by Debian licensing and packaging system.
|
|
|
|
|
- Added a CGRAN (https://www.cgran.org/) manifest
|
|
|
|
|
- Lots of code cleaning and fixes of typos and small bugs.
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.6](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.6) - 2015-09-02
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
This release has several improvements and bug fixes:
|
|
|
|
|
|
|
|
|
|
- Added initial support to multi-band, multi-source configurations (multiple
|
|
|
|
|
signal sources and signal conditioners).
|
|
|
|
|
- Updated configuration files to new notation. Old and new configuration
|
|
|
|
|
notations still compatible.
|
|
|
|
|
- Added skeleton for mixed (multi-frequency and multi-system) observables block.
|
|
|
|
|
- Faster local carrier update (25% of improvement).
|
|
|
|
|
- Added initial support to GPS L2C real time tracking and decoding of CNAV
|
|
|
|
|
message with NSL STEREO v2, Fraunhofer’s Flexiband, and USRPx front-ends (the
|
|
|
|
|
latter requiring external clock).
|
|
|
|
|
- Added initial support to select the frontend clock reference source in UHD
|
|
|
|
|
signal source (i.e. internal or external clock reference).
|
|
|
|
|
- Added 2 bits complex file source for GNSS-SDR GSoC 2015 signal sampler
|
|
|
|
|
designed by Ajith Peter.
|
|
|
|
|
- Added a new rtl_tcp signal source, remote access to RTL2832U-based dongles via
|
|
|
|
|
TCP.
|
|
|
|
|
- Always build front-end-cal, a calibration tool for some DVB-T receivers based
|
|
|
|
|
on the Realtek's RTL2832U chipset.
|
|
|
|
|
- Fixed bug in UTC time computation for GPS signals.
|
|
|
|
|
- Updated satellite identification for GPS and Galileo.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- 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>`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Adding a filter for complex short streams.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Adding a fir_filter for `std::complex<signed char>` (aka `cbyte`). It converts
|
|
|
|
|
the data type to floats, filters, and converts back to cbyte.
|
|
|
|
|
- Added a resampler for `cbyte`s and `cshort`s.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- First working version of a GPS tracking block implementation using CUDA with
|
|
|
|
|
multi-GPU device support.
|
|
|
|
|
- Updating RINEX obs header when leap second is available.
|
|
|
|
|
- Updating RINEX nav file when IONO and UTC data are available.
|
|
|
|
|
- Include Signal Strength Indicator in RINEX observable files.
|
|
|
|
|
- Tests fixed.
|
|
|
|
|
- Fixed more than 200 code defects detected by Coverity Scan.
|
|
|
|
|
- Updated documentation.
|
|
|
|
|
- Updated documentation and CMake scripts for the GN3S v2 driver (Linux-only)
|
|
|
|
|
- Armadillo version automatically downloaded and built if it is not present in
|
|
|
|
|
the system is now 5.400.3.
|
|
|
|
|
- Updated old links from googlecode to new links at GitHub for Google Test,
|
|
|
|
|
gflags, glog and gperftools.
|
|
|
|
|
- gfortran is no longer a required package, but it is used if available.
|
|
|
|
|
- Added an option to remove logging.
|
|
|
|
|
- Enabled cross-compilation for ARM devices.
|
|
|
|
|
- Lots of code cleaning.
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.5](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.5) - 2015-01-13
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
This release has several improvements and bug fixes:
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Now GNSS-SDR can be installed on the system with the usual
|
|
|
|
|
`cmake ../ && make && sudo make install`.
|
|
|
|
|
- Added `volk_gnsssdr` library, a volk-like library implementing some specific
|
2020-02-27 20:05:29 +00:00
|
|
|
|
kernels and ensuring portable executables. It comes with a
|
2021-05-28 10:19:44 +00:00
|
|
|
|
`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
|
2020-02-27 20:05:29 +00:00
|
|
|
|
enable faster execution of the software receiver in upcoming versions.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- The former `rtlsdr_signal_source` has been replaced by a more general
|
|
|
|
|
`osmosdr_signal_source` compatible with all those front-ends accessible by the
|
2020-02-27 20:05:29 +00:00
|
|
|
|
OsmoSDR driver (bladeRF, hackRF, etc.) in addition to RTL-based dongles.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added manpages when binaries `gnss-sdr`, `volk_gnsssdr_profile` and
|
|
|
|
|
`front-end-cal` are installed.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Now GNSS-SDR can be built on i386, amd64, armhf, armel and arm64
|
|
|
|
|
architectures.
|
|
|
|
|
- Now GNSS-SDR builds on Ubuntu 14.04 and 14.10, Debian jessie/sid and Mac OS X
|
|
|
|
|
10.9 and 10.10.
|
|
|
|
|
- Improved detection of dependencies, specially when installed as .deb packages.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added a `check` target with some minimal tests.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Added support for interleaved I/Q byte-size sample files.
|
|
|
|
|
- Minor bug fixes, updated documentation and code cleaning.
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.4](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.4) - 2014-09-08
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
This release has several improvements and bug fixes:
|
|
|
|
|
|
|
|
|
|
- Added hybrid processing GPS L1 C/A and Galileo E1B, providing position fixes
|
|
|
|
|
make use of observables for both constellations.
|
|
|
|
|
- Added implementations of the QuickSync algorithm for GPS L1 C/A and Galileo E1
|
|
|
|
|
acquisition.
|
|
|
|
|
- Added processing blocks for Galileo E5a: Acquisition, Tracking,
|
|
|
|
|
Telemetry_Decoder (experimental)
|
|
|
|
|
- New configuration files allow to configure GPS and Galileo channels in the
|
|
|
|
|
same receiver.
|
|
|
|
|
- Added tropospheric corrections to GPS and Galileo PVT solution.
|
|
|
|
|
- Improved precision obtained by changing some variables from float to double.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- New building options: `ENABLE_GN3S`, `ENABLE_RTLSDR`, `ENABLE_ARRAY`, and
|
|
|
|
|
`ENABLE_OPENCL`.
|
2020-02-27 20:05:29 +00:00
|
|
|
|
- Improved documentation on how to enable optional drivers.
|
|
|
|
|
- Fixed bug in memory alignment that caused problems with high data rates.
|
2021-05-28 10:19:44 +00:00
|
|
|
|
- Added `ENABLE_GENERIC_ARCH`, an option to build the binary without detecting
|
|
|
|
|
the SIMD instruction set present in the compiling machine, so it can be
|
|
|
|
|
executed in other machines without those specific sets.
|
|
|
|
|
- Added `ENABLE_GPERFTOOLS`, which links the executable to tcmalloc and profiler
|
2020-02-27 20:05:29 +00:00
|
|
|
|
if Gperftools is available on the system.
|
|
|
|
|
- Added carrier phase, Doppler shift and signal strength observables to the
|
|
|
|
|
RINEX files. Static PPP solutions are available for GPS with RTKLIB via RINEX
|
|
|
|
|
files.
|
|
|
|
|
- The executable now produces RINEX files version 3.02 of Galileo Observables,
|
|
|
|
|
Navigation data, and mixed (GPS/Galileo) observables and nav data. RINEX 3.02
|
|
|
|
|
is the default version of RINEX files.
|
|
|
|
|
- Armadillo version updated to 4.400.2
|
|
|
|
|
- Armadillo now uses OpenBLAS instead of BLAS if the former is available on the
|
|
|
|
|
system.
|
|
|
|
|
- Some raw pointers have been changed to smart pointers.
|
|
|
|
|
- Minor bug fixes and code cleaning.
|
|
|
|
|
|
2020-03-01 12:18:59 +00:00
|
|
|
|
|
|
|
|
|
|
2021-05-28 10:19:44 +00:00
|
|
|
|
## [GNSS-SDR v0.0.3](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.3) - 2014-06-30
|
2020-02-27 20:05:29 +00:00
|
|
|
|
|
|
|
|
|
This release has several improvements and bug fixes, completing the transition
|
|
|
|
|
from Subversion to Git. The main changes are:
|
|
|
|
|
|
|
|
|
|
- Created some missing directories lost in the SVN to Git transition.
|
|
|
|
|
- New C++11-ized block factory, flow graph and tests, resulting in better memory
|
|
|
|
|
management and fewer segmentation faults. Several raw pointers converted to
|
|
|
|
|
smart pointers.
|
|
|
|
|
- Reorganization of assistance data input and output.
|
|
|
|
|
- Fixed memory leak when talking to SUPL servers.
|
|
|
|
|
- Improved retrieval of assistance data.
|
|
|
|
|
- Fixing an error in a constant value related to Galileo.
|
|
|
|
|
- Inform users if the temporal folder is not /tmp.
|
|
|
|
|
- Fixes and additions to the documentation.
|
|
|
|
|
- README in markdown language so it looks better in Git repositories.
|
|
|
|
|
- Fixed a bug that prevented the update of all shared map structures (ephemeris,
|
|
|
|
|
iono parameters, etc…).
|
|
|
|
|
- The configuration script now throws error if GCC is older than 4.7 or Boost is
|
|
|
|
|
older than 1.45
|
|
|
|
|
- Improved detection / downloading & building if missing of Gflags and Glog.
|
|
|
|
|
- Improved detection / downloading & building if missing of Armadillo and
|
|
|
|
|
related dependencies.
|
|
|
|
|
- Fixes many warnings that appeared when using CMake 3.0.
|
|
|
|
|
- Improved detection of GTEST_DIR variable.
|
|
|
|
|
- Include header files in libraries so IDEs such as Xcode can display them.
|
|
|
|
|
|
|
|
|
|
Enjoy it!
|