Skip to content

Commit

Permalink
Merge branch 'release0016' into gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
carlesfernandez committed Feb 15, 2022
2 parents 8cf62b0 + b1c1e89 commit 82cd8ff
Show file tree
Hide file tree
Showing 17 changed files with 328 additions and 82 deletions.
2 changes: 1 addition & 1 deletion _pages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ header:
url: "/build-and-install/"
caption:
teaser: /assets/images/logo-gnss-sdr.png
excerpt: 'An open source Global Navigation Satellite Systems software-defined receiver. <br /> <small>Current release: [v0.0.15](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.15)</small> <br /><br /> '
excerpt: 'An open-source Global Navigation Satellite Systems software-defined receiver. <br /> <small>Current release: [v0.0.16](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.16)</small> <br /><br /> '
feature_row:
- image_path: /assets/images/fix.png
alt: "Using the software-defined receiver"
Expand Down
2 changes: 1 addition & 1 deletion _posts/2017-03-07-configuration-options-building-time.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ package (`sudo apt-get install gnss-sdr`), the option `ENABLE_OSMOSDR` is set to
| `-DENABLE_OWN_GLOG` | `ON` / `OFF` | `OFF` | If set to `ON`, it forces to download, build and link a working version of [glog](https://github.com/google/glog) locally, even if it is already installed. If [GFlags](https://github.com/gflags/gflags) is not found, it will also download, build and link it. |
| `-DENABLE_LOG` | `ON` / `OFF` | `ON` | If set to `OFF`, it disables runtime logging with [glog](https://github.com/google/glog). This can be useful in storage-limited systems. GNSS-SDR will still produce outputs such as RINEX or KML files. |
| `-DENABLE_STRIP` | `ON` / `OFF` | `OFF` | If set to `ON`, it activates the generation of stripped binaries (without debugging information), smaller in size and potentially providing better performance than non-stripped counterparts. Only valid when using the `Release` build mode and `ENABLE_PACKAGING` is set to `OFF`, otherwise ignored. |
| `-DENABLE_OWN_CPUFEATURES` | `ON` / `OFF` | `ON` | This option defaults to `ON` when building `gnss-sdr`, but it defaults to `OFF` when building a stand-alone version of `volk_gnsssdr`. When this building option is set to `ON`, it forces the building of the local version of the [cpu_features](https://github.com/google/cpu_features) library, regardless of whether it is already installed or not. If set to `OFF`, CMake searches for the cpu_features files installed by VOLK and makes use of them. <span style="color: orange">NOTE: This option is only available from the `next` branch of the upstream repository, and it will be available in the next stable release.</span> |
| `-DENABLE_OWN_CPUFEATURES` | `ON` / `OFF` | `ON` | This option defaults to `ON` when building `gnss-sdr`, but it defaults to `OFF` when building a stand-alone version of `volk_gnsssdr`. When this building option is set to `ON`, it forces the building of the local version of the [cpu_features](https://github.com/google/cpu_features) library, regardless of whether it is already installed or not. If set to `OFF`, CMake searches for the cpu_features files installed by VOLK and makes use of them. |
|----------


Expand Down
70 changes: 70 additions & 0 deletions _posts/2022-02-09-gnss-sdr-v0016-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: "GNSS-SDR v0.0.16 released"
excerpt: "GNSS-SDR v0.0.16 has been released."
header:
teaser: /assets/images/logo-gnss-sdr-new-release.png
tags:
- news
author_profile: false
sidebar:
nav: "news"
last_modified_at: 2022-02-15T08:54:02+02:00
---

This release adds new features and fixes some bugs. Most relevant changes with respect to the former release are listed below:

## Improvements in [Availability]({{ "/design-forces/availability/" | relative_url }}):

- Added the Galileo E5b receiving chain. The software is now able to compute PVT solutions as a standalone Galileo E5b receiver.
- 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.
- 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.

## Improvements in [Interoperability]({{ "/design-forces/interoperability/" | relative_url }}):

- Fixed setting of the signal source gain if the AGC is enabled when using the AD9361 front-end.
- 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.
- 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).

## Improvements in [Maintainability]({{ "/design-forces/maintainability/" | relative_url }}):

- Rewritten Viterbi decoder for Galileo navigation messages. Encapsulated in a class instead of being implemented as free inline functions. This improves memory management and source code readability.
- Prefer initialization to assignment in constructors. This improves the readability of the code, could potentially increase performance, and allows for easier detection of unused data members (see the [CppCoreGuidelines](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md/#Rc-initialize). Added the `cppcoreguidelines-prefer-member-initializer` clang-tidy check to enforce this policy.
- Non-functional change: Fixed formatting defects detected by clang-format 13.0.
- Non-functional change: Simplified flow graph disconnection.
- Updated GSL implementation to v0.40.0. See the [gsl-lite release](https://github.com/gsl-lite/gsl-lite/releases/tag/v0.40.0)
- 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.

## Improvements in [Portability]({{ "/design-forces/portability/" | relative_url }}):

- Fixed building against the new API in the gr-iio component present in GNU Radio v3.10.X.Y.
- Fixed building against GNU Radio v3.10.X.Y, which does not support the C++20 standard.
- Fixed building against GNU Radio v3.10.X.Y, which replaced [log4cpp](http://log4cpp.sourceforge.net/) by the [spdlog](https://github.com/gabime/spdlog) and [fmt](https://github.com/fmtlib/fmt) libraries.
- Updated `cpu_features` library for improved processor detection.

## Improvements in [Reliability]({{ "/design-forces/reliability/" | relative_url }}):

- Fixed some potential buffer overflows.
- 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.

## Improvements in [Usability]({{ "/design-forces/usability/" | relative_url }}):

- Added a new monitor to extract the decoded data bits of the navigation messages and send them elsewhere via UDP. Activated by setting `NavDataMonitor.enable_monitor=true`, `NavDataMonitor.client_addresses=127.0.0.1` and `NavDataMonitor.port=1237` in the configuration file. Format described in the `nav_message.proto` file. A simple listener application written in C++ is included in `src/utils/nav-listener` as an example.
- Extract successful rate of the CRC check in the decoding of navigation messages. This can be enabled by setting `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.
- The `UHD_Signal_Source` learned to dump data in folders that do not exist, _e.g._, if `SignalSource.dump=true`, `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.
- Added a new configuration parameter `PVT.rtk_trace_level` that sets the logging verbosity level of the RTKLIB library.
- 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.
- 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.
- The `Fifo_Signal_Source` Signal Source implementation learned to handle the `ibyte` type.
- Added a `CITATION.cff` file.
- Updated version of the Contributor Covenant to version 2.1.


-----


As usual, compressed tarballs are available from [GitHub](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.16) and [Sourceforge](https://sourceforge.net/projects/gnss-sdr/).

<a href="https://doi.org/10.5281/zenodo.6090349" ><i class="ai ai-fw ai-doi ai-lg" aria-hidden="true"></i></a>In order to make GNSS-SDR more easily referenced, and to promote reproducible research, each software release gets a Digital Object Identifier provided by [Zenodo](https://zenodo.org/faq). The DOI for GNSS-SDR v0.0.16 is [10.5281/zenodo.6090349](https://doi.org/10.5281/zenodo.6090349).
{: .notice--info}
14 changes: 7 additions & 7 deletions _quick-start/04-my-first-position-fix.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "My first position fix"
permalink: /my-first-fix/
excerpt: "How to quickly get a position fix with GNSS-SDR."
last_modified_at: 2020-03-14T08:54:02+02:00
last_modified_at: 2022-02-09T08:54:02+02:00
header:
teaser: "/assets/images/gn3s_pvt_4_sats.jpg"
sidebar:
Expand Down Expand Up @@ -35,16 +35,16 @@ you should see something similar to:

```console
$ gnss-sdr --version
gnss-sdr version 0.0.15
gnss-sdr version 0.0.16
$
```
{: class="no-copy"}

Please check that your installed version is 0.0.15 (or something like
0.0.15.git-`branchname`-`githash` if you built the code from a source code
Please check that your installed version is 0.0.16 (or something like
0.0.16.git-`branchname`-`githash` if you built the code from a source code
snapshot). Older versions could not work for the example shown here. If you
installed GNSS-SDR by doing `sudo apt-get install gnss-sdr` and you got a
version earlier to 0.0.15, please do `sudo apt-get remove gnss-sdr` and [build
version earlier to 0.0.16, please do `sudo apt-get remove gnss-sdr` and [build
it from source]({{ "/build-and-install/#build" | relative_url }}).
{: .notice--warning}

Expand Down Expand Up @@ -126,7 +126,7 @@ Resampler.item_type=gr_complex

;######### CHANNELS GLOBAL CONFIG ############
Channels_1C.count=8
Channels.in_acquisition=1
Channels.in_acquisition=8
Channel.signal=1C

;######### ACQUISITION GLOBAL CONFIG ############
Expand Down Expand Up @@ -201,7 +201,7 @@ You should see something similar to:

```
$ gnss-sdr --config_file=./my-first-GNSS-SDR-receiver.conf
Initializing GNSS-SDR v0.0.15 ... Please wait.
Initializing GNSS-SDR v0.0.16 ... Please wait.
Logging will be done at "/tmp"
Use gnss-sdr --log_dir=/path/to/log to change that.
Processing file /home/your-username/work/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat, which contains 1600000000 [bytes]
Expand Down
4 changes: 2 additions & 2 deletions _quick-start/05-configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: "Configurations"
permalink: /conf/
excerpt: "How to configure GNSS-SDR in a variety of setups."
related: true
last_modified_at: 2020-08-13T13:54:02+02:00
last_modified_at: 2022-02-09T13:54:02+02:00
header:
teaser: "/assets/images/configuration.png"
sidebar:
Expand Down Expand Up @@ -347,7 +347,7 @@ You should see something similar to:

```console
$ gnss-sdr --config_file=./my_GPS_receiver.conf
Initializing GNSS-SDR v0.0.15 ... Please wait.
Initializing GNSS-SDR v0.0.16 ... Please wait.
Logging will be done at "/tmp"
Use gnss-sdr --log_dir=/path/to/log to change that.
-- X300 initialization sequence...
Expand Down
4 changes: 2 additions & 2 deletions _sp-blocks/03-signal-conditioner.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ The `Signal_Conditioner` implementation accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Signal_Conditioner` | Mandatory |
| _DataTypeAdapter_ | This implementation requires the configuration of a [Data Type Adapter]({{ "/docs/sp-blocks/data-type-adapter/" | relative_url }}) block. | Mandatory |
Expand Down Expand Up @@ -106,7 +106,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Pass_Through` | Mandatory |
| `item_type` | [<abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 16-bit integer. C++ name: lv_16sc_t (custom definition of std::complex<int16_t>)">`cshort`</abbr>]: Format of data samples. It defaults to <abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>. | Optional |
Expand Down
14 changes: 7 additions & 7 deletions _sp-blocks/04-data-type-adapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Byte_To_Short` | Mandatory |
|-------
Expand Down Expand Up @@ -115,7 +115,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Ibyte_To_Cbyte` | Mandatory |
| `inverted_spectrum` | [`true`, `false`]: If set to `true`, it performs a spectrum inversion. It defaults to `false`. | Optional |
Expand Down Expand Up @@ -147,7 +147,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Ibyte_To_Cshort` | Mandatory |
| `inverted_spectrum` | [`true`, `false`]: If set to `true`, it performs a spectrum inversion. It defaults to `false`. | Optional |
Expand Down Expand Up @@ -179,7 +179,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Ibyte_To_Complex` | Mandatory |
| `inverted_spectrum` | [`true`, `false`]: If set to `true`, it performs a spectrum inversion. It defaults to `false`. | Optional |
Expand Down Expand Up @@ -210,7 +210,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Ishort_To_Cshort` | Mandatory |
| `inverted_spectrum` | [`true`, `false`]: If set to `true`, it performs a spectrum inversion. It defaults to `false`. | Optional |
Expand Down Expand Up @@ -241,7 +241,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Ishort_To_Complex` | Mandatory |
| `inverted_spectrum` | [`true`, `false`]: If set to `true`, it performs a spectrum inversion. It defaults to `false`. | Optional |
Expand All @@ -265,7 +265,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Pass_Through` | Mandatory |
| `item_type` | [<abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 16-bit integer. C++ name: lv_16sc_t (custom definition of std::complex<int16_t>)">`cshort`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 8-bit integer. C++ name: lv_8sc_t (custom definition of std::complex<int8_t>)">`cbyte`</abbr>]: Format of data samples. It defaults to <abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>. | Optional |
Expand Down
12 changes: 6 additions & 6 deletions _sp-blocks/05-input-filter.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ This implementation accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Fir_Filter` | Mandatory |
| `input_item_type` | [<abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 8-bit integer. C++ name: lv_8sc_t (custom definition of std::complex<int8_t>)">`cbyte`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 16-bit integer. C++ name: lv_16sc_t (custom definition of std::complex<int16_t>)">`cshort`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>]: Input data type. This implementation only accepts streams of complex data types. | Mandatory |
Expand Down Expand Up @@ -210,7 +210,7 @@ This implementation accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Freq_Xlating_Fir_Filter` | Mandatory |
| `filter_type` | [`lowpass`, `bandpass`, `hilbert`, `differentiator`]: type of filter to be used after the frequency translation. | Mandatory |
Expand Down Expand Up @@ -345,7 +345,7 @@ The implementation of this block provides the following interface:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Pulse_Blanking_Filter` | Mandatory |
| `pfa` | Probability of false alarm. It defaults to $$ 0.04 $$ | Optional |
Expand Down Expand Up @@ -431,7 +431,7 @@ The implementation of this block provides the following interface:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Notch_Filter` | Mandatory |
| `p_c_factor` | Pole contraction factor of the filter, $$ k_a $$. It ranges from $$ 0 $$ to $$ 1 $$. The higher the value, the lower the filter bandwidth. It defaults to $$ 0.9 $$ | Optional |
Expand Down Expand Up @@ -477,7 +477,7 @@ The implementation of this block provides the following interface:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Notch_Filter_Lite` | Mandatory |
| `p_c_factor` | Pole contraction factor of the filter, $$ k_a $$. It ranges from $$ 0 $$ to $$ 1 $$. The higher the value, the narrower the filter bandwidth. It defaults to $$ 0.9 $$ | Optional |
Expand Down Expand Up @@ -515,7 +515,7 @@ It accepts the following parameters:

|----------
| **Parameter** | **Description** | **Required** |
|:-:|:--|:-:|
|:-:|:--|:-:|
|--------------
| `implementation` | `Pass_Through` | Mandatory |
| `item_type` | [<abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 16-bit integer. C++ name: lv_16sc_t (custom definition of std::complex<int16_t>)">`cshort`</abbr>, <abbr id="data-type" title="Complex samples with real and imaginary parts of type signed 8-bit integer. C++ name: lv_8sc_t (custom definition of std::complex<int8_t>)">`cbyte`</abbr>]: Format of data samples. It defaults to <abbr id="data-type" title="Complex samples with real and imaginary parts of type 32-bit floating point. C++ name: std::complex<float>">`gr_complex`</abbr>. | Optional |
Expand Down
Loading

0 comments on commit 82cd8ff

Please sign in to comment.