1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-11-15 06:14:58 +00:00

Merge branch 'next' into vtl

This commit is contained in:
kalmancito 2024-07-28 14:53:51 +02:00
commit 77d3b60b73
No known key found for this signature in database
GPG Key ID: EA0E1DEEC7BD8C8F
341 changed files with 7175 additions and 1237 deletions

View File

@ -120,7 +120,6 @@ Checks: '-*,
readability-uppercase-literal-suffix'
WarningsAsErrors: ''
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
FormatStyle: 'file'
CheckOptions:
- key: performance-unnecessary-copy-initialization.ExcludedContainerTypes

View File

@ -24,7 +24,7 @@ jobs:
uses: dieghernan/cff-validator@main
# Upload artifact in case of failure
- name: Update artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: citation-cff-errors

View File

@ -41,7 +41,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2.6.0
- uses: uraimo/run-on-arch-action@v2.7.1
name: Test in non-x86 container
continue-on-error: ${{ contains(fromJson('["ppc64le", "s390x"]'), matrix.arch) }}
id: test

View File

@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2020-2022 Carles Fernandez-Prades <carles.fernandez@cttc.es>
# SPDX-FileCopyrightText: 2020-2024 Carles Fernandez-Prades <carles.fernandez@cttc.es>
name: Simple CI
on:
@ -40,6 +40,9 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
run: |
brew update
@ -53,8 +56,8 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew install ninja hdf5 automake armadillo lapack libmatio \
gflags glog gnuradio log4cpp openssl pugixml protobuf
brew link --overwrite python@3.12
brew install ninja hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
pip3 install mako
- name: configure
run: cd build && cmake -GNinja ..
@ -69,6 +72,9 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
run: |
brew update
@ -82,9 +88,9 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio \
gflags glog gnuradio log4cpp openssl pugixml protobuf
pip3 install mako
brew link --overwrite python@3.12
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
pip3 install mako
- name: configure
run: cd build && cmake -GXcode ..
- name: build
@ -117,6 +123,9 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
run: |
brew update
@ -130,16 +139,16 @@ jobs:
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew install llvm pkg-config hdf5 armadillo lapack gflags glog gnuradio libmatio \
log4cpp openssl pugixml protobuf
brew link --overwrite python@3.12
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf llvm
pip3 install mako
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
ln -s $(brew --prefix llvm)/bin/run-clang-tidy /usr/local/bin
ln -s $(brew --prefix llvm)/bin/run-clang-tidy.py /usr/local/bin
- name: Prepare run
run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.13.0 core_monitor core_libs pvt_libs
run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.14.0 core_monitor core_libs pvt_libs
- name: run clang-tidy
run: cd build && run-clang-tidy -fix
run: cd build && /opt/homebrew/opt/llvm/bin/run-clang-tidy -fix
- name: check
run: |
git diff > clang_tidy.patch
@ -192,7 +201,7 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
@ -231,8 +240,13 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: pip3 install mako
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install mako
- name: configure
run: cd build && cmake ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
- name: build
@ -244,8 +258,13 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: pip3 install mako
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install mako
- name: configure
run: cd build && cmake -GXcode ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
- name: build

View File

@ -45,7 +45,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2.6.0
- uses: uraimo/run-on-arch-action@v2.7.1
name: Build in non-x86 container
# continue-on-error: ${{ contains(fromJson('["ppc64le", "s390x"]'), matrix.arch) }}
id: build

File diff suppressed because it is too large Load Diff

225
README.md
View File

@ -59,60 +59,59 @@ information about this open-source, software-defined GNSS receiver.
<summary><b>(click to expand)</b></summary>
<!-- MarkdownTOC -->
1. [Table of Contents](#table-of-contents)
2. [How to build GNSS-SDR](#how-to-build-gnss-sdr)
1. [GNU/Linux](#gnulinux)
1. [Alternative 1: Install dependencies using software packages](#alternative-1-install-dependencies-using-software-packages)
1. [Debian / Ubuntu](#debian--ubuntu)
2. [AlmaLinux](#almalinux)
3. [Arch Linux](#arch-linux)
4. [CentOS](#centos)
5. [Fedora](#fedora)
6. [openSUSE](#opensuse)
7. [Rocky Linux](#rocky-linux)
2. [Alternative 2: Install dependencies using PyBOMBS](#alternative-2-install-dependencies-using-pybombs)
3. [Manual installation of other required dependencies](#manual-installation-of-other-required-dependencies)
1. [Install Armadillo, a C++ linear algebra library](#install-armadillo-a-c-linear-algebra-library)
2. [Install Gflags, a commandline flags processing module for C++](#install-gflags-a-commandline-flags-processing-module-for-c)
3. [Install Glog, a library that implements application-level logging](#install-glog-a-library-that-implements-application-level-logging)
4. [Install the GnuTLS or OpenSSL libraries](#install-the-gnutls-or-openssl-libraries)
5. [Install Matio, MATLAB MAT file I/O library](#install-matio-matlab-mat-file-io-library)
6. [Install Protocol Buffers, a portable mechanism for serialization of structured data](#install-protocol-buffers-a-portable-mechanism-for-serialization-of-structured-data)
7. [Install Pugixml, a light-weight C++ XML processing library](#install-pugixml-a-light-weight-c-xml-processing-library)
8. [Download GoogleTest](#download-googletest)
4. [Clone GNSS-SDR's Git repository](#clone-gnss-sdrs-git-repository)
5. [Build and install GNSS-SDR](#build-and-install-gnss-sdr)
1. [Build OSMOSDR support (OPTIONAL)](#build-osmosdr-support-optional)
2. [Build FMCOMMS2 based SDR Hardware support (OPTIONAL)](#build-fmcomms2-based-sdr-hardware-support-optional)
3. [Build OpenCL support (OPTIONAL)](#build-opencl-support-optional)
4. [Build CUDA support (OPTIONAL)](#build-cuda-support-optional)
2. [macOS](#macos)
1. [Macports](#macports)
2. [Homebrew](#homebrew)
3. [Other package managers](#other-package-managers)
4. [Build GNSS-SDR](#build-gnss-sdr)
3. [Other builds](#other-builds)
3. [Updating GNSS-SDR](#updating-gnss-sdr)
4. [Getting started](#getting-started)
5. [Using GNSS-SDR](#using-gnss-sdr)
1. [Control plane](#control-plane)
1. [Configuration](#configuration)
2. [GNSS block factory](#gnss-block-factory)
2. [Signal Processing plane](#signal-processing-plane)
1. [Signal Source](#signal-source)
2. [Signal Conditioner](#signal-conditioner)
1. [Data type adapter](#data-type-adapter)
2. [Input filter](#input-filter)
3. [Resampler](#resampler)
3. [Channel](#channel)
1. [Acquisition](#acquisition)
2. [Tracking](#tracking)
3. [Decoding of the navigation message](#decoding-of-the-navigation-message)
4. [Observables](#observables)
5. [Computation of Position, Velocity, and Time](#computation-of-position-velocity-and-time)
6. [About the software license](#about-the-software-license)
7. [Publications and Credits](#publications-and-credits)
8. [Ok, now what?](#ok-now-what)
- [Table of Contents](#table-of-contents)
- [How to build GNSS-SDR](#how-to-build-gnss-sdr)
- [GNU/Linux](#gnulinux)
- [Alternative 1: Install dependencies using software packages](#alternative-1-install-dependencies-using-software-packages)
- [Debian / Ubuntu](#debian--ubuntu)
- [AlmaLinux](#almalinux)
- [Arch Linux](#arch-linux)
- [Fedora](#fedora)
- [openSUSE](#opensuse)
- [Rocky Linux](#rocky-linux)
- [Alternative 2: Install dependencies using PyBOMBS](#alternative-2-install-dependencies-using-pybombs)
- [Manual installation of other required dependencies](#manual-installation-of-other-required-dependencies)
- [Install Armadillo, a C++ linear algebra library](#install-armadillo-a-c-linear-algebra-library)
- [Install Gflags, a commandline flags processing module for C++](#install-gflags-a-commandline-flags-processing-module-for-c)
- [Install Glog, a library that implements application-level logging](#install-glog-a-library-that-implements-application-level-logging)
- [Install the GnuTLS or OpenSSL libraries](#install-the-gnutls-or-openssl-libraries)
- [Install Matio, MATLAB MAT file I/O library](#install-matio-matlab-mat-file-io-library)
- [Install Protocol Buffers, a portable mechanism for serialization of structured data](#install-protocol-buffers-a-portable-mechanism-for-serialization-of-structured-data)
- [Install Pugixml, a light-weight C++ XML processing library](#install-pugixml-a-light-weight-c-xml-processing-library)
- [Download GoogleTest](#download-googletest)
- [Clone GNSS-SDR's Git repository](#clone-gnss-sdrs-git-repository)
- [Build and install GNSS-SDR](#build-and-install-gnss-sdr)
- [Build OSMOSDR support (OPTIONAL)](#build-osmosdr-support-optional)
- [Build FMCOMMS2 based SDR Hardware support (OPTIONAL)](#build-fmcomms2-based-sdr-hardware-support-optional)
- [Build OpenCL support (OPTIONAL)](#build-opencl-support-optional)
- [Build CUDA support (OPTIONAL)](#build-cuda-support-optional)
- [macOS](#macos)
- [Macports](#macports)
- [Homebrew](#homebrew)
- [Other package managers](#other-package-managers)
- [Build GNSS-SDR](#build-gnss-sdr)
- [Other builds](#other-builds)
- [Updating GNSS-SDR](#updating-gnss-sdr)
- [Getting started](#getting-started)
- [Using GNSS-SDR](#using-gnss-sdr)
- [Control plane](#control-plane)
- [Configuration](#configuration)
- [GNSS block factory](#gnss-block-factory)
- [Signal Processing plane](#signal-processing-plane)
- [Signal Source](#signal-source)
- [Signal Conditioner](#signal-conditioner)
- [Data type adapter](#data-type-adapter)
- [Input filter](#input-filter)
- [Resampler](#resampler)
- [Channel](#channel)
- [Acquisition](#acquisition)
- [Tracking](#tracking)
- [Decoding of the navigation message](#decoding-of-the-navigation-message)
- [Observables](#observables)
- [Computation of Position, Velocity, and Time](#computation-of-position-velocity-and-time)
- [About the software license](#about-the-software-license)
- [Publications and Credits](#publications-and-credits)
- [Ok, now what?](#ok-now-what)
<!-- /MarkdownTOC -->
</details>
@ -126,7 +125,7 @@ This section describes how to set up the compilation environment in GNU/Linux or
## GNU/Linux
- Tested distributions: Ubuntu 14.04 LTS and above; Debian 9.0 "stretch" and
above; Arch Linux; CentOS 7; Fedora 26 and above; OpenSUSE 42.3 and above.
above; Arch Linux; Fedora 26 and above; OpenSUSE 42.3 and above.
- Supported microprocessor architectures:
- i386: Intel x86 instruction set (32-bit microprocessors).
- amd64: also known as x86-64, the 64-bit version of the x86 instruction set,
@ -222,28 +221,9 @@ Once you have installed these packages, you can jump directly to
If you are using Arch Linux:
```
$ pacman -S gcc make cmake pkgconf git boost boost-libs log4cpp libvolk gnuradio \
blas lapack gflags google-glog openssl pugixml libmatio protobuf \
python-mako libpcap gtest
```
Once you have installed these packages, you can jump directly to
[download the source code and build GNSS-SDR](#clone-gnss-sdrs-git-repository).
#### CentOS
If you are using CentOS 7, you can install the dependencies via Extra Packages
for Enterprise Linux ([EPEL](https://fedoraproject.org/wiki/EPEL)):
```
$ sudo yum install wget
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -Uvh epel-release-latest-7.noarch.rpm
$ sudo yum install make automake gcc gcc-c++ kernel-devel libtool \
hdf5-devel cmake git boost-devel boost-date-time boost-system \
boost-filesystem boost-thread boost-chrono boost-serialization \
log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel \
armadillo-devel openssl-devel libpcap-devel python-mako python-six pugixml-devel
$ pacman -S gcc make cmake pkgconf git boost boost-libs libvolk gnuradio \
blas lapack hdf5 openssl pugixml libmatio protobuf libpcap gtest \
python-mako
```
Once you have installed these packages, you can jump directly to
@ -278,7 +258,7 @@ $ zypper install cmake git gcc-c++ boost-devel libboost_atomic-devel \
libboost_system-devel libboost_filesystem-devel libboost_chrono-devel \
libboost_thread-devel libboost_serialization-devel log4cpp-devel \
gnuradio-devel pugixml-devel libpcap-devel armadillo-devel libtool \
automake hdf5-devel openssl-devel python3-Mako protobuf-devel
automake hdf5-devel openssl-devel python3-Mako libmatio-devel
```
If you are using openSUSE Tumbleweed:
@ -396,16 +376,16 @@ or manually as explained below, and then please follow instructions on how to
### Manual installation of other required dependencies
#### Install [Armadillo](http://arma.sourceforge.net/ "Armadillo's Homepage"), a C++ linear algebra library
#### Install [Armadillo](https://arma.sourceforge.net/ "Armadillo's Homepage"), a C++ linear algebra library
```
$ sudo apt-get install libblas-dev liblapack-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install lapack-devel blas-devel # For Fedora/CentOS/RHEL
$ sudo yum install lapack-devel blas-devel # For Fedora/RHEL
$ sudo zypper install lapack-devel blas-devel # For OpenSUSE
$ sudo pacman -S blas lapack # For Arch Linux
$ wget https://sourceforge.net/projects/arma/files/armadillo-12.0.1.tar.xz
$ tar xvfz armadillo-12.0.1.tar.xz
$ cd armadillo-12.0.1
$ wget https://sourceforge.net/projects/arma/files/armadillo-14.0.0.tar.xz
$ tar xvfz armadillo-14.0.0.tar.xz
$ cd armadillo-14.0.0
$ cmake .
$ make
$ sudo make install
@ -430,12 +410,16 @@ $ sudo make install
$ sudo ldconfig
```
Please note that GFlags is replaced by the
[Abseil Flags Library](https://abseil.io/docs/cpp/guides/flags) if Abseil >=
v20240116 is available in your system.
#### Install [Glog](https://github.com/google/glog "Glog's Homepage"), a library that implements application-level logging
```
$ wget https://github.com/google/glog/archive/v0.6.0.tar.gz
$ tar xvfz v0.6.0.tar.gz
$ cd glog-0.6.0
$ wget https://github.com/google/glog/archive/v0.7.1.tar.gz
$ tar xvfz v0.7.1.tar.gz
$ cd glog-0.7.1
$ mkdir build && cd build
$ cmake ..
$ make
@ -443,11 +427,15 @@ $ sudo make install
$ sudo ldconfig
```
Please note that Glog is replaced by the
[Abseil Logging Library](https://abseil.io/docs/cpp/guides/logging) if Abseil >=
v20240116 is available in your system.
#### Install the GnuTLS or OpenSSL libraries
```
$ sudo apt-get install libgnutls-openssl-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install openssl-devel # For Fedora/CentOS/RHEL
$ sudo yum install openssl-devel # For Fedora/RHEL
$ sudo zypper install openssl-devel # For OpenSUSE
$ sudo pacman -S openssl # For Arch Linux
```
@ -460,16 +448,16 @@ GNSS-SDR can also work well with
#### Install [Matio](https://github.com/tbeu/matio "Matio's Homepage"), MATLAB MAT file I/O library
```
$ wget https://github.com/tbeu/matio/releases/download/v1.5.23/matio-1.5.23.tar.gz
$ tar xvfz matio-1.5.23.tar.gz
$ cd matio-1.5.23
$ wget https://github.com/tbeu/matio/releases/download/v1.5.26/matio-1.5.27.tar.gz
$ tar xvfz matio-1.5.27.tar.gz
$ cd matio-1.5.27
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
```
#### Install [Protocol Buffers](https://developers.google.com/protocol-buffers/ "Protocol Buffers' Homepage"), a portable mechanism for serialization of structured data
#### Install [Protocol Buffers](https://protobuf.dev/ "Protocol Buffers' Homepage"), a portable mechanism for serialization of structured data
GNSS-SDR requires Protocol Buffers v3.0.0 or later. If the packages that come
with your distribution are older than that (_e.g._, Ubuntu 16.04 Xenial came
@ -489,9 +477,9 @@ For more options, please check the
#### Install [Pugixml](https://pugixml.org/ "Pugixml's Homepage"), a light-weight C++ XML processing library
```
$ wget https://github.com/zeux/pugixml/releases/download/v1.13/pugixml-1.13.tar.gz
$ tar xvfz pugixml-1.13.tar.gz
$ cd pugixml-1.13
$ wget https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz
$ tar xvfz pugixml-1.14.tar.gz
$ cd pugixml-1.14
$ mkdir build && cd build
$ cmake ..
$ make
@ -502,8 +490,8 @@ $ sudo ldconfig
#### Download [GoogleTest](https://github.com/google/googletest "Googletest Homepage")
```
$ wget https://github.com/google/googletest/archive/refs/tags/v1.13.0.zip
$ unzip v1.13.0.zip
$ wget https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
$ unzip v1.14.0.zip
```
Please **DO NOT build or install** Google Test. Every user needs to compile
@ -527,10 +515,10 @@ downloaded resides. Just type in your terminal (or add it to your
`$HOME/.bashrc` file for a permanent solution) the following line:
```
export GTEST_DIR=/home/username/googletest-1.13.0
export GTEST_DIR=/home/username/googletest-1.14.0
```
changing `/home/username/googletest-1.13.0` by the actual path where you
changing `/home/username/googletest-1.14.0` by the actual path where you
unpacked Google Test. If the CMake script does not find that folder, or the
environment variable is not defined, or the source code is not installed by a
package, then it will download a fresh copy of the Google Test source code and
@ -832,7 +820,7 @@ $ sudo port selfupdate
$ sudo port upgrade outdated
$ sudo port install armadillo cmake pkgconfig protobuf3-cpp pugixml gnutls
$ sudo port install gnuradio +uhd +grc +zeromq
$ sudo port install boost matio libad9361-iio libiio google-glog +gflags
$ sudo port install boost matio libad9361-iio libiio
$ sudo port install py311-mako
$ sudo port install doxygen +docs
```
@ -867,22 +855,14 @@ $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/inst
The script explains what it will do, and then it pauses before doing it. There
are more installation options [here](https://docs.brew.sh/Installation.html).
Install pip3:
```
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ sudo python3 get-pip.py
```
Install the required dependencies:
```
$ brew update && brew upgrade
$ brew install armadillo cmake hdf5 gflags glog gnuradio libmatio log4cpp \
openssl pkg-config protobuf pugixml
$ pip3 install mako
$ brew install armadillo cmake hdf5 gnuradio libmatio openssl pkg-config protobuf pugixml
$ brew install --cask mactex # when completed, restart Terminal
$ brew install graphviz doxygen
¢ pip3 install mako
```
For macOS versions older than Sonoma, you will also need LAPACK:
@ -894,7 +874,7 @@ $ brew install lapack
### Other package managers
GNU Radio and other dependencies can also be installed using other package
managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink").
managers than Macports, such as [Fink](https://www.finkproject.org/ "Fink").
Since the version of Python that ships with OS X is great for learning but it is
not good for development, you could have another Python executable in a
non-standard location. If that is the case, you need to inform GNSS-SDR's
@ -984,7 +964,7 @@ do so.
</p>
- **GNSS-SDR in embedded platforms**: we provide a Software Development Kit
(SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for
(SDK) based on [OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) for
cross-compiling GNSS-SDR in your desktop computer and for producing
executables that can run in embedded platforms, such as Xilinx's Zynq and
ZynqMP architectures, Raspberry Pi, and many others. Please check
@ -1999,11 +1979,11 @@ PVT.rtcm_MT1077_rate_ms=1000
Notation (JSON) supported by numerous mapping and GIS software packages,
including [OpenLayers](https://openlayers.org),
[Leaflet](https://leafletjs.com), [MapServer](https://mapserver.org/),
[GeoServer](http://geoserver.org), [GeoDjango](https://www.djangoproject.com),
[GDAL](https://gdal.org/), and [CartoDB](https://cartodb.com). It is also
possible to use GeoJSON with [PostGIS](https://postgis.net/) and
[Mapnik](https://mapnik.org/), both of which handle the format via the GDAL
OGR conversion library. The
[GeoServer](https://geoserver.org/),
[GeoDjango](https://www.djangoproject.com), [GDAL](https://gdal.org/), and
[CartoDB](https://cartodb.com). It is also possible to use GeoJSON with
[PostGIS](https://postgis.net/) and [Mapnik](https://mapnik.org/), both of
which handle the format via the GDAL OGR conversion library. The
[Google Maps Javascript API](https://developers.google.com/maps/documentation/javascript/)
v3 directly supports the
[integration of GeoJSON data layers](https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple),
@ -2016,8 +1996,9 @@ PVT.rtcm_MT1077_rate_ms=1000
(OGC KML), and it is maintained by the Open Geospatial Consortium, Inc. (OGC).
KML files can be displayed in geobrowsers such as
[Google Earth](https://www.google.com/earth/),
[Marble](https://marble.kde.org), [osgEarth](http://osgearth.org), or used
with the [NASA World Wind SDK for Java](https://worldwind.arc.nasa.gov/java/).
[Marble](https://marble.kde.org),
[osgEarth](https://github.com/gwaldron/osgearth), or used with the
[NASA World Wind SDK for Java](https://worldwind.arc.nasa.gov/java/).
- **GPX** (the GPS Exchange Format) is a lightweight XML data format for the
interchange of GPS data (waypoints, routes, and tracks) between applications
@ -2052,9 +2033,11 @@ PVT.rtcm_MT1077_rate_ms=1000
(usually with other data unknown to the original receiver, such as better
models of the atmospheric conditions at time of measurement). RINEX files can
be used by software packages such as
[GNSSTK](https://github.com/SGL-UT/gnsstk), [RTKLIB](http://www.rtklib.com/),
and [gLAB](https://gage.upc.edu/gLAB/). GNSS-SDR by default generates RINEX
version [3.02](ftp://igs.org/pub/data/format/rinex302.pdf). If
[GNSSTK](https://github.com/SGL-UT/gnsstk), [RTKLIB](https://www.rtklib.com/),
and
[gLAB](https://gage.upc.edu/en/learning-materials/software-tools/glab-tool-suite).
GNSS-SDR by default generates RINEX version
[3.02](ftp://igs.org/pub/data/format/rinex302.pdf). If
[2.11](ftp://igs.org/pub/data/format/rinex211.txt) is needed, it can be
requested through the `rinex_version` parameter in the configuration file:

View File

@ -4,10 +4,14 @@
# SPDX-FileCopyrightText: 2011-2020 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ARCHITECTURE_STRING "(64 bits)")
if(CMAKE_VERSION VERSION_LESS 3.19)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ARCHITECTURE_STRING "(64 bits)")
else()
set(ARCHITECTURE_STRING "(32 bits)")
endif()
else()
set(ARCHITECTURE_STRING "(32 bits)")
set(ARCHITECTURE_STRING "(${CMAKE_HOST_SYSTEM_PROCESSOR})")
endif()
if(EXISTS "/etc/lsb-release")

View File

@ -34,6 +34,7 @@ find_library(CPUFEATURES_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -78,6 +78,7 @@ else()
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -55,6 +55,7 @@ find_library(GFORTRAN NAMES gfortran
/usr/lib/gcc/sh4-linux-gnu
/usr/lib/gcc/i686-redhat-linux # Fedora
/usr/lib64/gcc/x86_64-redhat-linux
/usr/lib/gcc/x86_64-redhat-linux
/usr/lib/gcc/armv7hl-redhat-linux-gnueabi
/usr/lib/gcc/aarch64-redhat-linux
/usr/lib/gcc/ppc64le-redhat-linux
@ -89,6 +90,7 @@ find_library(GFORTRAN NAMES gfortran
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/usr/local/lib/i386

View File

@ -71,6 +71,7 @@ macro(_FIND_GLOG_LIBRARIES _var)
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@ -178,3 +179,8 @@ if(GLOG_FOUND AND NOT TARGET Glog::glog)
INTERFACE_LINK_LIBRARIES "${GLOG_LIBRARIES}"
)
endif()
# Fix for glog 0.7.0
if(EXISTS ${GLOG_INCLUDE_DIRS}/export.h)
set_target_properties(Glog::glog PROPERTIES INTERFACE_COMPILE_DEFINITIONS "GLOG_USE_GLOG_EXPORT")
endif()

View File

@ -131,6 +131,7 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -96,6 +96,7 @@ find_library(IIO_LIBRARIES
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -96,6 +96,7 @@ find_library(GRLIMESDR_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -96,6 +96,7 @@ find_library(GROSMOSDR_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/alpha-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -75,6 +75,7 @@ find_library(LIBAD9361_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -77,6 +77,7 @@ find_library(
/usr/lib/x86_64-linux-gnux32
/usr/lib/sh4-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -121,7 +121,7 @@ include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LOG4CPP DEFAULT_MSG LOG4CPP_INCLUDE_DIRS LOG4CPP_LIBRARIES)
set_package_properties(LOG4CPP PROPERTIES
URL "http://log4cpp.sourceforge.net/"
URL "https://log4cpp.sourceforge.net/"
)
if(LOG4CPP_FOUND AND PC_LOG4CPP_VERSION)

View File

@ -108,6 +108,7 @@ find_library(MATIO_LIBRARY
/usr/lib/x86_64-linux-gnux32
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -80,6 +80,8 @@ find_path(ORC_LIBRARY_DIR
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@ -106,6 +108,8 @@ find_library(ORC_LIB orc-0.4
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib
@ -134,6 +138,8 @@ find_library(ORC_LIBRARY_STATIC ${CMAKE_STATIC_LIBRARY_PREFIX}orc-0.4${CMAKE_STA
/usr/lib/powerpc64le-linux-gnu
/usr/lib/hppa-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -6,7 +6,7 @@
# - Find pcap
# Find the PCAP includes and library
# http://www.tcpdump.org/
# https://www.tcpdump.org/
#
# The environment variable PCAPDIR allows to specify where to find
# libpcap in non standard location.
@ -105,6 +105,7 @@ else()
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu

View File

@ -88,6 +88,7 @@ find_library(PUGIXML_LIBRARY
/usr/lib/sparc64-linux-gnu
/usr/lib/x86_64-linux-gnux32
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/lib/x86_64-kfreebsd-gnu
/usr/lib/i386-kfreebsd-gnu
/usr/local/lib

View File

@ -38,6 +38,7 @@ set(TELEORBIT_ROOT_USER_DEFINED
find_path(TELEORBIT_INCLUDE_DIRS
NAMES teleorbit/api.h
HINTS ${PC_TELEORBIT_INCLUDEDIR}
PATH_SUFFIXES gnuradio
PATHS ${TELEORBIT_ROOT_USER_DEFINED}/include
/usr/include
/usr/local/include

View File

@ -86,6 +86,7 @@ find_library(UHD_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -83,6 +83,7 @@ find_library(VOLK_LIBRARIES
/usr/lib/x86_64-linux-gnux32
/usr/lib/alpha-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/local/lib
/usr/local/lib64
/opt/local/lib

View File

@ -46,6 +46,7 @@ find_library(ZEROMQ_LIBRARIES
/usr/lib/powerpc64-linux-gnu
/usr/lib/powerpc64le-linux-gnu
/usr/lib/riscv64-linux-gnu
/usr/lib/loongarch64-linux-gnu
/usr/lib/s390x-linux-gnu
/usr/lib/sh4-linux-gnu
/usr/lib/sparc64-linux-gnu

View File

@ -0,0 +1,23 @@
# GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
# This file is part of GNSS-SDR.
#
# SPDX-FileCopyrightText: 2011-2024 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
if(DEFINED __INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE)
return()
endif()
set(__INCLUDED_XCODE_REMOVE_WARNING_DUPLICATES_CMAKE TRUE)
function(xcode_remove_warning_duplicates target)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0")
# A bug in Xcode 15 adds duplicate flags to the linker. In addition, the
# `-warn_duplicate_libraries` is now enabled by default which may result
# in several 'duplicate libraries warning'.
# - https://gitlab.kitware.com/cmake/cmake/-/issues/25297 and
# - https://indiestack.com/2023/10/xcode-15-duplicate-library-linker-warnings/
target_link_options(${target} PUBLIC "LINKER:-no_warn_duplicate_libraries")
endif()
endif()
endfunction()

View File

@ -0,0 +1,281 @@
; This is a GNSS-SDR configuration file
; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
; SPDX-License-Identifier: GPL-3.0-or-later
; SPDX-FileCopyrightText: (C) 2010-2020 (see AUTHORS file for a list of contributors)
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
GNSS-SDR.internal_fs_sps=8000000
GNSS-SDR.Beidou_banned_prns=56,57,58
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Osmosdr_Signal_Source
SignalSource.item_type=gr_complex
SignalSource.sampling_frequency=56000000
SignalSource.freq=1584000000
SignalSource.osmosdr_args=uhd,type=b200,num_recv_frames=256
SignalSource.gain=50
SignalSource.antenna=TX/RX
SignalSource.if_bw=56000000
SignalSource.AGC_enabled=false
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.RF_channels=3
SignalSource.enable_throttle_control=false
SignalSource.dump=false
;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner0.implementation=Signal_Conditioner
SignalConditioner1.implementation=Signal_Conditioner
SignalConditioner2.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter2.implementation=Pass_Through
;######### INPUT_FILTER CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.decimation_factor=7
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
InputFilter0.filter_type=lowpass
InputFilter0.bw=7000000
InputFilter0.tw=500000
InputFilter0.IF=-22902000
InputFilter0.sampling_frequency=56000000
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
;######### INPUT_FILTER CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.decimation_factor=7
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
InputFilter1.filter_type=lowpass
InputFilter1.bw=7000000
InputFilter1.tw=500000
InputFilter1.IF=-8580000
InputFilter1.sampling_frequency=56000000
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
;######### INPUT_FILTER CONFIG ############
InputFilter2.implementation=Freq_Xlating_Fir_Filter
InputFilter2.decimation_factor=7
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
InputFilter2.taps_item_type=float
InputFilter2.filter_type=lowpass
InputFilter2.bw=7000000
InputFilter2.tw=500000
InputFilter2.IF=18000000
InputFilter2.sampling_frequency=56000000
InputFilter2.dump=false
InputFilter2.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
Resampler0.implementation=Pass_Through
Resampler1.implementation=Pass_Through
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
Channels_1B.count=10
Channels_1C.count=10
Channels_B1.count=14
Channels_1G.count=8
Channels_1B.RF_channel_ID=1
Channels_1C.RF_channel_ID=1
Channels_B1.RF_channel_ID=0
Channels_1G.RF_channel_ID=2
Channels.in_acquisition=2
;######### ACQUISITION BEIDOU CONFIG ############
Acquisition_B1.implementation=BEIDOU_B1I_PCPS_Acquisition
Acquisition_B1.item_type=gr_complex
Acquisition_B1.coherent_integration_time_ms=2
;Acquisition_B1.max_dwells=2
;Acquisition_B1.pfa=0.02
Acquisition_B1.pfa=0.000002
Acquisition_B1.doppler_max=6000
Acquisition_B1.doppler_step=100
Acquisition_B1.dump=false
Acquisition_B1.dump_filename=./bds_acq
;Acquisition_B1.blocking=true
Acquisition_B1.bit_transition_flag = false;
;######### ACQUISITION GPS CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.pfa=0.015
Acquisition_1C.doppler_max=6000
Acquisition_1C.doppler_step=200
Acquisition_1C.max_dwells=4
;Acquisition_1C.blocking=true
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat
;######### ACQUISITION GALILEO CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.coherent_integration_time_ms=2
;Acquisition_1B.pfa=0.000008
Acquisition_1B.pfa=0.025
Acquisition_1B.doppler_max=6000
Acquisition_1B.doppler_step=200
Acquisition_1B.max_dwells=4
;Acquisition_1B.repeat_satellite=true
Acquisition_1B.cboc=true
;Acquisition_1B.blocking=true
Acquisition_1B.dump=false
Acquisition_1B.dump_filename=./acq_dump.dat
;######### ACQUISITION GLONASS CONFIG ############
Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.item_type=gr_complex
Acquisition_1G.coherent_integration_time_ms=1
Acquisition_1G.max_dwells=4
Acquisition_1G.pfa=0.02
Acquisition_1G.doppler_max=6000
Acquisition_1G.doppler_step=100
Acquisition_1G.dump=false
Acquisition_1G.dump_filename=./G1_acq
;######### TRACKING BEIDOU CONFIG ############
Tracking_B1.implementation=BEIDOU_B1I_DLL_PLL_Tracking
Tracking_B1.item_type=gr_complex
Tracking_B1.extend_correlation_symbols=10
Tracking_B1.pll_bw_hz=50.0
Tracking_B1.dll_bw_hz=2.00
Tracking_B1.pll_bw_narrow_hz=15.0
Tracking_B1.dll_bw_narrow_hz=1.50
;Tracking_B1.cn0_min=20
;Tracking_B1.fll_bw_hz=20
;Tracking_B1.enable_fll_pull_in=true
;Tracking_B1.enable_fll_steady_state=false
Tracking_B1.dump=false
Tracking_B1.dump_filename=./epl_tracking_ch_
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.extend_correlation_symbols=10
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.early_late_space_narrow_chips=0.15
Tracking_1C.pll_bw_hz=30.0
Tracking_1C.dll_bw_hz=2.0
Tracking_1C.pll_bw_narrow_hz=10.0
Tracking_1C.dll_bw_narrow_hz=1.50
Tracking_1C.fll_bw_hz=10
Tracking_1C.enable_fll_pull_in=true
Tracking_1C.enable_fll_steady_state=false
Tracking_1C.dump=false
Tracking_1C.dump_filename=tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.extend_correlation_symbols=4
Tracking_1B.item_type=gr_complex
Tracking_1B.pll_bw_hz=30.0
Tracking_1B.dll_bw_hz=2.0
Tracking_1B.pll_bw_narrow_hz=20.0
Tracking_1B.dll_bw_narrow_hz=1.50
Tracking_1B.track_pilot=true
Tracking_1B.enable_fll_pull_in=true;
Tracking_1B.enable_fll_steady_state=false
Tracking_1B.fll_bw_hz=20
;######### TRACKING GLONASS CONFIG ############
Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1G.item_type=gr_complex
Tracking_1G.pll_bw_hz=40
Tracking_1G.dll_bw_hz=2.5
Tracking_1G.extend_correlation_ms=1
Tracking_1G.pll_bw_narrow_hz=20
Tracking_1G.dll_bw_narrow_hz=1.5
Tracking_1G.dump=false
Tracking_1G.dump_filename=./epl_tracking_ch_
;######### TELEMETRY DECODER BEIDOU CONFIG ############
TelemetryDecoder_B1.implementation=BEIDOU_B1I_Telemetry_Decoder
TelemetryDecoder_B1.dump=false
;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO E1B CONFIG ############
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### TELEMETRY DECODER GLONASS CONFIG ############
TelemetryDecoder_1G.implementation=GLONASS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1G.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
PVT.threshold_reject_GDOP=100
PVT.elevation_mask=3
PVT.raim_fde=1
PVT.positioning_mode=Single ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.iono_model=Broadcast ; options: OFF, Broadcast, SBAS, Iono-Free-LC, Estimate_STEC, IONEX
PVT.trop_model=Saastamoinen ; options: OFF, Saastamoinen, SBAS, Estimate_ZTD, Estimate_ZTD_Grad
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.enable_rx_clock_correction=true
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1019_rate_ms=5000
PVT.rtcm_MT1077_rate_ms=1000
PVT.rinex_version=2
PVT.flag_nmea_tty_port=true
PVT.nmea_dump_devname=/dev/pts/3
; To use gpsd with GNSS-SDR
; 1. run socat -d -d pty,raw,echo=0 pty,raw,echo=0
; 2. Set PVT.nmea_dump_devname to first PTY from socat output
; 3. run gpsd -b -n -N /dev/pts/4
; where /dev/pts/4 is the second PTY from socat output
; 4. run some gpsd client (xgps or other)
PVT.enable_monitor=true
PVT.monitor_client_addresses=127.0.0.1
PVT.monitor_udp_port=1111
Monitor.enable_monitor=true
Monitor.decimation_factor=4
Monitor.client_addresses=127.0.0.1
Monitor.udp_port=1112
;AcquisitionMonitor.enable_monitor=true
AcquisitionMonitor.client_addresses=127.0.0.1
AcquisitionMonitor.udp_port=1112

View File

@ -0,0 +1,237 @@
; This is a GNSS-SDR configuration file
; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
; SPDX-License-Identifier: GPL-3.0-or-later
; SPDX-FileCopyrightText: (C) 2010-2020 (see AUTHORS file for a list of contributors)
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
GNSS-SDR.internal_fs_sps=4000000
GNSS-SDR.Beidou_banned_prns=56,57,58
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Osmosdr_Signal_Source
SignalSource.item_type=gr_complex
SignalSource.sampling_frequency=20000000
SignalSource.freq=1567420000
SignalSource.if_bw=18000000
;# Next line enables the internal HackRF One bias (3.3 VDC)
SignalSource.osmosdr_args=hackrf=0,bias=1,buffers=256
SignalSource.gain=0
SignalSource.rf_gain=40
SignalSource.if_gain=40
SignalSource.AGC_enabled=false
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.RF_channels=2
SignalSource.enable_throttle_control=false
SignalSource.dump=false
;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner0.implementation=Signal_Conditioner
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter1.implementation=Pass_Through
;######### INPUT_FILTER CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
;InputFilter0.implementation=Pass_Through
InputFilter0.decimation_factor=5
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
InputFilter0.filter_type=lowpass
InputFilter0.bw=3000000
InputFilter0.tw=1000000
InputFilter0.IF=-6322000
InputFilter0.sampling_frequency=20000000
InputFilter0.dump=false
InputFilter0.dump_filename=../data/input_filter.dat
;######### INPUT_FILTER CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
;InputFilter1.implementation=Pass_Through
InputFilter1.decimation_factor=5
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
InputFilter1.filter_type=lowpass
InputFilter1.bw=3000000
InputFilter1.tw=1000000
InputFilter1.IF=8000000
InputFilter1.sampling_frequency=20000000
InputFilter1.dump=false
InputFilter1.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
Resampler0.implementation=Pass_Through
Resampler1.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
Channels_1B.count=10
Channels_1C.count=10
Channels_B1.count=14
Channels_1B.RF_channel_ID=1
Channels_1C.RF_channel_ID=1
Channels_B1.RF_channel_ID=0
Channels.in_acquisition=10
;######### ACQUISITION BEIDOU CONFIG ############
Acquisition_B1.implementation=BEIDOU_B1I_PCPS_Acquisition
Acquisition_B1.item_type=gr_complex
Acquisition_B1.coherent_integration_time_ms=2
;Acquisition_B1.max_dwells=2
;Acquisition_B1.pfa=0.02
Acquisition_B1.pfa=0.000002
Acquisition_B1.doppler_max=3800
Acquisition_B1.doppler_step=100
Acquisition_B1.dump=false
Acquisition_B1.dump_filename=./bds_acq
;Acquisition_B1.blocking=true
Acquisition_B1.bit_transition_flag = false;
;######### ACQUISITION GPS CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.pfa=0.015
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=200
Acquisition_1C.max_dwells=4
;Acquisition_1C.blocking=true
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat
;######### ACQUISITION GALILEO CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.coherent_integration_time_ms=2
;Acquisition_1B.pfa=0.000008
Acquisition_1B.pfa=0.025
Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=200
Acquisition_1B.max_dwells=4
;Acquisition_1B.repeat_satellite=true
Acquisition_1B.cboc=true
;Acquisition_1B.blocking=true
Acquisition_1B.dump=false
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING BEIDOU CONFIG ############
Tracking_B1.implementation=BEIDOU_B1I_DLL_PLL_Tracking
Tracking_B1.item_type=gr_complex
Tracking_B1.extend_correlation_symbols=10
Tracking_B1.pll_bw_hz=30.0
Tracking_B1.dll_bw_hz=2.00
Tracking_B1.pll_bw_narrow_hz=15.0
Tracking_B1.dll_bw_narrow_hz=0.50
;Tracking_B1.cn0_min=20
Tracking_B1.fll_bw_hz=20
Tracking_B1.enable_fll_pull_in=true
Tracking_B1.enable_fll_steady_state=false
Tracking_B1.dump=false
Tracking_B1.dump_filename=./epl_tracking_ch_
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.extend_correlation_symbols=10
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.early_late_space_narrow_chips=0.15
Tracking_1C.pll_bw_hz=30.0
Tracking_1C.dll_bw_hz=2.0
Tracking_1C.pll_bw_narrow_hz=10.0
Tracking_1C.dll_bw_narrow_hz=0.50
Tracking_1C.fll_bw_hz=10
Tracking_1C.enable_fll_pull_in=true
Tracking_1C.enable_fll_steady_state=false
Tracking_1C.dump=false
Tracking_1C.dump_filename=tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.extend_correlation_symbols=4
Tracking_1B.item_type=gr_complex
Tracking_1B.pll_bw_hz=30.0
Tracking_1B.dll_bw_hz=2.0
Tracking_1B.pll_bw_narrow_hz=20.0
Tracking_1B.dll_bw_narrow_hz=0.50
Tracking_1B.track_pilot=true
Tracking_1B.enable_fll_pull_in=true;
Tracking_1B.enable_fll_steady_state=false
Tracking_1B.fll_bw_hz=20
;######### TELEMETRY DECODER BEIDOU CONFIG ############
TelemetryDecoder_B1.implementation=BEIDOU_B1I_Telemetry_Decoder
TelemetryDecoder_B1.dump=false
;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO E1B CONFIG ############
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
PVT.threshold_reject_GDOP=100
PVT.elevation_mask=4
PVT.positioning_mode=Single ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.iono_model=Broadcast ; options: OFF, Broadcast, SBAS, Iono-Free-LC, Estimate_STEC, IONEX
PVT.trop_model=Saastamoinen ; options: OFF, Saastamoinen, SBAS, Estimate_ZTD, Estimate_ZTD_Grad
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.enable_rx_clock_correction=true
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1019_rate_ms=5000
PVT.rtcm_MT1077_rate_ms=1000
PVT.rinex_version=2
PVT.flag_nmea_tty_port=true
PVT.nmea_dump_devname=/dev/pts/3
PVT.enable_monitor=true
PVT.monitor_client_addresses=127.0.0.1
PVT.monitor_udp_port=1111
Monitor.enable_monitor=true
Monitor.decimation_factor=4
Monitor.client_addresses=127.0.0.1
Monitor.udp_port=1112
AcquisitionMonitor.enable_monitor=true
AcquisitionMonitor.client_addresses=127.0.0.1
AcquisitionMonitor.udp_port=1112

View File

@ -14,10 +14,57 @@ All notable changes to GNSS-SDR will be documented in this file.
## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next)
### Improvements in Usability
### Improvements in Interoperability:
- Improved error handling in UDP connections.
- Make it possible to receive multiple constellations using a single channel
wideband device (HackRF/LimeSDR/USRP). Demonstration:
https://www.youtube.com/watch?v=ZQs2sFchJ6w
https://www.youtube.com/watch?v=HnZkKj9a-QM
### Improvements in Portability:
- Fix building against google-glog 0.7.x.
- Find dependencies in the loongarch64 architecture.
- Soft transition from [GFlags](https://github.com/gflags/gflags) and
[Google Logging (glog)](https://github.com/google/glog) to Abseil
[Logging](https://abseil.io/docs/cpp/guides/logging) and
[Flags](https://abseil.io/docs/cpp/guides/flags) libraries. While gflags and
glog have dutifully served GNSS-SDR for over a decade, they are now showing
signs of aging. The latest version of gflags dates back six years now, with
its last commit in the master branch occurring two years ago. Glog remains
well maintained, with its latest version v0.7.0 released in February 2024, but
with no active development of new features and stuck at C++14. Abseil, on the
other hand, represents a contemporary evolution in software development,
supports C++17 and C++20, and has absorbed the functionalities of flags and
logging from its predecessors. Furthermore, as Abseil has become a
prerequisite for the latest versions of Protocol Buffers, its eventual
inclusion in GNSS-SDR's indirect dependencies is inevitable. Leveraging Abseil
allows for eliminating the need for gflags and glog, thereby reducing the
number of mandatory dependencies for GNSS-SDR in forthcoming GNU/Linux
distributions. For seamless integration, GNSS-SDR requires a quite recent
minimum version of Abseil, v20240116. If an older version is detected, the
library will not be utilized, and GNSS-SDR will fall back to using gflags and
glog, which still can be used and are fully supported. A new CMake
configuration option `-DENABLE_GLOG_AND_GFLAGS=ON` is available to force the
usage of glog and gflags instead of Abseil, even if a valid version of that
library is present. If the Abseil version installed in your system is too old
but you still want to try it, you can also force the downloading and building
of a recent version with the new CMake configuration flag
`-DENABLE_OWN_ABSEIL=ON` (requires CMake >= 3.24, otherwise it has no effect).
This change has a downside in maintainability, since the source code becomes
plagued with preprocessor directives required to maintain compatibility both
with gflags and glog, and with Abseil.
### Improvements in Usability:
- Tidy up the `conf/` folder.
See the definitions of concepts and metrics at
https://gnss-sdr.org/design-forces/
&nbsp;
## [GNSS-SDR v0.0.19.1](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.19.1) - 2024-01-26
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10579595.svg)](https://doi.org/10.5281/zenodo.10579595)
@ -102,7 +149,7 @@ All notable changes to GNSS-SDR will be documented in this file.
overkilling nine (the ninth decimal place worths up to 110 microns).
Similarly, height in meters is now reported with two decimal places instead of
three, and velocity in m/s also with two decimal places instead of three.
- Fixed the rate at which KLM, GPX, GeoJSON, and NMEA annotations are made. The
- Fixed the rate at which KML, GPX, GeoJSON, and NMEA annotations are made. The
rate is now set by `PVT.output_rate_ms` (`500` ms by default), and can be
particularized by `PVT.kml_rate_ms`, `PVT.gpx_rate_ms`, `PVT.geojson_rate_ms`,
and `PVT.nmea_rate_ms`. Those values should be multiples of
@ -318,7 +365,7 @@ https://gnss-sdr.org/design-forces/
- 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
[log4cpp](https://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.
@ -465,8 +512,7 @@ https://gnss-sdr.org/design-forces/
inconsistencies in the configuration file.
- Fix segmentation fault if the RINEX output was disabled.
- Added a feature that optionally enables the remote monitoring of GPS and
Galileo ephemeris using UDP and
[Protocol Buffers](https://developers.google.com/protocol-buffers).
Galileo ephemeris using UDP and [Protocol Buffers](https://protobuf.dev/).
- 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

View File

@ -77,19 +77,19 @@ As outputs, it provides:
In principle, GNSS-SDR can be built in any Unix-like system. In practice, it depends on being able to install all the required dependencies. See the <a href="https://gnss-sdr.org/build-and-install/" target="_blank">building guide</a> page for details about the project's
dependencies and build process. Mainly, it consists on installing <a href="https://www.gnuradio.org/" target="_blank">GNU Radio</a> plus some few more libraries:
\li <a href="http://arma.sourceforge.net/" target="_blank">Armadillo</a>, a C++ linear algebra library,
\li <a href="https://arma.sourceforge.net/" target="_blank">Armadillo</a>, a C++ linear algebra library,
\li <a href="https://www.boost.org/" target="_blank">Boost</a>, a set of free peer-reviewed portable C++ source libraries,
\li <a href="https://github.com/gflags/gflags" target="_blank">Gflags</a>, a library that implements commandline flags processing,
\li <a href="https://github.com/google/glog" target="_blank">Glog</a>, a library that implements application-level logging,
\li <a href="https://github.com/google/googletest" target="_blank">Googletest</a>, Google's framework for writing C++ tests,
\li <a href="https://www.makotemplates.org/" target="_blank">Mako</a>, a template library written in Python,
\li <a href="https://github.com/tbeu/matio" target="_blank">Matio</a>, a MATLAB MAT File I/O Library,
\li <a href="https://developers.google.com/protocol-buffers" target="_blank">Protocol Buffers</a>, a language-neutral, platform-neutral extensible mechanism for serializing structured data,
\li <a href="https://protobuf.dev/" target="_blank">Protocol Buffers</a>, a language-neutral, platform-neutral extensible mechanism for serializing structured data,
\li <a href="https://pugixml.org/" target="_blank">PugiXML</a>, a light-weight, simple and fast XML parser for C++ with XPath support,
\li <a href="https://www.libvolk.org" target="_blank">Volk</a>, a Vector-Optimized Library of Kernels which provides an abstraction of optimized math routines targeting several SIMD processors,
and, optionally,
\li GNU Radio modules for hardware interface (<a href="https://github.com/gnuradio/gnuradio/tree/main/gr-uhd" target="_blank">gr-uhd</a>, <a href="http://git.osmocom.org/gr-osmosdr" target="_blank">gr-osmosdr</a>, <a href="https://github.com/analogdevicesinc/gr-iio" target="_blank">gr-iio</a>),
\li GNU Radio modules for hardware interface (<a href="https://github.com/gnuradio/gnuradio/tree/main/gr-uhd" target="_blank">gr-uhd</a>, <a href="https://gitea.osmocom.org/sdr/gr-osmosdr" target="_blank">gr-osmosdr</a>, <a href="https://github.com/analogdevicesinc/gr-iio" target="_blank">gr-iio</a>),
\li <a href="https://github.com/google/benchmark" target="_blank">Benchmark</a>, a library to benchmark code snippets,
\li <a href="https://github.com/gperftools/gperftools" target="_blank">Gperftools</a>, which provides fast, multi-threaded malloc() and performance analysis tools.

View File

@ -153,7 +153,7 @@ automatically selected by the CMake script):
You can get it from <a href="https://www.iso.org/standard/79358.html"
target="_blank">ISO</a>, <a
href="https://webstore.iec.ch/publication/68285" target="_blank">IEC</a>
or <a href="https://webstore.ansi.org/Standards/ISO/ISOIEC148822020"
or <a href="https://webstore.ansi.org/standards/iso/isoiec148822020"
target="_blank">ANSI</a>. The closest free working document available is
<a
href="https://github.com/cplusplus/draft/releases/download/n4868/n4868.pdf"
@ -162,23 +162,23 @@ automatically selected by the CMake script):
You can get it from <a href="https://www.iso.org/standard/68564.html"
target="_blank">ISO</a>, <a
href="https://webstore.iec.ch/publication/62162" target="_blank">IEC</a>
or <a href="https://webstore.ansi.org/Standards/ISO/ISOIEC148822017"
or <a href="https://webstore.ansi.org/standards/iso/isoiec148822017"
target="_blank">ANSI</a>. The closest free working document available is
<a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf"
href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf"
target="_blank">N4659</a>.</li>
<li><strong>C++14</strong>: A former ISO C++ standard was officially known as <em>ISO International Standard ISO/IEC 14882:2014 Programming languages C++</em>.
You can get it from <a href="https://www.iso.org/standard/64029.html"
target="_blank">ISO</a> or <a
href="https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS/ISO/IEC+14882:2014+(2016)"
href="https://webstore.ansi.org/standards/incits/incitsisoiec1488220142016"
target="_blank">ANSI</a>. The closest free working document available is
<a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf"
href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf"
target="_blank">N4296</a>.</li>
<li><strong>C++11</strong>: An older ISO C++ standard was ISO/IEC 14882:2011.
You can get it from <a href="https://www.iso.org/standard/50372.html"
target="_blank">ISO</a>. The closest free working document available is <a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf"
href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf"
target="_blank">N3337</a>.</li>
</ul>
@ -207,7 +207,7 @@ User plane protocols:
\li Open Mobile Alliance (OMA), <a href="http://member.openmobilealliance.org/ftp/Public_documents/LOC/Permanent_documents/OMA-AD-SUPL-V2_0-20120417-A.zip" target="_blank"><b>Secure User Plane Location Architecture Version 2 (SUPL 2.0)</b></a>, April 2012.
LTE Release 9 introduced extension hooks in LPP messages, so that the bodies external to 3GPP could extend the LPP feature set. OMA LPP extensions (LPPe), supported in SUPL 3.0, build on top of the 3GPP LPP reusing its procedures and data types.
Check the <a href="http://openmobilealliance.org/wp/index.html" target="_blank">OMA Specifications webpage</a> for updated information about LPP Extensions (LPPe) Specification.
Check the <a href="https://technical.openmobilealliance.org/index.html" target="_blank">OMA Specifications webpage</a> for updated information about LPP Extensions (LPPe) Specification.
\li The <a href="http://member.openmobilealliance.org/ftp/Public_documents/loc/Permanent_documents/OMA-TS-MLP-V3_5-20181119-D.zip" target="_blank"><b>OMA Mobile Location Protocol (MLP) V3.5</b></a>
is an application-level protocol for getting the position of mobile stations

View File

@ -11,9 +11,8 @@ SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades <carles.fernandez@cttc
<!-- prettier-ignore-end -->
Files in this folder describe structured data formats that are generated by
GNSS-SDR. They use
[Protocol Buffers](https://developers.google.com/protocol-buffers/)'
[proto3](https://developers.google.com/protocol-buffers/docs/proto3) syntax.
GNSS-SDR. They use [Protocol Buffers](https://protobuf.dev/)'
[proto3](https://protobuf.dev/programming-guides/proto3/) syntax.
From those files, the protocol buffer compiler creates classes that implement
automatic encoding and parsing of the protocol buffer data with an efficient

View File

@ -23,10 +23,16 @@ target_link_libraries(pvt_adapters
pvt_gr_blocks
PRIVATE
gnss_sdr_flags
Glog::glog
pvt_libs
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(pvt_adapters PRIVATE Glog::glog)
target_compile_definitions(pvt_adapters PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(pvt_adapters PRIVATE absl::flags absl::log)
endif()
target_include_directories(pvt_adapters
PUBLIC
${GNSSSDR_SOURCE_DIR}/src/core/interfaces

View File

@ -26,8 +26,12 @@
#include "gps_ephemeris.h" // for Gps_Ephemeris
#include "pvt_conf.h" // for Pvt_Conf
#include "rtklib_rtkpos.h" // for rtkfree, rtkinit
#include <glog/logging.h> // for LOG
#include <iostream> // for std::cout
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if USE_STD_COMMON_FACTOR
#include <numeric>
namespace bc = std;
@ -88,6 +92,7 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
// RINEX version
pvt_output_parameters.rinex_version = configuration->property(role + ".rinex_version", 3);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_RINEX_version == "3.01" || FLAGS_RINEX_version == "3.02" || FLAGS_RINEX_version == "3")
{
pvt_output_parameters.rinex_version = 3;
@ -96,13 +101,29 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
{
pvt_output_parameters.rinex_version = 2;
}
#else
if (absl::GetFlag(FLAGS_RINEX_version) == "3.01" || absl::GetFlag(FLAGS_RINEX_version) == "3.02" || absl::GetFlag(FLAGS_RINEX_version) == "3")
{
pvt_output_parameters.rinex_version = 3;
}
else if (absl::GetFlag(FLAGS_RINEX_version) == "2.10" || absl::GetFlag(FLAGS_RINEX_version) == "2.11" || absl::GetFlag(FLAGS_RINEX_version) == "2")
{
pvt_output_parameters.rinex_version = 2;
}
#endif
pvt_output_parameters.rinexobs_rate_ms = bc::lcm(configuration->property(role + ".rinexobs_rate_ms", 1000), pvt_output_parameters.output_rate_ms);
pvt_output_parameters.rinex_name = configuration->property(role + ".rinex_name", std::string("-"));
#if USE_GLOG_AND_GFLAGS
if (FLAGS_RINEX_name != "-")
{
pvt_output_parameters.rinex_name = FLAGS_RINEX_name;
}
#else
if (absl::GetFlag(FLAGS_RINEX_name) != "-")
{
pvt_output_parameters.rinex_name = absl::GetFlag(FLAGS_RINEX_name);
}
#endif
// RTCM Printer settings
pvt_output_parameters.flag_rtcm_tty_port = configuration->property(role + ".flag_rtcm_tty_port", false);
pvt_output_parameters.rtcm_dump_devname = configuration->property(role + ".rtcm_dump_devname", default_rtcm_dump_devname);

View File

@ -27,11 +27,16 @@ target_link_libraries(pvt_gr_blocks
PRIVATE
algorithms_libs
pvt_libs
Gflags::gflags
Glog::glog
Boost::serialization
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(pvt_gr_blocks PRIVATE Gflags::gflags Glog::glog)
target_compile_definitions(pvt_gr_blocks PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(pvt_gr_blocks PRIVATE absl::log)
endif()
if(GNURADIO_USES_STD_POINTERS)
target_compile_definitions(pvt_gr_blocks
PUBLIC -DGNURADIO_USES_STD_POINTERS=1

View File

@ -64,7 +64,6 @@
#include <boost/exception/exception.hpp>
#include <boost/serialization/map.hpp>
#include <boost/serialization/nvp.hpp> // for nvp, make_nvp
#include <glog/logging.h> // for LOG
#include <gnuradio/io_signature.h> // for io_signature
#include <pmt/pmt_sugar.h> // for mp
#include <algorithm> // for sort, unique
@ -82,6 +81,12 @@
#include <typeinfo> // for std::type_info, typeid
#include <utility> // for pair
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_GENERIC_LAMBDA
#else
#include <boost/bind/bind.hpp>

View File

@ -98,11 +98,18 @@ target_link_libraries(pvt_libs
algorithms_libs_rtklib
PRIVATE
algorithms_libs
Gflags::gflags
Glog::glog
gnss_sdr_flags
Matio::matio
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(pvt_libs PUBLIC Glog::glog)
target_compile_definitions(pvt_libs PUBLIC -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(pvt_libs PUBLIC absl::log)
endif()
get_filename_component(PROTO_INCLUDE_HEADERS_DIR ${PROTO_HDRS} DIRECTORY)
# for concurrent_queue.h

View File

@ -20,7 +20,6 @@
#include "an_packet_printer.h"
#include "rtklib_solver.h" // for Rtklib_Solver
#include <glog/logging.h> // for DLOG
#include <cmath> // for M_PI
#include <cstring> // for memcpy
#include <fcntl.h> // for fcntl
@ -29,6 +28,12 @@
#include <termios.h> // values for termios
#include <unistd.h> // for write(), read(), close()
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
An_Packet_Printer::An_Packet_Printer(const std::string& an_dump_devname)
: d_start(std::chrono::system_clock::now()),

View File

@ -135,7 +135,7 @@ std::array<double, 2> Geohash::decode(std::string geohash) const
std::array<double, 4> Geohash::bounds(std::string geohash) const
{
if (geohash.length() == 0)
if (geohash.empty())
{
throw std::runtime_error("Invalid geohash");
}

View File

@ -20,13 +20,18 @@
#include "gnss_sdr_filesystem.h"
#include "pvt_solution.h"
#include <boost/date_time/posix_time/posix_time.hpp>
#include <glog/logging.h>
#include <ctime> // for tm
#include <exception> // for exception
#include <iomanip> // for operator<<
#include <iostream> // for cout, cerr
#include <sstream> // for stringstream
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GeoJSON_Printer::GeoJSON_Printer(const std::string& base_path) : geojson_base_path(base_path),
first_pos(true)

View File

@ -20,13 +20,17 @@
#include "gnss_sdr_filesystem.h"
#include "pvt_solution.h"
#include <boost/date_time/posix_time/posix_time.hpp>
#include <glog/logging.h>
#include <ctime> // for tm
#include <exception> // for exception
#include <iomanip> // for operator<<
#include <iostream> // for cout, cerr
#include <sstream> // for stringstream
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Gpx_Printer::Gpx_Printer(const std::string& base_path) : indent(" "),
gpx_base_path(base_path),

View File

@ -21,7 +21,6 @@
#include "galileo_has_data.h"
#include "gnss_sdr_filesystem.h"
#include <boost/date_time/posix_time/posix_time.hpp>
#include <glog/logging.h>
#include <algorithm> // for std::find, std::count
#include <bitset> // for std::bitset
#include <cstdint> // for uint8_t, ...
@ -32,6 +31,12 @@
#include <iostream> // for std::cout, std::cerr
#include <sstream> // for std::stringstream
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Has_Simple_Printer::Has_Simple_Printer(const std::string& base_path,
const std::string& filename,

View File

@ -20,7 +20,6 @@
#include "gnss_sdr_filesystem.h"
#include "pvt_solution.h"
#include <boost/date_time/posix_time/posix_time.hpp>
#include <glog/logging.h>
#include <cstdlib> // for mkstemp
#include <ctime> // for tm
#include <exception> // for exception
@ -30,6 +29,11 @@
#include <sys/stat.h> // for S_IXUSR | S_IRWXG | S_IRWXO
#include <sys/types.h> // for mode_t
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Kml_Printer::Kml_Printer(const std::string& base_path) : kml_base_path(base_path),
indent(" "),

View File

@ -55,22 +55,24 @@ bool Monitor_Ephemeris_Udp_Sink::write_galileo_ephemeris(const std::shared_ptr<G
outbound_data.append(serdes_gal.createProtobuffer(monitor_gal_eph));
}
for (const auto& endpoint : endpoints)
try
{
socket.open(endpoint.protocol(), error);
try
for (const auto& endpoint : endpoints)
{
if (socket.send_to(boost::asio::buffer(outbound_data), endpoint) == 0)
socket.open(endpoint.protocol(), error); // NOLINT(bugprone-unused-return-value)
if (socket.send_to(boost::asio::buffer(outbound_data), endpoint) == 0) // this can throw
{
return false;
}
}
catch (boost::system::system_error const& e)
{
return false;
}
}
catch (const boost::system::system_error& e)
{
std::cerr << "Error sending Galileo ephemeris: " << e.what() << '\n';
return false;
}
return true;
}
@ -91,21 +93,23 @@ bool Monitor_Ephemeris_Udp_Sink::write_gps_ephemeris(const std::shared_ptr<Gps_E
outbound_data.append(serdes_gps.createProtobuffer(monitor_gps_eph));
}
for (const auto& endpoint : endpoints)
try
{
socket.open(endpoint.protocol(), error);
try
for (const auto& endpoint : endpoints)
{
if (socket.send_to(boost::asio::buffer(outbound_data), endpoint) == 0)
socket.open(endpoint.protocol(), error); // NOLINT(bugprone-unused-return-value)
if (socket.send_to(boost::asio::buffer(outbound_data), endpoint) == 0) // this can throw
{
return false;
}
}
catch (boost::system::system_error const& e)
{
return false;
}
}
catch (const boost::system::system_error& e)
{
std::cerr << "Error sending GPS ephemeris: " << e.what() << '\n';
return false;
}
return true;
}

View File

@ -54,21 +54,23 @@ bool Monitor_Pvt_Udp_Sink::write_monitor_pvt(const Monitor_Pvt* const monitor_pv
outbound_data = serdes.createProtobuffer(monitor_pvt);
}
for (const auto& endpoint : endpoints)
try
{
socket.open(endpoint.protocol(), error);
try
for (const auto& endpoint : endpoints)
{
if (socket.send_to(boost::asio::buffer(outbound_data), endpoint) == 0)
socket.open(endpoint.protocol(), error); // NOLINT(bugprone-unused-return-value)
if (socket.send_to(boost::asio::buffer(outbound_data), endpoint) == 0) // this can throw
{
return false;
}
}
catch (boost::system::system_error const& e)
{
return false;
}
}
catch (boost::system::system_error const& e)
{
std::cerr << "Error sending PVT data: " << e.what() << '\n';
return false;
}
return true;
}

View File

@ -23,7 +23,6 @@
#include "gnss_sdr_filesystem.h"
#include "rtklib_solution.h"
#include "rtklib_solver.h"
#include <glog/logging.h>
#include <array>
#include <cstdint>
#include <exception>
@ -32,6 +31,12 @@
#include <termios.h>
#include <utility>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Nmea_Printer::Nmea_Printer(const std::string& filename,
bool flag_nmea_output_file,

View File

@ -16,8 +16,12 @@
*/
#include "pvt_kf.h"
#include <glog/logging.h>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
void Pvt_Kf::init_Kf(const arma::vec& p,
const arma::vec& v,

View File

@ -17,10 +17,14 @@
#include "pvt_solution.h"
#include "MATH_CONSTANTS.h"
#include <glog/logging.h>
#include <cmath>
#include <cstddef>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
int Pvt_Solution::cart2geo(double X, double Y, double Z, int elipsoid_selection)
{

View File

@ -42,7 +42,6 @@
#include <boost/date_time/gregorian/gregorian.hpp>
#include <boost/date_time/local_time/local_time.hpp>
#include <boost/date_time/time_zone_base.hpp>
#include <glog/logging.h>
#include <algorithm> // for min and max
#include <array>
#include <cmath> // for floor
@ -55,6 +54,11 @@
#include <utility>
#include <vector>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Rinex_Printer::Rinex_Printer(int32_t conf_version,
const std::string& base_path,

View File

@ -29,7 +29,6 @@
#include "gps_ephemeris.h"
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <glog/logging.h>
#include <algorithm> // for std::max, std::min, std::copy_n
#include <array>
#include <bitset>
@ -47,6 +46,12 @@
#include <utility>
#include <vector>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
/** \addtogroup PVT
* \{ */
/** \addtogroup PVT_libs
@ -723,10 +728,10 @@ private:
{
if (first == true)
{
LOG(INFO) << "Client says:";
DLOG(INFO) << "Client says:";
first = false;
}
LOG(INFO) << client_says;
DLOG(INFO) << client_says;
client_says = client_says.substr(80, client_says.length() - 80);
}
do_read_message_header();

View File

@ -30,7 +30,6 @@
#include "rtcm.h"
#include "rtklib_solver.h"
#include <boost/exception/diagnostic_information.hpp>
#include <glog/logging.h>
#include <ctime> // for tm
#include <exception> // for exception
#include <fcntl.h> // for O_RDWR
@ -39,6 +38,11 @@
#include <unistd.h> // for close, write
#include <vector> // for std::vector
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Rtcm_Printer::Rtcm_Printer(const std::string& filename,
bool flag_rtcm_file_dump,

View File

@ -37,7 +37,6 @@
#include "rtklib_ephemeris.h"
#include "rtklib_rtkpos.h"
#include "rtklib_solution.h"
#include <glog/logging.h>
#include <matio.h>
#include "iostream"
#include <algorithm>
@ -47,6 +46,11 @@
#include <vector>
using namespace std;
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
Rtklib_Solver::Rtklib_Solver(const rtk_t &rtk,
const Pvt_Conf &conf,

View File

@ -104,9 +104,15 @@ target_link_libraries(acquisition_adapters
PRIVATE
gnss_sdr_flags
Boost::headers
Glog::glog
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(acquisition_adapters PRIVATE Glog::glog)
target_compile_definitions(acquisition_adapters PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(acquisition_adapters PRIVATE absl::flags absl::log)
endif()
if(GNURADIO_USES_STD_POINTERS)
target_compile_definitions(acquisition_adapters
PUBLIC -DGNURADIO_USES_STD_POINTERS=1

View File

@ -23,10 +23,15 @@
#include "beidou_b1i_signal_replica.h"
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <algorithm>
#include <memory>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -52,10 +57,17 @@ BeidouB1iPcpsAcquisition::BeidouB1iPcpsAcquisition(
LOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -21,9 +21,14 @@
#include "beidou_b3i_signal_replica.h"
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -48,10 +53,17 @@ BeidouB3iPcpsAcquisition::BeidouB3iPcpsAcquisition(
LOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -21,9 +21,14 @@
#include "galileo_e1_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -58,10 +63,17 @@ GalileoE1Pcps8msAmbiguousAcquisition::GalileoE1Pcps8msAmbiguousAcquisition(
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
dump_filename_ = configuration_->property(role_ + ".dump_filename", default_dump_filename);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
if (sampled_ms_ % 4 != 0)
{

View File

@ -22,9 +22,14 @@
#include "galileo_e1_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -51,10 +56,17 @@ GalileoE1PcpsAmbiguousAcquisition::GalileoE1PcpsAmbiguousAcquisition(
acq_parameters_.ms_per_code = 4;
acq_parameters_.SetFromConfiguration(configuration_, role_, GALILEO_E1_CODE_CHIP_RATE_CPS, GALILEO_E1_OPT_ACQ_FS_SPS);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -21,7 +21,6 @@
#include "galileo_e1_signal_replica.h"
#include "gnss_sdr_fft.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <gnuradio/fft/fft.h> // for fft_complex
#include <gnuradio/gr_complex.h> // for gr_complex
#include <volk/volk.h> // for volk_32fc_conjugate_32fc
@ -30,6 +29,12 @@
#include <cmath> // for abs, pow, floor
#include <complex> // for complex
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GalileoE1PcpsAmbiguousAcquisitionFpga::GalileoE1PcpsAmbiguousAcquisitionFpga(
const ConfigurationInterface* configuration,
const std::string& role,
@ -46,10 +51,17 @@ GalileoE1PcpsAmbiguousAcquisitionFpga::GalileoE1PcpsAmbiguousAcquisitionFpga(
{
acq_parameters_.SetFromConfiguration(configuration, role_, fpga_buff_num, fpga_blk_exp, downsampling_factor_default, GALILEO_E1_CODE_CHIP_RATE_CPS, GALILEO_E1_B_CODE_LENGTH_CHIPS);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -21,8 +21,12 @@
#include "galileo_e1_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition(
const ConfigurationInterface* configuration,
@ -50,10 +54,17 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
dump_filename_ = configuration_->property(role_ + ".dump_filename", default_dump_filename);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
if (sampled_ms_ % 4 != 0)
{

View File

@ -21,9 +21,14 @@
#include "galileo_e1_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -58,10 +63,17 @@ GalileoE1PcpsQuickSyncAmbiguousAcquisition::GalileoE1PcpsQuickSyncAmbiguousAcqui
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
/* --- Find number of samples per spreading code (4 ms) -----------------*/
code_length_ = static_cast<unsigned int>(round(

View File

@ -21,9 +21,14 @@
#include "galileo_e1_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -71,10 +76,17 @@ GalileoE1PcpsTongAmbiguousAcquisition::GalileoE1PcpsTongAmbiguousAcquisition(
<< sampled_ms_ << " ms will be used.";
}
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
bool enable_monitor_output = configuration_->property("AcquisitionMonitor.enable_monitor", false);

View File

@ -27,9 +27,14 @@
#include "galileo_e5_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -67,10 +72,17 @@ GalileoE5aNoncoherentIQAcquisitionCaf::GalileoE5aNoncoherentIQAcquisitionCaf(
int64_t fs_in_deprecated = configuration_->property("GNSS-SDR.internal_fs_hz", 32000000);
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
DLOG(INFO) << "role " << role_;
if (sampled_ms_ > 3)

View File

@ -21,10 +21,15 @@
#include "configuration_interface.h"
#include "galileo_e5_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <volk_gnsssdr/volk_gnsssdr_complex.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -51,10 +56,17 @@ GalileoE5aPcpsAcquisition::GalileoE5aPcpsAcquisition(
acq_parameters_.ms_per_code = 1;
acq_parameters_.SetFromConfiguration(configuration, role_, GALILEO_E5A_CODE_CHIP_RATE_CPS, GALILEO_E5A_OPT_ACQ_FS_SPS);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -21,7 +21,6 @@
#include "galileo_e5_signal_replica.h"
#include "gnss_sdr_fft.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <gnuradio/gr_complex.h> // for gr_complex
#include <volk/volk.h> // for volk_32fc_conjugate_32fc
#include <volk_gnsssdr/volk_gnsssdr_alloc.h>
@ -29,6 +28,12 @@
#include <cmath> // for abs, pow, floor
#include <complex> // for complex
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GalileoE5aPcpsAcquisitionFpga::GalileoE5aPcpsAcquisitionFpga(
const ConfigurationInterface* configuration,
const std::string& role,
@ -45,10 +50,17 @@ GalileoE5aPcpsAcquisitionFpga::GalileoE5aPcpsAcquisitionFpga(
{
acq_parameters_.SetFromConfiguration(configuration, role_, fpga_buff_num, fpga_blk_exp, downsampling_factor_default, GALILEO_E5A_CODE_CHIP_RATE_CPS, GALILEO_E5A_CODE_LENGTH_CHIPS);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -22,10 +22,15 @@
#include "configuration_interface.h"
#include "galileo_e5_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <volk_gnsssdr/volk_gnsssdr_complex.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -51,10 +56,17 @@ GalileoE5bPcpsAcquisition::GalileoE5bPcpsAcquisition(const ConfigurationInterfac
acq_parameters_.ms_per_code = 1;
acq_parameters_.SetFromConfiguration(configuration, role_, GALILEO_E5B_CODE_CHIP_RATE_CPS, GALILEO_E5B_OPT_ACQ_FS_SPS);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -22,13 +22,18 @@
#include "galileo_e5_signal_replica.h"
#include "gnss_sdr_fft.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <gnuradio/gr_complex.h> // for gr_complex
#include <volk/volk.h> // for volk_32fc_conjugate_32fc
#include <algorithm> // for copy_n
#include <cmath> // for abs, pow, floor
#include <complex> // for complex
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GalileoE5bPcpsAcquisitionFpga::GalileoE5bPcpsAcquisitionFpga(const ConfigurationInterface* configuration,
const std::string& role,
unsigned int in_streams,
@ -44,10 +49,17 @@ GalileoE5bPcpsAcquisitionFpga::GalileoE5bPcpsAcquisitionFpga(const Configuration
acq_iq_(configuration->property(role + ".acquire_iq", false))
{
acq_parameters_.SetFromConfiguration(configuration, role_, fpga_buff_num, fpga_blk_exp, downsampling_factor_default, GALILEO_E5B_CODE_CHIP_RATE_CPS, GALILEO_E5B_CODE_LENGTH_CHIPS);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -21,9 +21,14 @@
#include "configuration_interface.h"
#include "galileo_e6_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -51,10 +56,17 @@ GalileoE6PcpsAcquisition::GalileoE6PcpsAcquisition(
DLOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -23,9 +23,14 @@
#include "configuration_interface.h"
#include "glonass_l1_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -51,10 +56,17 @@ GlonassL1CaPcpsAcquisition::GlonassL1CaPcpsAcquisition(
DLOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -22,9 +22,14 @@
#include "configuration_interface.h"
#include "glonass_l2_signal_replica.h"
#include "gnss_sdr_flags.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -50,10 +55,17 @@ GlonassL2CaPcpsAcquisition::GlonassL2CaPcpsAcquisition(
DLOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -25,9 +25,14 @@
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -54,10 +59,17 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
DLOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);

View File

@ -24,8 +24,12 @@
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <glog/logging.h>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GpsL1CaPcpsAcquisitionFineDoppler::GpsL1CaPcpsAcquisitionFineDoppler(
const ConfigurationInterface* configuration,
@ -57,10 +61,17 @@ GpsL1CaPcpsAcquisitionFineDoppler::GpsL1CaPcpsAcquisitionFineDoppler(
acq_parameters.dump = dump_;
dump_filename_ = configuration->property(role_ + ".dump_filename", std::move(default_dump_filename));
acq_parameters.dump_filename = dump_filename_;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
acq_parameters.doppler_max = doppler_max_;
acq_parameters.sampled_ms = sampled_ms_;
acq_parameters.max_dwells = max_dwells_;

View File

@ -24,13 +24,18 @@
#include "gnss_sdr_fft.h"
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <glog/logging.h>
#include <gnuradio/gr_complex.h> // for gr_complex
#include <volk/volk.h> // for volk_32fc_conjugate_32fc
#include <algorithm> // for copy_n
#include <cmath> // for abs, pow, floor
#include <complex> // for complex
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
const ConfigurationInterface* configuration,
const std::string& role,
@ -47,10 +52,17 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
DLOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -23,8 +23,12 @@
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <glog/logging.h>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GpsL1CaPcpsAssistedAcquisition::GpsL1CaPcpsAssistedAcquisition(
const ConfigurationInterface* configuration,
@ -51,10 +55,17 @@ GpsL1CaPcpsAssistedAcquisition::GpsL1CaPcpsAssistedAcquisition(
int64_t fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000);
fs_in_ = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_min_ = configuration->property(role_ + ".doppler_min", -doppler_max_);
bool enable_monitor_output = configuration->property("AcquisitionMonitor.enable_monitor", false);

View File

@ -21,9 +21,14 @@
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -58,10 +63,17 @@ GpsL1CaPcpsOpenClAcquisition::GpsL1CaPcpsOpenClAcquisition(
fs_in_ = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
dump_ = configuration->property(role + ".dump", false);
doppler_max_ = configuration->property(role + ".doppler_max", 5000);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
sampled_ms_ = configuration->property(role + ".coherent_integration_time_ms", 1);
bit_transition_flag_ = configuration->property("Acquisition.bit_transition_flag", false);

View File

@ -22,9 +22,14 @@
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -58,10 +63,17 @@ GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
int64_t fs_in_deprecated = configuration_->property("GNSS-SDR.internal_fs_hz", 2048000);
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
// -- Find number of samples per spreading code -------------------------
code_length_ = static_cast<unsigned int>(round(fs_in_ / (GPS_L1_CA_CODE_RATE_CPS / GPS_L1_CA_CODE_LENGTH_CHIPS)));

View File

@ -21,9 +21,14 @@
#include "gnss_sdr_flags.h"
#include "gps_sdr_signal_replica.h"
#include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -63,10 +68,17 @@ GpsL1CaPcpsTongAcquisition::GpsL1CaPcpsTongAcquisition(
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
dump_filename_ = configuration_->property(role_ + ".dump_filename", std::move(default_dump_filename));
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
doppler_max_ = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
doppler_max_ = absl::GetFlag(FLAGS_doppler_max);
}
#endif
bool enable_monitor_output = configuration_->property("AcquisitionMonitor.enable_monitor", false);
// -- Find number of samples per spreading code -------------------------

View File

@ -23,9 +23,14 @@
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include "gps_l2c_signal_replica.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -52,10 +57,17 @@ GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
DLOG(INFO) << "Role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
item_type_ = acq_parameters_.item_type;

View File

@ -23,7 +23,6 @@
#include "gnss_sdr_fft.h"
#include "gnss_sdr_flags.h"
#include "gps_l2c_signal_replica.h"
#include <glog/logging.h>
#include <gnuradio/gr_complex.h> // for gr_complex
#include <volk/volk.h> // for volk_32fc_conjugate_32fc
#include <volk_gnsssdr/volk_gnsssdr_alloc.h>
@ -31,6 +30,12 @@
#include <cmath> // for abs, pow, floor
#include <complex> // for complex
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga(
const ConfigurationInterface* configuration,
const std::string& role,
@ -47,10 +52,17 @@ GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga(
LOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -23,8 +23,14 @@
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
#include "gps_l5_signal_replica.h"
#include <glog/logging.h>
#include <algorithm>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -51,10 +57,17 @@ GpsL5iPcpsAcquisition::GpsL5iPcpsAcquisition(
DLOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);

View File

@ -24,7 +24,6 @@
#include "gnss_sdr_fft.h"
#include "gnss_sdr_flags.h"
#include "gps_l5_signal_replica.h"
#include <glog/logging.h>
#include <gnuradio/gr_complex.h> // for gr_complex
#include <volk/volk.h> // for volk_32fc_conjugate_32fc
#include <volk_gnsssdr/volk_gnsssdr_alloc.h>
@ -32,6 +31,12 @@
#include <cmath> // for abs, pow, floor
#include <complex> // for complex
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga(
const ConfigurationInterface* configuration,
const std::string& role,
@ -48,10 +53,17 @@ GpsL5iPcpsAcquisitionFpga::GpsL5iPcpsAcquisitionFpga(
LOG(INFO) << "role " << role;
#if USE_GLOG_AND_GFLAGS
if (FLAGS_doppler_max != 0)
{
acq_parameters_.doppler_max = FLAGS_doppler_max;
}
#else
if (absl::GetFlag(FLAGS_doppler_max) != 0)
{
acq_parameters_.doppler_max = absl::GetFlag(FLAGS_doppler_max);
}
#endif
doppler_max_ = acq_parameters_.doppler_max;
doppler_step_ = static_cast<unsigned int>(acq_parameters_.doppler_step);
fs_in_ = acq_parameters_.fs_in;

View File

@ -65,11 +65,16 @@ target_link_libraries(acquisition_gr_blocks
Volk::volk
Volkgnsssdr::volkgnsssdr
PRIVATE
Gflags::gflags
Glog::glog
Matio::matio
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(acquisition_gr_blocks PRIVATE Gflags::gflags Glog::glog)
target_compile_definitions(acquisition_gr_blocks PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(acquisition_gr_blocks PRIVATE absl::flags absl::log)
endif()
target_include_directories(acquisition_gr_blocks
PRIVATE
${GNSSSDR_SOURCE_DIR}/src/core/receiver

View File

@ -23,7 +23,6 @@
#include "galileo_e5a_noncoherent_iq_acquisition_caf_cc.h"
#include "MATH_CONSTANTS.h"
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -32,6 +31,12 @@
#include <exception>
#include <sstream>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr galileo_e5a_noncoherentIQ_make_acquisition_caf_cc(
unsigned int sampled_ms,

View File

@ -17,7 +17,6 @@
#include "galileo_pcps_8ms_acquisition_cc.h"
#include "MATH_CONSTANTS.h"
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -26,6 +25,11 @@
#include <exception>
#include <sstream>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
galileo_pcps_8ms_acquisition_cc_sptr galileo_pcps_8ms_make_acquisition_cc(
uint32_t sampled_ms,

View File

@ -39,6 +39,12 @@
#include <iostream>
#include <map>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_acquisition_sptr pcps_make_acquisition(const Acq_Conf& conf_)
{
@ -687,12 +693,14 @@ void pcps_acquisition::acquisition_core(uint64_t samp_count)
d_gnss_synchro->Acq_delay_samples -= static_cast<double>(d_acq_parameters.resampler_latency_samples); // account the resampler filter latency
d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler);
d_gnss_synchro->Acq_samplestamp_samples = rint(static_cast<double>(samp_count) * d_acq_parameters.resampler_ratio);
d_gnss_synchro->fs = d_acq_parameters.resampled_fs;
}
else
{
d_gnss_synchro->Acq_delay_samples = static_cast<double>(std::fmod(static_cast<float>(indext), d_acq_parameters.samples_per_code));
d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler);
d_gnss_synchro->Acq_samplestamp_samples = samp_count;
d_gnss_synchro->fs = d_acq_parameters.fs_in;
}
}
else
@ -746,6 +754,7 @@ void pcps_acquisition::acquisition_core(uint64_t samp_count)
d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler);
d_gnss_synchro->Acq_samplestamp_samples = rint(static_cast<double>(samp_count) * d_acq_parameters.resampler_ratio);
d_gnss_synchro->Acq_doppler_step = d_acq_parameters.doppler_step2;
d_gnss_synchro->fs = d_acq_parameters.resampled_fs;
}
else
{
@ -753,6 +762,7 @@ void pcps_acquisition::acquisition_core(uint64_t samp_count)
d_gnss_synchro->Acq_doppler_hz = static_cast<double>(doppler);
d_gnss_synchro->Acq_samplestamp_samples = samp_count;
d_gnss_synchro->Acq_doppler_step = d_acq_parameters.doppler_step2;
d_gnss_synchro->fs = d_acq_parameters.fs_in;
}
}
@ -897,6 +907,18 @@ void pcps_acquisition::calculate_threshold()
}
void pcps_acquisition::set_doppler_center(int32_t doppler_center)
{
gr::thread::scoped_lock lock(d_setlock); // require mutex with work function called by the scheduler
if (doppler_center != d_doppler_center)
{
DLOG(INFO) << " Doppler assistance for Channel: " << d_channel << " => Doppler: " << doppler_center << "[Hz]";
d_doppler_center = doppler_center;
update_grid_doppler_wipeoffs();
}
}
int pcps_acquisition::general_work(int noutput_items __attribute__((unused)),
gr_vector_int& ninput_items,
gr_vector_const_void_star& input_items,

View File

@ -46,7 +46,6 @@
#include "channel_fsm.h"
#include "gnss_sdr_fft.h"
#include <armadillo>
#include <glog/logging.h>
#include <gnuradio/block.h>
#include <gnuradio/gr_complex.h> // for gr_complex
#include <gnuradio/thread/thread.h> // for scoped_lock
@ -60,6 +59,7 @@
#include <string>
#include <utility>
#if HAS_STD_SPAN
#include <span>
namespace own = std;
@ -196,16 +196,7 @@ public:
* \brief Set Doppler center frequency for the grid search. It will refresh the Doppler grid.
* \param doppler_center - Frequency center of the search grid [Hz].
*/
inline void set_doppler_center(int32_t doppler_center)
{
gr::thread::scoped_lock lock(d_setlock); // require mutex with work function called by the scheduler
if (doppler_center != d_doppler_center)
{
DLOG(INFO) << " Doppler assistance for Channel: " << d_channel << " => Doppler: " << doppler_center << "[Hz]";
d_doppler_center = doppler_center;
update_grid_doppler_wipeoffs();
}
}
void set_doppler_center(int32_t doppler_center);
/*!
* \brief Parallel Code Phase Search Acquisition signal processing.

View File

@ -21,7 +21,6 @@
#include "gnss_sdr_create_directory.h"
#include "gnss_sdr_filesystem.h"
#include "gps_sdr_signal_replica.h"
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <matio.h>
#include <volk/volk.h>
@ -30,6 +29,12 @@
#include <sstream>
#include <vector>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_acquisition_fine_doppler_cc_sptr pcps_make_acquisition_fine_doppler_cc(const Acq_Conf &conf_)
{

View File

@ -21,12 +21,17 @@
#include "pcps_acquisition_fpga.h"
#include "gnss_sdr_make_unique.h" // for std::make_unique in C++11
#include "gnss_synchro.h"
#include <glog/logging.h>
#include <cmath> // for ceil
#include <iostream> // for operator<<
#include <utility> // for move
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(Acq_Conf_Fpga& conf_)
{
return pcps_acquisition_fpga_sptr(new pcps_acquisition_fpga(conf_));
@ -288,6 +293,16 @@ void pcps_acquisition_fpga::set_active(bool active)
}
void pcps_acquisition_fpga::set_doppler_center(int32_t doppler_center)
{
if (doppler_center != d_doppler_center)
{
DLOG(INFO) << " Doppler assistance for Channel: " << d_channel << " => Doppler: " << doppler_center << "[Hz]";
d_doppler_center = doppler_center;
}
}
void pcps_acquisition_fpga::reset_acquisition()
{
// this function triggers a HW reset of the FPGA PL.

View File

@ -29,7 +29,6 @@
#include "acq_conf_fpga.h"
#include "channel_fsm.h"
#include "fpga_acquisition.h"
#include <glog/logging.h>
#include <cstdint> // for uint32_t
#include <memory> // for shared_ptr
#include <string> // for string
@ -156,14 +155,7 @@ public:
* \brief Set Doppler center frequency for the grid search. It will refresh the Doppler grid.
* \param doppler_center - Frequency center of the search grid [Hz].
*/
inline void set_doppler_center(int32_t doppler_center)
{
if (doppler_center != d_doppler_center)
{
DLOG(INFO) << " Doppler assistance for Channel: " << d_channel << " => Doppler: " << doppler_center << "[Hz]";
d_doppler_center = doppler_center;
}
}
void set_doppler_center(int32_t doppler_center);
/*!
* \brief This function triggers a HW reset of the FPGA PL.

View File

@ -20,7 +20,6 @@
#include "MATH_CONSTANTS.h"
#include "concurrent_map.h"
#include "gps_acq_assist.h"
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -30,6 +29,11 @@
#include <sstream>
#include <utility>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
extern Concurrent_Map<Gps_Acq_Assist> global_gps_acq_assist_map;

View File

@ -22,7 +22,6 @@
#include "pcps_cccwsr_acquisition_cc.h"
#include "MATH_CONSTANTS.h" // TWO_PI
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -32,6 +31,12 @@
#include <sstream>
#include <utility>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_cccwsr_acquisition_cc_sptr pcps_cccwsr_make_acquisition_cc(
uint32_t sampled_ms,

View File

@ -38,7 +38,6 @@
#include "MATH_CONSTANTS.h" // TWO_PI
#include "opencl/fft_base_kernels.h"
#include "opencl/fft_internal.h"
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -50,6 +49,12 @@
#include <sstream>
#include <utility>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_opencl_acquisition_cc_sptr pcps_make_opencl_acquisition_cc(
uint32_t sampled_ms, uint32_t max_dwells,

View File

@ -16,7 +16,6 @@
#include "pcps_quicksync_acquisition_cc.h"
#include "MATH_CONSTANTS.h"
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -25,6 +24,12 @@
#include <exception>
#include <sstream>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_quicksync_acquisition_cc_sptr pcps_quicksync_make_acquisition_cc(
uint32_t folding_factor,

View File

@ -36,7 +36,6 @@
#include "pcps_tong_acquisition_cc.h"
#include "MATH_CONSTANTS.h" // for TWO_PI
#include <glog/logging.h>
#include <gnuradio/io_signature.h>
#include <volk/volk.h>
#include <volk_gnsssdr/volk_gnsssdr.h>
@ -45,6 +44,12 @@
#include <exception>
#include <sstream>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
pcps_tong_acquisition_cc_sptr pcps_tong_make_acquisition_cc(
uint32_t sampled_ms,

View File

@ -38,12 +38,17 @@ target_link_libraries(acquisition_libs
INTERFACE
Gnuradio::runtime
PRIVATE
Gflags::gflags
Glog::glog
algorithms_libs
core_system_parameters
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(acquisition_libs PRIVATE Gflags::gflags Glog::glog)
target_compile_definitions(acquisition_libs PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(acquisition_libs PRIVATE absl::flags absl::log)
endif()
if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE)
set_target_properties(acquisition_libs

View File

@ -17,9 +17,14 @@
#include "acq_conf.h"
#include "item_type_helpers.h"
#include <glog/logging.h>
#include <cmath>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
void Acq_Conf::SetFromConfiguration(const ConfigurationInterface *configuration,
const std::string &role, double chip_rate, double opt_freq)

View File

@ -18,11 +18,16 @@
#include "acq_conf_fpga.h"
#include "item_type_helpers.h"
#include "uio_fpga.h"
#include <glog/logging.h>
#include <cmath>
#include <iostream>
#include <utility>
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
void Acq_Conf_Fpga::SetFromConfiguration(const ConfigurationInterface *configuration,
const std::string &role, uint32_t sel_queue_fpga, uint32_t blk_exp, uint32_t downsampling_factor_default, double chip_rate, double code_length_chips)
{

View File

@ -21,7 +21,6 @@
#include "fpga_acquisition.h"
#include "MATH_CONSTANTS.h" // for TWO_PI
#include <glog/logging.h> // for LOG
#include <cmath> // for log2
#include <fcntl.h> // libraries used by the GIPO
#include <iostream> // for operator<<
@ -29,6 +28,11 @@
#include <unistd.h> // for write, close, read, ssize_t
#include <utility> // for move
#if USE_GLOG_AND_GFLAGS
#include <glog/logging.h>
#else
#include <absl/log/log.h>
#endif
#ifndef TEMP_FAILURE_RETRY
#define TEMP_FAILURE_RETRY(exp) \

View File

@ -26,9 +26,15 @@ target_link_libraries(channel_adapters
channel_libs
PRIVATE
gnss_sdr_flags
Glog::glog
)
if(ENABLE_GLOG_AND_GFLAGS)
target_link_libraries(channel_adapters PRIVATE Glog::glog)
target_compile_definitions(channel_adapters PRIVATE -DUSE_GLOG_AND_GFLAGS=1)
else()
target_link_libraries(channel_adapters PRIVATE absl::flags absl::log)
endif()
target_include_directories(channel_adapters
PUBLIC
${GNSSSDR_SOURCE_DIR}/src/core/interfaces

Some files were not shown because too many files have changed in this diff Show More