diff --git a/.clang-format b/.clang-format
index b1e46057f..f0d042c27 100644
--- a/.clang-format
+++ b/.clang-format
@@ -1,7 +1,7 @@
---
Language: Cpp
# BasedOnStyle: Google
-# More info: http://clang.llvm.org/docs/ClangFormatStyleOptions.html
+# More info: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
@@ -21,7 +21,7 @@ AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackParameters: true
-BraceWrapping:
+BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
@@ -47,7 +47,7 @@ DerivePointerAlignment: true
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
-IncludeCategories:
+IncludeCategories:
- Regex: '^<.*\.h>'
Priority: 1
- Regex: '^<.*'
@@ -88,4 +88,3 @@ Standard: Auto
TabWidth: 8
UseTab: Never
...
-
diff --git a/AUTHORS b/AUTHORS
index 17aa5fa4b..0416cfe97 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,34 +1,34 @@
GNSS-SDR Authorship
------------------------------------------------------------------------------
-The GNSS-SDR project is hosted and sponsored by the Centre Tecnologic de
-Telecomunicacions de Catalunya (CTTC), a non-profit research foundation located
-in Castelldefels (40.396764 N, 3.713379 E), 20 km south of Barcelona, Spain.
-GNSS-SDR is the by-product of GNSS research conducted at the Communications
-Systems Division of CTTC, and it is the combined effort of students,
+The GNSS-SDR project is hosted and sponsored by the Centre Tecnologic de
+Telecomunicacions de Catalunya (CTTC), a non-profit research foundation located
+in Castelldefels (40.396764 N, 3.713379 E), 20 km south of Barcelona, Spain.
+GNSS-SDR is the by-product of GNSS research conducted at the Communications
+Systems Division of CTTC, and it is the combined effort of students,
software engineers and researchers from different institutions around the World.
Contact Information
------------------------------------------------------------------------------
- GNSS-SDR Homepage
+ GNSS-SDR Homepage
----------------------------
- http://gnss-sdr.org
-
-
+ https://gnss-sdr.org
+
+
CTTC Homepage
----------------------------
http://www.cttc.cat
-
-
- Mailing Lists
+
+
+ Mailing Lists
----------------------------
- gnss-sdr-developers@lists.sourceforge.net
- http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers
-
-
+ gnss-sdr-developers@lists.sourceforge.net
+ https://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers
+
+
Email
----------------------------
- Inquiries beyond the mailing list can be sent to carles.fernandez@cttc.cat
+ Inquiries beyond the mailing list can be sent to carles.fernandez@cttc.cat
List of authors
@@ -40,7 +40,7 @@ Antonio Ramos antonio.ramos@cttc.es Developer
Marc Majoral marc.majoral@cttc.cat Developer
Pau Closas pau.closas@northeastern.edu Consultant
Jordi Vila-Valls jordi.vila@cttc.cat Consultant
-Carlos Aviles carlos.avilesr@googlemail.com Contributor
+Carlos Aviles carlos.avilesr@googlemail.com Contributor
David Pubill david.pubill@cttc.cat Contributor
Mara Branzanti mara.branzanti@gmail.com Contributor
Marc Molina marc.molina.pena@gmail.com Contributor
@@ -54,6 +54,3 @@ Fran Fabra fabra@ice.csic.es Contributor
Cillian O'Driscoll cillian.odriscoll@gmail.com Contributor
Gabriel Araujo gabriel.araujo.5000@gmail.com Contributor
Carlos Paniego carpanie@hotmail.com Artwork
-
-
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 789a19974..ccce85891 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
########################################################################
@@ -51,6 +51,8 @@ option(ENABLE_ARRAY "Enable the use of CTTC's antenna array front-end as signal
option(ENABLE_GN3S "Enable the use of the GN3S dongle as signal source (experimental)" OFF)
option(ENABLE_PLUTOSDR "Enable the use of ADALM-PLUTO Evaluation Boards (Analog Devices Inc.), requires gr-iio" OFF)
option(ENABLE_FMCOMMS2 "Enable the use of FMCOMMS4-EBZ + ZedBoard hardware, requires gr-iio" OFF)
+option(ENABLE_AD9361 "Enable the use of AD9361 directo to FPGA hardware, requires libiio" OFF)
+option(ENABLE_RAW_UDP "Enable the use of high-optimized custom UDP packet sample source, requires libpcap" OFF)
# Performance analysis tools
option(ENABLE_GPERFTOOLS "Enable linking to Gperftools libraries (tcmalloc and profiler)" OFF)
@@ -353,7 +355,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
message(STATUS "Your GCC version is too old and does not support some C++ features required by GNSS-SDR. GCC version must be at least ${GNSSSDR_GCC_MIN_VERSION}")
if(${LINUX_DISTRIBUTION} MATCHES "Ubuntu")
if(${LINUX_VER} MATCHES "12.04")
- message(STATUS "For instructions on how to upgrade GCC, check http://askubuntu.com/a/271561")
+ message(STATUS "For instructions on how to upgrade GCC, check https://askubuntu.com/a/271561")
endif(${LINUX_VER} MATCHES "12.04")
endif(${LINUX_DISTRIBUTION} MATCHES "Ubuntu")
message(FATAL_ERROR "Fatal error: GCC >= ${GNSSSDR_GCC_MIN_VERSION} required.")
@@ -465,7 +467,7 @@ endif(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING)
################################################################################
-# Boost - http://www.boost.org
+# Boost - https://www.boost.org
################################################################################
if(UNIX AND EXISTS "/usr/lib64")
list(APPEND BOOST_LIBRARYDIR "/usr/lib64") # Fedora 64-bit fix
@@ -489,7 +491,7 @@ endif(NOT Boost_FOUND)
################################################################################
-# GNU Radio - http://gnuradio.org
+# GNU Radio - https://gnuradio.org
################################################################################
set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS FFT FILTER PMT)
find_package(Gnuradio)
@@ -824,9 +826,9 @@ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/c
# Ensure that aclocal and libtool are present
if(OS_IS_LINUX)
if(EXISTS "/usr/bin/libtoolize")
- if(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
+ if(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
# Everything ok, we can move on
- else(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
+ else(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
message(" aclocal has not been found.")
message(" You can try to install it by typing:")
if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
@@ -837,7 +839,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/c
message(" sudo apt-get install automake")
endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
message(FATAL_ERROR "aclocal is required to build glog from source")
- endif(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
+ endif(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
else(EXISTS "/usr/bin/libtoolize")
message(" libtool has not been found.")
message(" You can try to install it by typing:")
@@ -1031,7 +1033,7 @@ endif(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO)
################################################################################
-# GnuTLS - http://www.gnutls.org/
+# GnuTLS - https://www.gnutls.org/
################################################################################
find_package(GnuTLS)
find_library(GNUTLS_OPENSSL_LIBRARY NAMES gnutls-openssl libgnutls-openssl.so.27
@@ -1118,9 +1120,9 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS
endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
message(FATAL_ERROR "libtool is required to build matio from source")
endif(NOT EXISTS "/usr/bin/libtoolize")
- if(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
+ if(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
message(STATUS "Automake found.")
- else(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
+ else(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
message(" aclocal has not been found.")
message(" You can try to install it by typing:")
if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
@@ -1131,7 +1133,7 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS
message(" sudo apt-get install automake")
endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
message(FATAL_ERROR "aclocal is required to build matio from source")
- endif(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
+ endif(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10")
endif(OS_IS_LINUX)
find_package(HDF5)
if(HDF5_FOUND)
@@ -1202,7 +1204,7 @@ if(ENABLE_UHD)
set(ENABLE_UHD OFF)
message(STATUS " The USRP Hardware Driver (UHD) signal source will not be built,")
message(STATUS " so all USRP-based front-ends will not be usable.")
- message(STATUS " Please check http://files.ettus.com/manual/")
+ message(STATUS " Please check https://files.ettus.com/manual/")
else(NOT UHD_FOUND)
set(GR_REQUIRED_COMPONENTS UHD)
find_package(Gnuradio)
@@ -1320,6 +1322,16 @@ else(ENABLE_CUDA)
message(STATUS "Enable it with 'cmake -DENABLE_CUDA=ON ../' to add support for GPU-based acceleration using CUDA." )
endif(ENABLE_CUDA)
+###############################################################################
+# CUSTOM UDP PACKET SOURCE (OPTIONAL)
+###############################################################################
+if(ENABLE_RAW_UDP)
+ message(STATUS "High-optimized custom UDP ip packet source will be enabled." )
+ message(STATUS "You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ../'" )
+else(ENABLE_RAW_UDP)
+ message(STATUS "High-optimized custom UDP ip packet source will be enabled." )
+ message(STATUS "You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ../'" )
+endif(ENABLE_RAW_UDP)
###############################################################################
@@ -1429,7 +1441,7 @@ if(ENABLE_GPERFTOOLS)
endif(ENABLE_GPERFTOOLS)
if(ENABLE_GPERFTOOLS)
# Set GPerftools related flags if it is available
- # See http://gperftools.googlecode.com/svn/trunk/README
+ # See https://github.com/gperftools/gperftools/blob/master/README
if(GPERFTOOLS_FOUND)
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
@@ -1454,7 +1466,6 @@ if(ENABLE_GPROF)
endif(ENABLE_GPROF)
-
########################################################################
# Set compiler flags
########################################################################
@@ -1471,7 +1482,7 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
# set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++17")
# endif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0")
endif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1.1")
- set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -Wall -Wextra") #Add warning flags: For "-Wall" see http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
+ set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -Wall -Wextra") #Add warning flags: For "-Wall" see https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
# Support of C++17 is still not possible due to pm_remez.h (solved in GNU Radio 3.8)
@@ -1514,7 +1525,7 @@ if(NOT (CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) AND NOT (CMAKE_CXX_COMPILER_ID M
endif(NOT (CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
# Processor-architecture related flags
-# See http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
+# See https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
if (NOT ARCH_COMPILER_FLAGS)
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
if(OS_IS_MACOSX)
@@ -1542,7 +1553,7 @@ set(MY_CXX_FLAGS "${MY_CXX_FLAGS} ${ARCH_COMPILER_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_CXX_FLAGS}")
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
- #http://gcc.gnu.org/wiki/Visibility
+ # https://gcc.gnu.org/wiki/Visibility
add_definitions(-fvisibility=hidden)
endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 33e45b9d5..8db189904 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -68,7 +68,7 @@ members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at [http://contributor-covenant.org/version/1/4][version]
+available at [https://contributor-covenant.org/version/1/4][version]
-[homepage]: http://contributor-covenant.org
-[version]: http://contributor-covenant.org/version/1/4/
+[homepage]: https://contributor-covenant.org
+[version]: https://contributor-covenant.org/version/1/4/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 262feeb0c..06f37b0a2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -128,7 +128,7 @@ $ git pull --rebase upstream next
### How to submit a pull request
-Before submitting your code, please be sure to [apply clang-format](http://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting).
+Before submitting your code, please be sure to [apply clang-format](https://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting).
When the contribution is ready, you can [submit a pull
request](https://github.com/gnss-sdr/gnss-sdr/compare/). Head to your
@@ -146,24 +146,24 @@ accepted:
* Avoid platform-dependent code. If your code require external
dependencies, they must be available as packages in [Debian OldStable](https://wiki.debian.org/DebianOldStable).
* Write tests.
- * Follow our [coding style guide](http://gnss-sdr.org/coding-style/).
+ * Follow our [coding style guide](https://gnss-sdr.org/coding-style/).
* Write a descriptive and detailed summary. Please consider that
reviewing pull requests is hard, so include as much information as
possible to make your pull request's intent clear.
For more details about Git usage, please check out [our
-tutorial](http://gnss-sdr.org/docs/tutorials/using-git/).
+tutorial](https://gnss-sdr.org/docs/tutorials/using-git/).
## Contributing to the website
-The content of http://gnss-sdr.org lives in a GitHub repository at
+The content of https://gnss-sdr.org lives in a GitHub repository at
https://github.com/gnss-sdr/geniuss-place
You can fork that repository, reproduce the entire website on your
computer using [Jekyll](https://jekyllrb.com/), do changes and submit
pull requests, just as explained above. For more details, please check
-out [how to contribute](http://gnss-sdr.org/contribute/).
+out [how to contribute](https://gnss-sdr.org/contribute/).
Last but not the least, you can leave your comments on the website.
@@ -173,6 +173,6 @@ Last but not the least, you can leave your comments on the website.
![GeNiuSS
-contributes](http://gnss-sdr.org/assets/images/geniuss-contribute.png)
+contributes](https://gnss-sdr.org/assets/images/geniuss-contribute.png)
Thanks for your contribution to GNSS-SDR!
diff --git a/COPYING b/COPYING
index 818433ecc..8859f3d09 100644
--- a/COPYING
+++ b/COPYING
@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see .
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
-.
+.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
-.
+.
diff --git a/MANIFEST.md b/MANIFEST.md
index 1248e47aa..ad39cfa7a 100644
--- a/MANIFEST.md
+++ b/MANIFEST.md
@@ -14,13 +14,12 @@ copyright_owner:
dependencies: gnuradio (>= 3.7.3), armadillo, gflags, glog, gnutls
license: GPLv3+
repo: https://github.com/gnss-sdr/gnss-sdr
-website: http://gnss-sdr.org
-icon: http://a.fsdn.com/con/app/proj/gnss-sdr/screenshots/logo400x400.jpg
+website: https://gnss-sdr.org
+icon: https://a.fsdn.com/con/app/proj/gnss-sdr/screenshots/logo400x400.jpg
---
-Global Navigation Satellite Systems receiver defined by software. It performs all the signal
-processing from raw signal samples up to the computation of the Position-Velocity-Time solution,
-including code and phase observables. It is able to work with raw data files or, if there is
-computational power enough, in real time with suitable radiofrequency front-ends. This software
+Global Navigation Satellite Systems receiver defined by software. It performs all the signal
+processing from raw signal samples up to the computation of the Position-Velocity-Time solution,
+including code and phase observables. It is able to work with raw data files or, if there is
+computational power enough, in real time with suitable radiofrequency front-ends. This software
is mainly developed at [CTTC](http://www.cttc.es "Centre Tecnologic de Telecomunicacions de Catalunya")
-with contributions from around the world. More info at [gnss-sdr.org](http://gnss-sdr.org "GNSS-SDR's Homepage").
-
+with contributions from around the world. More info at [gnss-sdr.org](https://gnss-sdr.org "GNSS-SDR's Homepage").
diff --git a/README.md b/README.md
index 270eaf8d5..6c8773727 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![](./docs/doxygen/images/gnss-sdr_logo.png)](http://gnss-sdr.org "GNSS-SDR website")
+[![](./docs/doxygen/images/gnss-sdr_logo.png)](https://gnss-sdr.org "GNSS-SDR website")
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
@@ -19,14 +19,14 @@ In the L5 band (centered at 1176.45 MHz):
- 🛰 GPS L5 :white_check_mark:
- 🛰 Galileo E5a :white_check_mark:
-GNSS-SDR provides interfaces for a wide range of radio frequency front-ends, generates processing outputs in standard formats, allows for the full inspection of the whole signal processing chain, and offers a framework for the development of new features. Please visit [http://gnss-sdr.org](http://gnss-sdr.org "GNSS-SDR website") for more information about this open source software-defined GNSS receiver.
+GNSS-SDR provides interfaces for a wide range of radio frequency front-ends, generates processing outputs in standard formats, allows for the full inspection of the whole signal processing chain, and offers a framework for the development of new features. Please visit [https://gnss-sdr.org](https://gnss-sdr.org "GNSS-SDR website") for more information about this open source software-defined GNSS receiver.
# How to build GNSS-SDR
-This section describes how to set up the compilation environment in GNU/Linux or [macOS / Mac OS X](#macosx), and to build GNSS-SDR. See also our [build and install page](http://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install").
+This section describes how to set up the compilation environment in GNU/Linux or [macOS / Mac OS X](#macosx), and to build GNSS-SDR. See also our [build and install page](https://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install").
GNU/Linux
@@ -64,7 +64,7 @@ $ sudo apt-get install build-essential cmake git libboost-dev libboost-date-time
libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev \
libboost-serialization-dev liblog4cpp5-dev libuhd-dev gnuradio-dev gr-osmosdr \
libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \
- libgnutls-openssl-dev python-mako python-six libmatio-dev googletest
+ libgnutls-openssl-dev libpcap-dev python-mako python-six libmatio-dev googletest
~~~~~~
Please note that `googletest` was named `libgtest-dev` in distributions older than Debian 9 "stretch" and Ubuntu 17.04 "zesty".
@@ -85,7 +85,7 @@ $ sudo yum install make automake gcc gcc-c++ kernel-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 matio-devel armadillo-devel gflags-devel \
- glog-devel openssl-devel python-mako python-six
+ glog-devel openssl-devel libpcap-devel python-mako python-six
~~~~~~
Once you have installed these packages, you can jump directly to [download the source code and build GNSS-SDR](#download-and-build-linux).
@@ -102,7 +102,7 @@ $ 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 python-mako python-six
+ armadillo-devel openssl-devel libpcap-devel python-mako python-six
~~~~~~
Once you have installed these packages, you can jump directly to [download the source code and build GNSS-SDR](#download-and-build-linux).
@@ -114,14 +114,14 @@ If you are using Arch Linux (with base-devel group installed):
~~~~~~
$ pacman -S cmake git boost boost-libs log4cpp libvolk gnuradio gnuradio-osmosdr \
blas lapack gflags google-glog gnutls openssl python2-mako python2-six \
- libmatio gtest
+ libmatio libpcap gtest
~~~~~~
Once you have installed these packages, you can jump directly to [download the source code and build GNSS-SDR](#download-and-build-linux).
### Alternative 2: Install dependencies using PyBOMBS
-This option is adequate if you are interested in development, in working with the most recent versions of software dependencies, want more fine tuning on the installed versions, or simply in building everything from the scratch just for the fun of it. In such cases, we recommend to use [PyBOMBS](http://gnuradio.org/pybombs "Python Build Overlay Managed Bundle System wiki") (Python Build Overlay Managed Bundle System), GNU Radio's meta-package manager tool that installs software from source, or whatever the local package manager is, that automatically does all the work for you. Please take a look at the configuration options and general PyBOMBS usage at https://github.com/gnuradio/pybombs. Here we provide a quick step-by-step tutorial.
+This option is adequate if you are interested in development, in working with the most recent versions of software dependencies, want more fine tuning on the installed versions, or simply in building everything from the scratch just for the fun of it. In such cases, we recommend to use [PyBOMBS](https://github.com/gnuradio/pybombs "Python Build Overlay Managed Bundle System") (Python Build Overlay Managed Bundle System), GNU Radio's meta-package manager tool that installs software from source, or whatever the local package manager is, that automatically does all the work for you. Please take a look at the configuration options and general PyBOMBS usage at https://github.com/gnuradio/pybombs. Here we provide a quick step-by-step tutorial.
First of all, install some basic packages:
@@ -185,15 +185,15 @@ or manually as explained below, and then please follow instructions on how to [d
$ sudo apt-get install libopenblas-dev liblapack-dev # For Debian/Ubuntu/LinuxMint
$ sudo yum install lapack-devel blas-devel # For Fedora/CentOS/RHEL
$ sudo zypper install lapack-devel blas-devel # For OpenSUSE
-$ wget http://sourceforge.net/projects/arma/files/armadillo-8.200.2.tar.xz
-$ tar xvfz armadillo-8.200.2.tar.xz
-$ cd armadillo-8.200.2
+$ wget https://sourceforge.net/projects/arma/files/armadillo-8.500.0.tar.xz
+$ tar xvfz armadillo-8.500.0.tar.xz
+$ cd armadillo-8.500.0
$ cmake .
$ make
$ sudo make install
~~~~~~
-The full stop separated from ```cmake``` by a space is important. [CMake](http://www.cmake.org/ "CMake's Homepage") will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS).
+The full stop separated from ```cmake``` by a space is important. [CMake](https://cmake.org/ "CMake's Homepage") will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS).
@@ -245,7 +245,7 @@ changing `/home/username/googletest-release-1.8.0/googletest` by the actual dire
-#### Install the [GnuTLS](http://www.gnutls.org/ "GnuTLS's Homepage") or [OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage") libraries:
+#### Install the [GnuTLS](https://www.gnutls.org/ "GnuTLS's Homepage") or [OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage") libraries:
~~~~~~
$ sudo apt-get install libgnutls-openssl-dev # For Debian/Ubuntu/LinuxMint
@@ -286,7 +286,7 @@ By default, you will be in the 'master' branch of the Git repository, which corr
$ git checkout next
~~~~~~
-More information about GNSS-SDR-specific Git usage and pointers to further readings can be found at our [Git tutorial](http://gnss-sdr.org/docs/tutorials/using-git/ "Using Git").
+More information about GNSS-SDR-specific Git usage and pointers to further readings can be found at our [Git tutorial](https://gnss-sdr.org/docs/tutorials/using-git/ "Using Git").
### Build and install GNSS-SDR
@@ -507,7 +507,7 @@ $ sudo make install
Using this option, all SIMD instructions are exclusively accessed via VOLK, which automatically includes versions of each function for different SIMD instruction sets, then detects at runtime which to use, or if there are none, substitutes a generic, non-SIMD implementation.
-More details can be found in our tutorial about [GNSS-SDR configuration options at building time](http://gnss-sdr.org/docs/tutorials/using-git/ "Configuration options at building time").
+More details can be found in our tutorial about [GNSS-SDR configuration options at building time](https://gnss-sdr.org/docs/tutorials/using-git/ "Configuration options at building time").
macOS and Mac OS X
@@ -516,7 +516,7 @@ More details can be found in our tutorial about [GNSS-SDR configuration options
### macOS 10.13 (High Sierra) and 10.12 (Sierra), Mac OS X 10.11 (El Capitan), 10.10 (Yosemite) and 10.9 (Mavericks).
-If you still have not installed [Xcode](http://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type:
+If you still have not installed [Xcode](https://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type:
~~~~~~
$ xcode-select --install
@@ -532,7 +532,7 @@ Software pre-requisites can be installed using either [Macports](#macports) or [
#### Macports
-First, [install Macports](http://www.macports.org/install.php). If you are upgrading from a previous installation, please follow the [migration rules](http://trac.macports.org/wiki/Migration).
+First, [install Macports](https://www.macports.org/install.php). If you are upgrading from a previous installation, please follow the [migration rules](https://trac.macports.org/wiki/Migration).
In a terminal, type:
@@ -625,7 +625,7 @@ GNSS-SDR comes with a library which is a module of the Vector-Optimized Library
###### 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") or [Homebrew](http://brew.sh/ "Homebrew"). 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 configuration system by defining the `PYTHON_EXECUTABLE` variable as:
+GNU Radio and other dependencies can also be installed using other package managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink") or [Homebrew](https://brew.sh/ "Homebrew"). 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 configuration system by defining the `PYTHON_EXECUTABLE` variable as:
~~~~~~
cmake -DPYTHON_EXECUTABLE=/path/to/bin/python ../
@@ -646,9 +646,9 @@ Other builds
---------
* **Docker container**: A technology providing operating-system-level virtualization to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. Visit [https://github.com/carlesfernandez/docker-gnsssdr](https://github.com/carlesfernandez/docker-gnsssdr) or [https://github.com/carlesfernandez/docker-pybombs-gnsssdr](https://github.com/carlesfernandez/docker-pybombs-gnsssdr) for instructions.
-* **Snap packages**: [Snaps](http://snapcraft.io) are universal Linux packages aimed to work on any distribution or device, from IoT devices to servers, desktops to mobile devices. Visit [https://github.com/carlesfernandez/snapcraft-sandbox](https://github.com/carlesfernandez/snapcraft-sandbox) for instructions.
+* **Snap packages**: [Snaps](https://snapcraft.io) are universal Linux packages aimed to work on any distribution or device, from IoT devices to servers, desktops to mobile devices. Visit [https://github.com/carlesfernandez/snapcraft-sandbox](https://github.com/carlesfernandez/snapcraft-sandbox) for instructions.
-* **GNSS-SDR in embedded platforms**: we provide a Software Development Kit (SDK) based on [OpenEmbedded](http://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 a Zedboard or a Raspberry Pi 3. Visit [Cross-compiling GNSS-SDR](http://gnss-sdr.org/docs/tutorials/cross-compiling/) for instructions.
+* **GNSS-SDR in embedded platforms**: we provide a Software Development Kit (SDK) based on [OpenEmbedded](http://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 a Zedboard or a Raspberry Pi 3. Visit [Cross-compiling GNSS-SDR](https://gnss-sdr.org/docs/tutorials/cross-compiling/) for instructions.
Updating GNSS-SDR
@@ -680,9 +680,9 @@ Before rebuilding the source code, it is safe (and recommended) to remove the re
$ rm -rf gnss-sdr/build/*
~~~~~~
-If you are interested in contributing to the development of GNSS-SDR, please check out [how to do it](http://gnss-sdr.org/contribute/ "How to contribute to GNSS-SDR source code").
+If you are interested in contributing to the development of GNSS-SDR, please check out [how to do it](https://gnss-sdr.org/contribute/ "How to contribute to GNSS-SDR source code").
-There is a more controlled way to upgrade your repository, which is to use the Git commands ```fetch``` and ```merge```, as described in our [Git Tutorial](http://gnss-sdr.org/docs/tutorials/using-git/ "Using Git").
+There is a more controlled way to upgrade your repository, which is to use the Git commands ```fetch``` and ```merge```, as described in our [Git Tutorial](https://gnss-sdr.org/docs/tutorials/using-git/ "Using Git").
@@ -694,11 +694,11 @@ Getting started
1. After building the code, you will find the ```gnss-sdr``` executable file at gnss-sdr/install. You can make it available everywhere else by ```sudo make install```. Run the profilers ```volk_profile``` and ```volk_gnsssdr_profile``` for testing all available VOLK kernels for each architecture supported by your processor. This only has to be done once.
2. In post-processing mode, you have to provide a captured GNSS signal file.
1. The signal file can be easily recorded using the GNU Radio file sink in ```gr_complex``` mode.
- 2. You will need a GPS active antenna, a [USRP](http://www.ettus.com/product) and a suitable USRP daughter board to receive GPS L1 C/A signals. GNSS-SDR require to have at least 2 MHz of bandwidth in 1.57542 GHz. (remember to enable the DC bias with the daughter board jumper).
+ 2. You will need a GPS active antenna, a [USRP](https://www.ettus.com/product) and a suitable USRP daughter board to receive GPS L1 C/A signals. GNSS-SDR require to have at least 2 MHz of bandwidth in 1.57542 GHz. (remember to enable the DC bias with the daughter board jumper).
We use a [DBSRX2](https://www.ettus.com/product/details/DBSRX2) to do the task, but you can try the newer Ettus' daughter boards as well.
3. The easiest way to capture a signal file is to use the GNU Radio Companion GUI. Only two blocks are needed: a USRP signal source connected to complex float file sink. You need to tune the USRP central frequency and decimation factor using USRP signal source properties box. We suggest using a decimation factor of 20 if you use the USRP2. This will give you 100/20 = 5 MSPS which will be enough to receive GPS L1 C/A signals. The front-end gain should also be configured. In our test with the DBSRX2 we obtained good results with ```G=50```.
4. Capture at least 80 seconds of signal in open sky conditions. During the process, be aware of USRP driver buffer underruns messages. If your hard disk is not fast enough to write data at this speed you can capture to a virtual RAM drive. 80 seconds of signal at 5 MSPS occupies less than 3 Gbytes using ```gr_complex```.
- 5. If you have no access to an RF front-end, you can download a sample raw data file (that contains GPS and Galileo signals) from [here](http://sourceforge.net/projects/gnss-sdr/files/data/).
+ 5. If you have no access to an RF front-end, you can download a sample raw data file (that contains GPS and Galileo signals) from [here](https://sourceforge.net/projects/gnss-sdr/files/data/).
3. You are ready to configure the receiver to use your captured file among other parameters:
1. The default configuration file resides at [/usr/local/share/gnss-sdr/conf/default.conf](./conf/gnss-sdr.conf).
2. You need to review/modify at least the following settings:
@@ -712,7 +712,7 @@ We use a [DBSRX2](https://www.ettus.com/product/details/DBSRX2) to do the task,
```$ gnss-sdr --config_file=/path/to/my_receiver.conf```
The program reports the current status in text mode, directly to the terminal window. If all goes well, and GNSS-SDR is able to successfully track and decode at least 4 satellites, you will get PVT fixes. The program will write .kml, .geojson and RINEX files in the folder from which ```gnss-sdr``` was run. In addition to the console output, GNSS-SDR also writes log files at /tmp/ (configurable with the commandline flag ```./gnss-sdr --log_dir=/path/to/log```).
-For more information, check out our [quick start guide](http://gnss-sdr.org/quick-start-guide/).
+For more information, check out our [quick start guide](https://gnss-sdr.org/quick-start-guide/).
Using GNSS-SDR
@@ -764,7 +764,7 @@ The name of these parameters can be anything but one reserved word: implementati
SignalConditioner.implementation=Pass_Through
~~~~~~
-Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in the [INI format](http://en.wikipedia.org/wiki/INI_file)).
+Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in the [INI format](https://en.wikipedia.org/wiki/INI_file)).
@@ -772,7 +772,7 @@ Since the configuration is just a set of property names and values without any m
Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called [GNSSBlockFactory](./src/core/receiver/gnss_block_factory.h). This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration enables extending the application capacities in a high degree. It also allows producing fully customized receivers, for instance a testbed for acquisition algorithms, and to place observers at any point of the receiver chain.
-More information can be found at the [Control Plane page](http://gnss-sdr.org/docs/control-plane/).
+More information can be found at the [Control Plane page](https://gnss-sdr.org/docs/control-plane/).
Signal Processing plane
@@ -800,7 +800,7 @@ Internally, GNSS-SDR makes use of the complex data types defined by [VOLK](http:
- **`gr_complex`**: Complex samples, with real and imaginary parts of type `float`. C++ type name: `std::complex`.
-More information about the available processing blocks and their configuration parameters can be found at the [Signal Processing Blocks documentation page](http://gnss-sdr.org/docs/sp-blocks/).
+More information about the available processing blocks and their configuration parameters can be found at the [Signal Processing Blocks documentation page](https://gnss-sdr.org/docs/sp-blocks/).
### Signal Source
@@ -875,7 +875,7 @@ SignalSource.big_endian_bytes=false
***Example: UHD Signal Source***
-The user may prefer to use a [UHD](http://code.ettus.com/redmine/ettus/projects/uhd/wiki)-compatible RF front-end and try real-time processing. For instance, for a USRP1 + DBSRX daughterboard, use:
+The user may prefer to use a [UHD](https://files.ettus.com/manual/)-compatible RF front-end and try real-time processing. For instance, for a USRP1 + DBSRX daughterboard, use:
~~~~~~
;######### SIGNAL_SOURCE CONFIG ############
@@ -994,7 +994,7 @@ SignalSource.dump1=false
~~~~~~
-More documentation and examples are available at the [Signal Source Blocks page](http://gnss-sdr.org/docs/sp-blocks/signal-source/).
+More documentation and examples are available at the [Signal Source Blocks page](https://gnss-sdr.org/docs/sp-blocks/signal-source/).
### Signal Conditioner
@@ -1015,7 +1015,7 @@ If you need to adapt some aspect of your signal, you can enable the Signal Condi
SignalConditioner.implementation=Signal_Conditioner
~~~~~~
-More documentation at the [Signal Conditioner Blocks page](http://gnss-sdr.org/docs/sp-blocks/signal-conditioner/).
+More documentation at the [Signal Conditioner Blocks page](https://gnss-sdr.org/docs/sp-blocks/signal-conditioner/).
#### Data type adapter
@@ -1027,11 +1027,11 @@ This block changes the type of input data samples. If your signal source deliver
DataTypeAdapter.implementation=Ishort_To_Complex
~~~~~~
-More documentation at the [Data Type Adapter Blocks page](http://gnss-sdr.org/docs/sp-blocks/data-type-adapter/).
+More documentation at the [Data Type Adapter Blocks page](https://gnss-sdr.org/docs/sp-blocks/data-type-adapter/).
#### Input filter
-This block filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](http://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired response on those bands, and the weight given to the error in those bands.
+This block filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](https://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired response on those bands, and the weight given to the error in those bands.
The block can be configured like this:
@@ -1082,7 +1082,7 @@ InputFilter.IF=0
InputFilter.decimation_factor=1
~~~~~~
-More documentation at the [Input Filter Blocks page](http://gnss-sdr.org/docs/sp-blocks/input-filter/).
+More documentation at the [Input Filter Blocks page](https://gnss-sdr.org/docs/sp-blocks/input-filter/).
#### Resampler
@@ -1100,7 +1100,7 @@ Resampler.sample_freq_in=8000000 ; sample frequency of the input signal
Resampler.sample_freq_out=4000000 ; desired sample frequency of the output signal
~~~~~~
-More documentation at the [Resampler Blocks page](http://gnss-sdr.org/docs/sp-blocks/resampler/).
+More documentation at the [Resampler Blocks page](https://gnss-sdr.org/docs/sp-blocks/resampler/).
### Channel
@@ -1150,7 +1150,7 @@ This module is also in charge of managing the interplay between acquisition and
The abstract class [ChannelInterface](./src/core/interfaces/channel_interface.h) represents an interface to a channel GNSS block. Check [Channel](./src/algorithms/channel/adapters/channel.h) for an actual implementation.
-More documentation at the [Channels page](http://gnss-sdr.org/docs/sp-blocks/channels/).
+More documentation at the [Channels page](https://gnss-sdr.org/docs/sp-blocks/channels/).
@@ -1201,7 +1201,7 @@ Acquisition_1B.dump=false
Acquisition_1B.dump_filename=./acq_dump.dat
~~~~~~
-More documentation at the [Acquisition Blocks page](http://gnss-sdr.org/docs/sp-blocks/acquisition/).
+More documentation at the [Acquisition Blocks page](https://gnss-sdr.org/docs/sp-blocks/acquisition/).
#### Tracking
@@ -1251,7 +1251,7 @@ Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
~~~~~~
-More documentation at the [Tracking Blocks page](http://gnss-sdr.org/docs/sp-blocks/tracking/).
+More documentation at the [Tracking Blocks page](https://gnss-sdr.org/docs/sp-blocks/tracking/).
#### Decoding of the navigation message
@@ -1279,7 +1279,7 @@ TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
~~~~~~
-More documentation at the [Telemetry Decoder Blocks page](http://gnss-sdr.org/docs/sp-blocks/telemetry-decoder/).
+More documentation at the [Telemetry Decoder Blocks page](https://gnss-sdr.org/docs/sp-blocks/telemetry-decoder/).
#### Observables
@@ -1297,11 +1297,11 @@ Observables.dump=false
Observables.dump_filename=./observables.dat
~~~~~~
-More documentation at the [Observables Blocks page](http://gnss-sdr.org/docs/sp-blocks/observables/).
+More documentation at the [Observables Blocks page](https://gnss-sdr.org/docs/sp-blocks/observables/).
#### Computation of Position, Velocity and Time
-Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute simple least square solutions (stored in GIS-friendly formats such as [GeoJSON](http://geojson.org/geojson-spec.html) and [KML](http://www.opengeospatial.org/standards/kml), or transmitted via serial port as [NMEA 0183](https://en.wikipedia.org/wiki/NMEA_0183) messages), and leaves room for more sophisticated positioning methods by storing observables and navigation data in [RINEX](https://en.wikipedia.org/wiki/RINEX) files (v2.11 or v3.02), and generating [RTCM](http://www.rtcm.org "Radio Technical Commission for Maritime Services") 3.2 messages that can be disseminated through the Internet in real time.
+Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute simple least square solutions (stored in GIS-friendly formats such as [GeoJSON](https://tools.ietf.org/html/rfc7946) and [KML](http://www.opengeospatial.org/standards/kml), or transmitted via serial port as [NMEA 0183](https://en.wikipedia.org/wiki/NMEA_0183) messages), and leaves room for more sophisticated positioning methods by storing observables and navigation data in [RINEX](https://en.wikipedia.org/wiki/RINEX) files (v2.11 or v3.02), and generating [RTCM](http://www.rtcm.org "Radio Technical Commission for Maritime Services") 3.2 messages that can be disseminated through the Internet in real time.
The common interface is [PvtInterface](./src/core/interfaces/pvt_interface.h).
@@ -1332,18 +1332,18 @@ PVT.rtcm_MT1077_rate_ms=1000
**Notes on the output formats:**
- * **GeoJSON** is a geospatial data interchange format based on JavaScript Object Notation (JSON) supported by numerous mapping and GIS software packages, including [OpenLayers](http://openlayers.org), [Leaflet](http://leafletjs.com), [MapServer](http://www.mapserver.org), [GeoServer](http://geoserver.org), [GeoDjango](https://www.djangoproject.com), [GDAL](http://www.gdal.org), and [CartoDB](https://cartodb.com). It is also possible to use GeoJSON with [PostGIS](http://postgis.net) and [Mapnik](http://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), and [GitHub also supports GeoJSON rendering](https://github.com/blog/1528-there-s-a-map-for-that).
+ * **GeoJSON** is a geospatial data interchange format based on JavaScript Object Notation (JSON) supported by numerous mapping and GIS software packages, including [OpenLayers](https://openlayers.org), [Leaflet](https://leafletjs.com), [MapServer](http://www.mapserver.org), [GeoServer](http://geoserver.org), [GeoDjango](https://www.djangoproject.com), [GDAL](http://www.gdal.org), and [CartoDB](https://cartodb.com). It is also possible to use GeoJSON with [PostGIS](https://postgis.net/) and [Mapnik](http://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), and [GitHub also supports GeoJSON rendering](https://github.com/blog/1528-there-s-a-map-for-that).
- * **KML** (Keyhole Markup Language) is an XML grammar used to encode and transport representations of geographic data for display in an earth browser. KML is an open standard officially named the OpenGIS KML Encoding Standard (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](http://worldwind.arc.nasa.gov/java/).
+ * **KML** (Keyhole Markup Language) is an XML grammar used to encode and transport representations of geographic data for display in an earth browser. KML is an open standard officially named the OpenGIS KML Encoding Standard (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/).
- * **NMEA 0183** is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the U.S. [National Marine Electronics Association](http://www.nmea.org/). The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data are transmitted in a *sentence* from one *talker* to multiple *listeners* at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port. At the application layer, the standard also defines the contents of each sentence (message) type, so that all listeners can parse messages accurately. Those messages can be sent through the serial port (that could be for instance a Bluetooth link) and be used/displayed by a number of software applications such as [gpsd](http://www.catb.org/gpsd/ "The UNIX GPS daemon"), [JOSM](https://josm.openstreetmap.de/ "The Java OpenStreetMap Editor"), [OpenCPN](http://opencpn.org/ocpn/ "Open Chart Plotter Navigator"), and many others (and maybe running on other devices).
+ * **NMEA 0183** is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the U.S. [National Marine Electronics Association](http://www.nmea.org/). The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data are transmitted in a *sentence* from one *talker* to multiple *listeners* at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port. At the application layer, the standard also defines the contents of each sentence (message) type, so that all listeners can parse messages accurately. Those messages can be sent through the serial port (that could be for instance a Bluetooth link) and be used/displayed by a number of software applications such as [gpsd](http://www.catb.org/gpsd/ "The UNIX GPS daemon"), [JOSM](https://josm.openstreetmap.de/ "The Java OpenStreetMap Editor"), [OpenCPN](https://opencpn.org/ "Open Chart Plotter Navigator"), and many others (and maybe running on other devices).
* **RINEX** (Receiver Independent Exchange Format) is an interchange format for raw satellite navigation system data, covering observables and the information contained in the navigation message broadcast by GNSS satellites. This allows the user to post-process the received data to produce a more accurate result (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 [GPSTk](http://www.gpstk.org), [RTKLIB](http://www.rtklib.com/) and [gLAB](http://gage14.upc.es/gLAB/). GNSS-SDR by default generates RINEX version [3.02](https://igscb.jpl.nasa.gov/igscb/data/format/rinex302.pdf). If [2.11](https://igscb.jpl.nasa.gov/igscb/data/format/rinex211.txt) is needed, it can be requested through the `rinex_version` parameter in the configuration file:
~~~~~~
PVT.rinex_version=2
~~~~~~
-* **RTCM SC-104** provides standards that define the data structure for differential GNSS correction information for a variety of differential correction applications. Developed by the Radio Technical Commission for Maritime Services ([RTCM](http://www.rtcm.org/overview.php#Standards "Radio Technical Commission for Maritime Services")), they have become an industry standard for communication of correction information. GNSS-SDR implements RTCM version 3.2, defined in the document *RTCM 10403.2, Differential GNSS (Global Navigation Satellite Systems) Services - Version 3* (February 1, 2013), which can be [purchased online](https://ssl29.pair.com/dmarkle/puborder.php?show=3 "RTCM Online Publication Order Form"). By default, the generated RTCM binary messages are dumped into a text file in hexadecimal format. However, GNSS-SDR is equipped with a TCP/IP server, acting as an NTRIP source that can feed an NTRIP server. NTRIP (Networked Transport of RTCM via Internet Protocol) is an open standard protocol that can be freely downloaded from [BKG](http://igs.bkg.bund.de/root_ftp/NTRIP/documentation/NtripDocumentation.pdf "Networked Transport of RTCM via Internet Protocol (Ntrip) Version 1.0"), and it is designed for disseminating differential correction data (*e.g.* in the RTCM-104 format) or other kinds of GNSS streaming data to stationary or mobile users over the Internet. The TCP/IP server can be enabled by setting ```PVT.flag_rtcm_server=true``` in the configuration file, and will be active during the execution of the software receiver. By default, the server will operate on port 2101 (which is the recommended port for RTCM services according to the Internet Assigned Numbers Authority, [IANA](http://www.iana.org/assignments/service-names-port-numbers "Service Name and Transport Protocol Port Number Registry")), and will identify the Reference Station with ID=1234. This behaviour can be changed in the configuration file:
+* **RTCM SC-104** provides standards that define the data structure for differential GNSS correction information for a variety of differential correction applications. Developed by the Radio Technical Commission for Maritime Services ([RTCM](http://www.rtcm.org/differential-global-navigation-satellite--dgnss--standards.html "Radio Technical Commission for Maritime Services")), they have become an industry standard for communication of correction information. GNSS-SDR implements RTCM version 3.2, defined in the document *RTCM 10403.2, Differential GNSS (Global Navigation Satellite Systems) Services - Version 3* (February 1, 2013), which can be [purchased online](https://ssl29.pair.com/dmarkle/puborder.php?show=3 "RTCM Online Publication Order Form"). By default, the generated RTCM binary messages are dumped into a text file in hexadecimal format. However, GNSS-SDR is equipped with a TCP/IP server, acting as an NTRIP source that can feed an NTRIP server. NTRIP (Networked Transport of RTCM via Internet Protocol) is an open standard protocol that can be freely downloaded from [BKG](https://igs.bkg.bund.de/root_ftp/NTRIP/documentation/NtripDocumentation.pdf "Networked Transport of RTCM via Internet Protocol (Ntrip) Version 1.0"), and it is designed for disseminating differential correction data (*e.g.* in the RTCM-104 format) or other kinds of GNSS streaming data to stationary or mobile users over the Internet. The TCP/IP server can be enabled by setting ```PVT.flag_rtcm_server=true``` in the configuration file, and will be active during the execution of the software receiver. By default, the server will operate on port 2101 (which is the recommended port for RTCM services according to the Internet Assigned Numbers Authority, [IANA](https://www.iana.org/assignments/service-names-port-numbers/ "Service Name and Transport Protocol Port Number Registry")), and will identify the Reference Station with ID=1234. This behaviour can be changed in the configuration file:
~~~~~~
PVT.flag_rtcm_server=true
PVT.rtcm_tcp_port=2102
@@ -1354,13 +1354,13 @@ PVT.rtcm_station_id=1111
In order to get well-formatted GeoJSON, KML and RINEX files, always terminate ```gnss-sdr``` execution by pressing key ```q``` and then key ```ENTER```. Those files will be automatically deleted if no position fix have been obtained during the execution of the software receiver.
-More documentation at the [PVT Blocks page](http://gnss-sdr.org/docs/sp-blocks/pvt/).
+More documentation at the [PVT Blocks page](https://gnss-sdr.org/docs/sp-blocks/pvt/).
About the software license
==========================
-GNSS-SDR is released under the [General Public License (GPL) v3](http://www.gnu.org/licenses/gpl.html), thus securing practical usability, inspection, and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. The GPL implies that:
+GNSS-SDR is released under the [General Public License (GPL) v3](https://www.gnu.org/licenses/gpl.html), thus securing practical usability, inspection, and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. The GPL implies that:
1. Copies may be distributed free of charge or for money, but the source code has to be shipped or provided free of charge (or at cost price) on demand. The receiver of the source code has the same rights meaning he can share copies free of charge or resell.
2. The licensed material may be analyzed or modified.
@@ -1393,7 +1393,7 @@ For LaTeX users, this is the BibTeX entry for your convenience:
~~~~~~
-There is a list of papers related to GNSS-SDR in our [publications page](http://gnss-sdr.org/publications/ "Publications").
+There is a list of papers related to GNSS-SDR in our [publications page](https://gnss-sdr.org/publications/ "Publications").
@@ -1402,11 +1402,11 @@ Ok, now what?
In order to start using GNSS-SDR, you may want to populate ```gnss-sdr/data``` folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output of a Radio Frequency front-end's Analog-to-Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intermediate frequency (on the order of MHz). Prepare your configuration file, and then you are ready for running ```gnss-sdr --config_file=your_configuration.conf```, and seeing how the file is processed.
-Another interesting option is working in real-time with an RF front-end. We provide drivers for UHD-compatible hardware such as the [USRP family](http://www.ettus.com/product), for OsmoSDR and other front-ends (HackRF, bladeRF, LimeSDR), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time.
+Another interesting option is working in real-time with an RF front-end. We provide drivers for UHD-compatible hardware such as the [USRP family](https://www.ettus.com/product), for OsmoSDR and other front-ends (HackRF, bladeRF, LimeSDR), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time.
-You can find more information at the [GNSS-SDR Documentation page](http://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers).
+You can find more information at the [GNSS-SDR Documentation page](https://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](https://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers).
-You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](http://gnss-sdr.org/contribute/). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](http://gnss-sdr.org/team/).
+You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](https://gnss-sdr.org/contribute/). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](https://gnss-sdr.org/team/).
**Enjoy GNSS-SDR!**
diff --git a/cmake/Modules/FindGFORTRAN.cmake b/cmake/Modules/FindGFORTRAN.cmake
index b676fec0f..eec7a4265 100644
--- a/cmake/Modules/FindGFORTRAN.cmake
+++ b/cmake/Modules/FindGFORTRAN.cmake
@@ -1,3 +1,19 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
find_library(GFORTRAN NAMES gfortran
PATHS /usr/lib
diff --git a/cmake/Modules/FindGFlags.cmake b/cmake/Modules/FindGFlags.cmake
index 804c908b2..a0ca5ac79 100644
--- a/cmake/Modules/FindGFlags.cmake
+++ b/cmake/Modules/FindGFlags.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# - Try to find GFlags
#
# The following variables are optionally searched for defaults
@@ -9,14 +26,6 @@
# GFlags_LIBS
# GFlags_LIBRARY_DIRS
-# - Try to find GFlags
-#
-#
-# The following are set after configuration is done:
-# GFlags_FOUND
-# GFlags_INCLUDE_DIRS
-# GFlags_LIBS
-# GFlags_LIBRARY_DIRS
cmake_minimum_required(VERSION 2.6)
if(APPLE)
diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake
index 68b012c8d..7c50d8805 100644
--- a/cmake/Modules/FindGLOG.cmake
+++ b/cmake/Modules/FindGLOG.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# - Try to find the Google Glog library
#
# This module defines the following variables
diff --git a/cmake/Modules/FindGPSTK.cmake b/cmake/Modules/FindGPSTK.cmake
index 37ea1dbf0..515878d5a 100644
--- a/cmake/Modules/FindGPSTK.cmake
+++ b/cmake/Modules/FindGPSTK.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# - Find gpstk library
# Find the native gpstk includes and library
# This module defines
diff --git a/cmake/Modules/FindGnuradio.cmake b/cmake/Modules/FindGnuradio.cmake
index 8b540bee0..0205d5d82 100644
--- a/cmake/Modules/FindGnuradio.cmake
+++ b/cmake/Modules/FindGnuradio.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Find GNU Radio
########################################################################
diff --git a/cmake/Modules/FindGperftools.cmake b/cmake/Modules/FindGperftools.cmake
index 5a97a29c5..6e4d955b7 100644
--- a/cmake/Modules/FindGperftools.cmake
+++ b/cmake/Modules/FindGperftools.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# Tries to find Gperftools.
#
# Usage of this module as follows:
diff --git a/cmake/Modules/FindGrDbfcttc.cmake b/cmake/Modules/FindGrDbfcttc.cmake
index 5624f8003..0245514d8 100644
--- a/cmake/Modules/FindGrDbfcttc.cmake
+++ b/cmake/Modules/FindGrDbfcttc.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Find GR-DBFCTTC Module
########################################################################
diff --git a/cmake/Modules/FindGrGN3S.cmake b/cmake/Modules/FindGrGN3S.cmake
index 0f1c2cbc5..a1340d4a7 100644
--- a/cmake/Modules/FindGrGN3S.cmake
+++ b/cmake/Modules/FindGrGN3S.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Find GR-GN3S Module
########################################################################
diff --git a/cmake/Modules/FindGrOsmoSDR.cmake b/cmake/Modules/FindGrOsmoSDR.cmake
index a67e1817e..254fecef1 100644
--- a/cmake/Modules/FindGrOsmoSDR.cmake
+++ b/cmake/Modules/FindGrOsmoSDR.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# Tries to find gr-osmosdr.
#
# Usage of this module as follows:
diff --git a/cmake/Modules/Findiio.cmake b/cmake/Modules/FindGriio.cmake
similarity index 67%
rename from cmake/Modules/Findiio.cmake
rename to cmake/Modules/FindGriio.cmake
index fc7af0d45..69ee780ec 100644
--- a/cmake/Modules/Findiio.cmake
+++ b/cmake/Modules/FindGriio.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_IIO gnuradio-iio)
diff --git a/cmake/Modules/FindLibOsmoSDR.cmake b/cmake/Modules/FindLibOsmoSDR.cmake
index d024e0629..fc7a28b06 100644
--- a/cmake/Modules/FindLibOsmoSDR.cmake
+++ b/cmake/Modules/FindLibOsmoSDR.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# Tries to find libosmosdr.
#
# Usage of this module as follows:
diff --git a/cmake/Modules/FindLog4cpp.cmake b/cmake/Modules/FindLog4cpp.cmake
index 8bddbcd76..3b1e7560e 100644
--- a/cmake/Modules/FindLog4cpp.cmake
+++ b/cmake/Modules/FindLog4cpp.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# - Find Log4cpp
# Find the native LOG4CPP includes and library
#
diff --git a/cmake/Modules/FindMATIO.cmake b/cmake/Modules/FindMATIO.cmake
index e1cb458d8..2bac55ede 100644
--- a/cmake/Modules/FindMATIO.cmake
+++ b/cmake/Modules/FindMATIO.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# FindMATIO
#
# Try to find MATIO library
diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake
index 9d0da9ee2..2751494ba 100644
--- a/cmake/Modules/FindORC.cmake
+++ b/cmake/Modules/FindORC.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
FIND_PACKAGE(PkgConfig)
PKG_CHECK_MODULES(PC_ORC "orc-0.4 > 0.4.22")
diff --git a/cmake/Modules/FindOpenBLAS.cmake b/cmake/Modules/FindOpenBLAS.cmake
index d8751b216..133de9b63 100644
--- a/cmake/Modules/FindOpenBLAS.cmake
+++ b/cmake/Modules/FindOpenBLAS.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
# - Try to find OpenBLAS library (not headers!)
#
# The following environment variable is optionally searched
diff --git a/cmake/Modules/FindOpenCL.cmake b/cmake/Modules/FindOpenCL.cmake
index 1229090a9..7b2d3f1dd 100644
--- a/cmake/Modules/FindOpenCL.cmake
+++ b/cmake/Modules/FindOpenCL.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
#
# This file taken from FindOpenCL project @ http://gitorious.com/findopencl
#
diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake
new file mode 100644
index 000000000..3be89420e
--- /dev/null
+++ b/cmake/Modules/FindPCAP.cmake
@@ -0,0 +1,121 @@
+###################################################################
+#
+# Copyright (c) 2006 Frederic Heem,
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the Telsey nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+###################################################################
+# - Find pcap
+# Find the PCAP includes and library
+# http://www.tcpdump.org/
+#
+# The environment variable PCAPDIR allows to specficy where to find
+# libpcap in non standard location.
+#
+# PCAP_INCLUDE_DIRS - where to find pcap.h, etc.
+# PCAP_LIBRARIES - List of libraries when using pcap.
+# PCAP_FOUND - True if pcap found.
+
+
+IF(EXISTS $ENV{PCAPDIR})
+ FIND_PATH(PCAP_INCLUDE_DIR
+ NAMES
+ pcap/pcap.h
+ pcap.h
+ PATHS
+ $ENV{PCAPDIR}
+ NO_DEFAULT_PATH
+ )
+
+ FIND_LIBRARY(PCAP_LIBRARY
+ NAMES
+ pcap
+ PATHS
+ $ENV{PCAPDIR}
+ NO_DEFAULT_PATH
+ )
+
+
+ELSE(EXISTS $ENV{PCAPDIR})
+ FIND_PATH(PCAP_INCLUDE_DIR
+ NAMES
+ pcap/pcap.h
+ pcap.h
+ )
+
+ FIND_LIBRARY(PCAP_LIBRARY
+ NAMES
+ pcap
+ )
+
+ENDIF(EXISTS $ENV{PCAPDIR})
+
+SET(PCAP_INCLUDE_DIRS ${PCAP_INCLUDE_DIR})
+SET(PCAP_LIBRARIES ${PCAP_LIBRARY})
+
+IF(PCAP_INCLUDE_DIRS)
+ MESSAGE(STATUS "Pcap include dirs set to ${PCAP_INCLUDE_DIRS}")
+ELSE(PCAP_INCLUDE_DIRS)
+ MESSAGE(FATAL " Pcap include dirs cannot be found")
+ENDIF(PCAP_INCLUDE_DIRS)
+
+IF(PCAP_LIBRARIES)
+ MESSAGE(STATUS "Pcap library set to ${PCAP_LIBRARIES}")
+ELSE(PCAP_LIBRARIES)
+ MESSAGE(FATAL "Pcap library cannot be found")
+ENDIF(PCAP_LIBRARIES)
+
+#Functions
+INCLUDE(CheckFunctionExists)
+SET(CMAKE_REQUIRED_INCLUDES ${PCAP_INCLUDE_DIRS})
+SET(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARIES})
+CHECK_FUNCTION_EXISTS("pcap_breakloop" HAVE_PCAP_BREAKLOOP)
+CHECK_FUNCTION_EXISTS("pcap_datalink_name_to_val" HAVE_PCAP_DATALINK_NAME_TO_VAL)
+CHECK_FUNCTION_EXISTS("pcap_datalink_val_to_name" HAVE_PCAP_DATALINK_VAL_TO_NAME)
+CHECK_FUNCTION_EXISTS("pcap_findalldevs" HAVE_PCAP_FINDALLDEVS)
+CHECK_FUNCTION_EXISTS("pcap_freecode" HAVE_PCAP_FREECODE)
+CHECK_FUNCTION_EXISTS("pcap_get_selectable_fd" HAVE_PCAP_GET_SELECTABLE_FD)
+CHECK_FUNCTION_EXISTS("pcap_lib_version" HAVE_PCAP_LIB_VERSION)
+CHECK_FUNCTION_EXISTS("pcap_list_datalinks" HAVE_PCAP_LIST_DATALINKS)
+CHECK_FUNCTION_EXISTS("pcap_open_dead" HAVE_PCAP_OPEN_DEAD)
+CHECK_FUNCTION_EXISTS("pcap_set_datalink" HAVE_PCAP_SET_DATALINK)
+
+
+#Is pcap found ?
+IF(PCAP_INCLUDE_DIRS AND PCAP_LIBRARIES)
+ SET( PCAP_FOUND true )
+ENDIF(PCAP_INCLUDE_DIRS AND PCAP_LIBRARIES)
+
+
+MARK_AS_ADVANCED(
+ PCAP_LIBRARIES
+ PCAP_INCLUDE_DIRS
+)
diff --git a/cmake/Modules/FindTeleorbit.cmake b/cmake/Modules/FindTeleorbit.cmake
index 0d2d3c505..e7fdbf5fc 100644
--- a/cmake/Modules/FindTeleorbit.cmake
+++ b/cmake/Modules/FindTeleorbit.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_TELEORBIT teleorbit)
diff --git a/cmake/Modules/FindUHD.cmake b/cmake/Modules/FindUHD.cmake
index 3534e6b87..3a245f8a2 100644
--- a/cmake/Modules/FindUHD.cmake
+++ b/cmake/Modules/FindUHD.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Find the library for the USRP Hardware Driver
########################################################################
diff --git a/cmake/Modules/FindVolk.cmake b/cmake/Modules/FindVolk.cmake
index 9621e16f7..994ce6e7d 100644
--- a/cmake/Modules/FindVolk.cmake
+++ b/cmake/Modules/FindVolk.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Find VOLK (Vector-Optimized Library of Kernels)
########################################################################
diff --git a/cmake/Modules/FindVolkGnssSdr.cmake b/cmake/Modules/FindVolkGnssSdr.cmake
index b5890966b..6225f38a0 100644
--- a/cmake/Modules/FindVolkGnssSdr.cmake
+++ b/cmake/Modules/FindVolkGnssSdr.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Find VOLK (Vector-Optimized Library of Kernels) GNSS-SDR library
########################################################################
diff --git a/cmake/Modules/Findlibiio.cmake b/cmake/Modules/Findlibiio.cmake
index 334dcf8d7..e96d420ce 100644
--- a/cmake/Modules/Findlibiio.cmake
+++ b/cmake/Modules/Findlibiio.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_LIBIIO libiio)
diff --git a/cmake/Modules/SetupPython.cmake b/cmake/Modules/SetupPython.cmake
index d3c2b3a12..eb4e7a55d 100644
--- a/cmake/Modules/SetupPython.cmake
+++ b/cmake/Modules/SetupPython.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
########################################################################
# Setup the python interpreter:
# This allows the user to specify a specific interpreter,
diff --git a/cmake/Modules/TestForARM.cmake b/cmake/Modules/TestForARM.cmake
index 437a75e1a..26c0a1874 100644
--- a/cmake/Modules/TestForARM.cmake
+++ b/cmake/Modules/TestForARM.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
##############################################################################
# check if the compiler defines the architecture as ARM and set the
# version, if found.
diff --git a/cmake/Modules/TestForSSE.cmake b/cmake/Modules/TestForSSE.cmake
index 1280f83b3..135a434ef 100644
--- a/cmake/Modules/TestForSSE.cmake
+++ b/cmake/Modules/TestForSSE.cmake
@@ -1,3 +1,21 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
+
###############################################################################
# Test for availability of SSE
#
diff --git a/cmake/Toolchains/oe-sdk_cross.cmake b/cmake/Toolchains/oe-sdk_cross.cmake
index 06f589c34..aac39094e 100644
--- a/cmake/Toolchains/oe-sdk_cross.cmake
+++ b/cmake/Toolchains/oe-sdk_cross.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
##########################################################
# Toolchain file for Open Embedded
##########################################################
diff --git a/cmake/Toolchains/zynq-7000.cmake b/cmake/Toolchains/zynq-7000.cmake
index 9ce876e56..18cb416fa 100644
--- a/cmake/Toolchains/zynq-7000.cmake
+++ b/cmake/Toolchains/zynq-7000.cmake
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
##########################################################
# Toolchain file for Zynq-7000 devices
##########################################################
@@ -23,4 +40,4 @@ set(CMAKE_CXX_FLAGS ${ZYNQ_FLAGS} CACHE STRING "" FORCE)
set(CMAKE_LIBRARY_PATH ${CMAKE_SYSROOT}/usr/lib
${CMAKE_SYSROOT}/usr/lib/arm-linux-gnueabihf)
-set(CMAKE_INSTALL_PREFIX ${CMAKE_SYSROOT}/usr CACHE STRING "" FORCE)
\ No newline at end of file
+set(CMAKE_INSTALL_PREFIX ${CMAKE_SYSROOT}/usr CACHE STRING "" FORCE)
diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in
index 2c34c8199..5d4ab76f7 100644
--- a/cmake/cmake_uninstall.cmake.in
+++ b/cmake/cmake_uninstall.cmake.in
@@ -1,3 +1,20 @@
+# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+
if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
@@ -18,4 +35,4 @@ foreach(file ${files})
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
-endforeach(file)
\ No newline at end of file
+endforeach(file)
diff --git a/conf/front-end-cal.conf b/conf/front-end-cal.conf
index 72c9be845..106b8d736 100644
--- a/conf/front-end-cal.conf
+++ b/conf/front-end-cal.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Default configuration file
; You can define your own front-end calibration tool configuration and invoke it by doing
; ./front-end-cal --config_file=my_GNSS_SDR_configuration.conf
@@ -18,7 +21,7 @@ GNSS-SDR.init_altitude_m=10
; Mozoncillo
;GNSS-SDR.init_latitude_deg=41.14534824586196
-;GNSS-SDR.init_longitude_deg=-4.187125019737464
+;GNSS-SDR.init_longitude_deg=-4.187125019737464
;GNSS-SDR.init_altitude_m=900
@@ -42,28 +45,28 @@ GNSS-SDR.SUPL_CI=40184
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Osmosdr_Signal_Source
-;#freq: RF front-end center frequency in [Hz]
+;#freq: RF front-end center frequency in [Hz]
SignalSource.freq=1575420000
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
+;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=2000000
-;#gain: Front-end Gain in [dB]
-SignalSource.gain=40
+;#gain: Front-end Gain in [dB]
+SignalSource.gain=40
SignalSource.rf_gain=40
SignalSource.if_gain=30
SignalSource.AGC_enabled=false
-;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM
+;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM
;# temperature compensated oscillator (TCXO), which is well suited for GNSS
;# signal processing, and a 4.5 V powered bias-tee to feed an active antenna.
-;# Whether the bias-tee is turned off before reception depends on which version
-;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version
-;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the
-;# bias-tee, and then call gnss-sdr.
+;# Whether the bias-tee is turned off before reception depends on which version
+;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version
+;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the
+;# bias-tee, and then call gnss-sdr.
;# See https://github.com/rtlsdrblog/rtl_biast
;# After reception the bias-tee is switched off automatically by the program.
-;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be
+;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be
;# activated by uncommenting the following line:
;SignalSource.osmosdr_args=rtl,bias=1
@@ -79,7 +82,7 @@ SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
+;## It holds blocks to change data type, filter and resample input data.
;#implementation: Use [Pass_Through] or [Signal_Conditioner]
;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
@@ -105,7 +108,7 @@ DataTypeAdapter.dump_filename=../data/data_type_adapter.dat
InputFilter.implementation=Freq_Xlating_Fir_Filter
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
+;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
;#These options are based on parameters of gnuradio's function: gr_remez.
;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
;#the desired response on those bands, and the weight given to the error in those bands.
@@ -148,7 +151,7 @@ InputFilter.ampl2_end=0.0
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
+;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
;#grid_density: determines how accurately the filter will be constructed.
@@ -179,7 +182,7 @@ Resampler.implementation=Pass_Through
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
+;#if: Signal intermediate frequency in [Hz]
Acquisition.if=0
;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition.sampled_ms=1
@@ -193,8 +196,7 @@ Acquisition.doppler_min=-100000
Acquisition.doppler_step=500
;#maximum dwells
Acquisition.max_dwells=15
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
+;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition.dump=false
;#filename: Log path and filename
Acquisition.dump_filename=./acq_dump.dat
-
diff --git a/conf/gnss-sdr.conf b/conf/gnss-sdr.conf
index 0c456f075..4c9ae11a4 100644
--- a/conf/gnss-sdr.conf
+++ b/conf/gnss-sdr.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Default configuration file
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
@@ -25,149 +28,63 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=ishort
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
-;SignalConditioner.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ishort_To_Complex
-;DataTypeAdapter.implementation=Pass_Through
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
+InputFilter.implementation=Pass_Through ; or Fir_Filter
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
-InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of GNU Radio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.44
InputFilter.band2_begin=0.55
InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter.sampling_frequency=4000000
InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neighborhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
-Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
-Resampler.sample_freq_in=4000000
-;#sample_freq_out: the desired sample frequency of the output signal
-Resampler.sample_freq_out=2000000
-;#dump: Dump the resampled data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS L1 C/A satellite channels.
Channels_1C.count=6
-;#count: Number of available Galileo E1B satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
-Channel.signal=1C
-
-
;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
;######### CHANNEL 0 CONFIG ############
;Channel0.signal=1C
-;#satellite: Satellite PRN ID for this channel. Disable this option for random search
;Channel0.satellite=11
;######### CHANNEL 1 CONFIG ############
@@ -176,90 +93,51 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.005
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Maximum expected Doppler shift [Hz]
-Acquisition_1C.doppler_min=-10000
-;#doppler_step Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#maximum dwells
Acquisition_1C.max_dwells=5
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=45.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=3.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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.AR_GPS=PPP-AR ; options: OFF, Continuous, Instantaneous, Fix-and-Hold, PPP-AR
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=10
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms <= display_rate_ms.
PVT.display_rate_ms=500
-PVT.positioning_mode=PPP_Static
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea
-;#flag_nmea_tty_port: Enables or disables the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=true
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
-;#flag_rtcm_server: Enables or disables a TCP/IP server transmitting RTCM 3.2 messages (accepts multiple clients, port 2101 by default)
PVT.flag_rtcm_server=true
-;#flag_rtcm_tty_port: Enables or disables the RTCM log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_rtcm_tty_port=false
-;#rtcm_dump_devname: serial device descriptor for RTCM logging
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump, ".kml" and ".geojson" to GIS-friendly formats.
PVT.dump_filename=./PVT
-
diff --git a/conf/gnss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf b/conf/gnss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf
index 53d903ba3..88c8741b6 100644
--- a/conf/gnss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf
+++ b/conf/gnss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -79,7 +82,6 @@ Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.threshold=0.0
Acquisition_1C.pfa=0.00001
-Acquisition_1C.if=0
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=250
Acquisition_1C.dump=false;
@@ -90,7 +92,6 @@ Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.item_type=gr_complex
Acquisition_1G.threshold=0.0
Acquisition_1G.pfa=0.00001
-Acquisition_1G.if=0
Acquisition_1G.doppler_max=10000
Acquisition_1G.doppler_step=250
Acquisition_1G.dump=false;
@@ -100,7 +101,6 @@ Acquisition_1G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.pll_bw_hz=20.0;
Tracking_1C.dll_bw_hz=2.0;
@@ -109,7 +109,6 @@ Tracking_1C.dump_filename=/archive/gps_tracking_ch_
Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_Tracking
Tracking_1G.item_type=gr_complex
-Tracking_1G.if=0
Tracking_1G.early_late_space_chips=0.5
Tracking_1G.pll_bw_hz=25.0;
Tracking_1G.dll_bw_hz=3.0;
diff --git a/conf/gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf b/conf/gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf
index cc9ba010f..435194b75 100644
--- a/conf/gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf
+++ b/conf/gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -82,7 +85,6 @@ Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
Acquisition_2S.threshold=0.0
Acquisition_2S.pfa=0.00001
-Acquisition_2S.if=0
Acquisition_2S.doppler_max=10000
Acquisition_2S.doppler_step=60
Acquisition_2S.max_dwells=1
@@ -91,7 +93,6 @@ Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.item_type=gr_complex
Acquisition_1G.threshold=0.0
Acquisition_1G.pfa=0.00001
-Acquisition_1G.if=0
Acquisition_1G.doppler_max=10000
Acquisition_1G.doppler_step=250
Acquisition_1G.dump=false;
@@ -100,7 +101,6 @@ Acquisition_1G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.early_late_space_chips=0.5
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.250;
@@ -110,7 +110,6 @@ Tracking_2S.dump_filename=/archive/gps_tracking_ch_
Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_Tracking
Tracking_1G.item_type=gr_complex
-Tracking_1G.if=0
Tracking_1G.early_late_space_chips=0.5
Tracking_1G.pll_bw_hz=25.0;
Tracking_1G.dll_bw_hz=3.0;
diff --git a/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf b/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf
index b95b93551..1e4b6a24b 100644
--- a/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf
+++ b/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -36,7 +39,6 @@ Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.item_type=gr_complex
Acquisition_1G.threshold=0.0
Acquisition_1G.pfa=0.0001
-Acquisition_1G.if=0
Acquisition_1G.doppler_max=10000
Acquisition_1G.doppler_step=250
Acquisition_1G.dump=true;
@@ -47,7 +49,6 @@ Acquisition_1G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_Tracking
Tracking_1G.item_type=gr_complex
-Tracking_1G.if=0
Tracking_1G.early_late_space_chips=0.5
Tracking_1G.pll_bw_hz=25.0;
Tracking_1G.dll_bw_hz=3.0;
diff --git a/conf/gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf b/conf/gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf
index 0bdbe7739..6e30d5566 100644
--- a/conf/gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf
+++ b/conf/gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -36,7 +39,6 @@ Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.item_type=gr_complex
Acquisition_1G.threshold=0.0
Acquisition_1G.pfa=0.0001
-Acquisition_1G.if=0
Acquisition_1G.doppler_max=10000
Acquisition_1G.doppler_step=250
Acquisition_1G.dump=false;
@@ -47,7 +49,6 @@ Acquisition_1G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1G.item_type=gr_complex
-Tracking_1G.if=0
Tracking_1G.early_late_space_chips=0.5
Tracking_1G.pll_bw_hz=40.0;
Tracking_1G.dll_bw_hz=3.0;
diff --git a/conf/gnss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf b/conf/gnss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf
index 04b8dd746..3c56e6132 100644
--- a/conf/gnss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf
+++ b/conf/gnss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -79,7 +82,6 @@ Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.threshold=0.0
Acquisition_1C.pfa=0.00001
-Acquisition_1C.if=0
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=250
Acquisition_1C.dump=false;
@@ -90,7 +92,6 @@ Acquisition_2G.implementation=GLONASS_L2_CA_PCPS_Acquisition
Acquisition_2G.item_type=gr_complex
Acquisition_2G.threshold=0.0
Acquisition_2G.pfa=0.00001
-Acquisition_2G.if=0
Acquisition_2G.doppler_max=10000
Acquisition_2G.doppler_step=250
Acquisition_2G.dump=false;
@@ -100,7 +101,6 @@ Acquisition_2G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.pll_bw_hz=20.0;
Tracking_1C.dll_bw_hz=2.0;
@@ -109,7 +109,6 @@ Tracking_1C.dump_filename=/archive/gps_tracking_ch_
Tracking_2G.implementation=GLONASS_L2_CA_DLL_PLL_Tracking
Tracking_2G.item_type=gr_complex
-Tracking_2G.if=0
Tracking_2G.early_late_space_chips=0.5
Tracking_2G.pll_bw_hz=25.0;
Tracking_2G.dll_bw_hz=2.0;
@@ -127,6 +126,7 @@ Observables.dump_filename=/archive/gnss_observables.dat
;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
+PVT.positioning_mode=Single
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.trop_model=Saastamoinen
diff --git a/conf/gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf b/conf/gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf
index 32faba32a..10df72ae2 100644
--- a/conf/gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf
+++ b/conf/gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -82,7 +85,6 @@ Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
Acquisition_2S.threshold=0.0
Acquisition_2S.pfa=0.00001
-Acquisition_2S.if=0
Acquisition_2S.doppler_max=10000
Acquisition_2S.doppler_step=60
Acquisition_2S.max_dwells=1
@@ -91,7 +93,6 @@ Acquisition_2G.implementation=GLONASS_L2_CA_PCPS_Acquisition
Acquisition_2G.item_type=gr_complex
Acquisition_2G.threshold=0.0
Acquisition_2G.pfa=0.00001
-Acquisition_2G.if=0
Acquisition_2G.doppler_max=10000
Acquisition_2G.doppler_step=250
Acquisition_2G.dump=false;
@@ -100,7 +101,6 @@ Acquisition_2G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.early_late_space_chips=0.5
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.250;
@@ -110,7 +110,6 @@ Tracking_2S.dump_filename=/archive/gps_tracking_ch_
Tracking_2G.implementation=GLONASS_L2_CA_DLL_PLL_Tracking
Tracking_2G.item_type=gr_complex
-Tracking_2G.if=0
Tracking_2G.early_late_space_chips=0.5
Tracking_2G.pll_bw_hz=25.0;
Tracking_2G.dll_bw_hz=3.0;
@@ -128,6 +127,7 @@ Observables.dump_filename=/archive/gnss_observables.dat
;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
+PVT.positioning_mode=Single
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.trop_model=Saastamoinen
diff --git a/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf b/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf
index e8d1342a8..39b6fa5ab 100644
--- a/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf
+++ b/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -30,7 +33,6 @@ Acquisition_2G.implementation=GLONASS_L2_CA_PCPS_Acquisition
Acquisition_2G.item_type=gr_complex
Acquisition_2G.threshold=0.0
Acquisition_2G.pfa=0.0001
-Acquisition_2G.if=0
Acquisition_2G.doppler_max=10000
Acquisition_2G.doppler_step=250
Acquisition_2G.dump=true;
@@ -41,7 +43,6 @@ Acquisition_2G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_2G.implementation=GLONASS_L2_CA_DLL_PLL_Tracking
Tracking_2G.item_type=gr_complex
-Tracking_2G.if=0
Tracking_2G.early_late_space_chips=0.5
Tracking_2G.pll_bw_hz=20.0;
Tracking_2G.dll_bw_hz=2.0;
diff --git a/conf/gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf b/conf/gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf
index 0bdbe7739..6e30d5566 100644
--- a/conf/gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf
+++ b/conf/gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -36,7 +39,6 @@ Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.item_type=gr_complex
Acquisition_1G.threshold=0.0
Acquisition_1G.pfa=0.0001
-Acquisition_1G.if=0
Acquisition_1G.doppler_max=10000
Acquisition_1G.doppler_step=250
Acquisition_1G.dump=false;
@@ -47,7 +49,6 @@ Acquisition_1G.dump_filename=/archive/glo_acquisition.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1G.item_type=gr_complex
-Tracking_1G.if=0
Tracking_1G.early_late_space_chips=0.5
Tracking_1G.pll_bw_hz=40.0;
Tracking_1G.dll_bw_hz=3.0;
diff --git a/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf b/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf
index 79a57f712..cd3345904 100644
--- a/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf
new file mode 100644
index 000000000..6dd703fa6
--- /dev/null
+++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf
@@ -0,0 +1,103 @@
+; You can define your own receiver and invoke it by doing
+; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
+;
+
+[GNSS-SDR]
+
+;######### GLOBAL OPTIONS ##################
+;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [Sps].
+GNSS-SDR.internal_fs_sps=13250000 ;//66.25/5
+;GNSS-SDR.internal_fs_sps=6625000 ;//66.25/10
+;GNSS-SDR.internal_fs_sps=3312500 ;//66.25/20
+;GNSS-SDR.internal_fs_sps=2650000 ;//66.25/25
+
+;######### SIGNAL_SOURCE CONFIG ############
+SignalSource.implementation=Custom_UDP_Signal_Source
+SignalSource.item_type=gr_complex
+SignalSource.origin_address=0.0.0.0
+SignalSource.capture_device=eth0
+SignalSource.port=1234
+SignalSource.payload_bytes=1472
+;SignalSource.sample_type=cbyte
+SignalSource.sample_type=c4bits
+SignalSource.IQ_swap=false
+SignalSource.RF_channels=1
+SignalSource.channels_in_udp=2
+SignalSource.dump=false
+SignalSource.dump_filename=./signal_source.dat
+
+
+;######### SIGNAL_CONDITIONER CONFIG ############
+SignalConditioner.implementation=Pass_Through
+;SignalConditioner0.implementation=Pass_Through
+;SignalConditioner1.implementation=Pass_Through
+
+;######### CHANNELS GLOBAL CONFIG ############
+Channels_1C.count=8
+Channels.in_acquisition=1
+
+;# CHANNEL CONNECTION
+Channel.signal=1C
+Channel0.RF_channel_ID=0
+Channel1.RF_channel_ID=0
+Channel2.RF_channel_ID=0
+Channel3.RF_channel_ID=0
+Channel4.RF_channel_ID=0
+Channel5.RF_channel_ID=0
+Channel6.RF_channel_ID=0
+Channel7.RF_channel_ID=0
+Channel8.RF_channel_ID=1
+Channel9.RF_channel_ID=1
+
+;Channel0.signal=1C
+;Channel1.RF_channel_ID=1
+;Channel1.signal=1C
+
+;######### ACQUISITION GLOBAL CONFIG ############
+Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
+Acquisition_1C.item_type=gr_complex
+Acquisition_1C.threshold=17
+Acquisition_1C.use_CFAR_algorithm=false
+Acquisition_1C.blocking=false
+Acquisition_1C.doppler_max=5000
+Acquisition_1C.doppler_step=250
+Acquisition_1C.dump=false
+Acquisition_1C.dump_filename=./acq_dump.dat
+
+
+;######### TRACKING GLOBAL CONFIG ############
+Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
+Tracking_1C.item_type=gr_complex
+Tracking_1C.dump=false
+Tracking_1C.dump_filename=./tracking_ch_
+Tracking_1C.pll_bw_hz=35.0;
+Tracking_1C.dll_bw_hz=2.0;
+Tracking_1C.early_late_space_chips=0.5;
+
+
+;######### TELEMETRY DECODER GPS CONFIG ############
+TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
+TelemetryDecoder_1C.dump=false
+
+
+;######### OBSERVABLES CONFIG ############
+Observables.implementation=Hybrid_Observables
+Observables.dump=false
+Observables.dump_filename=./observables.dat
+
+
+;######### PVT CONFIG ############
+PVT.implementation=RTKLIB_PVT
+PVT.positioning_mode=PPP_Static ; 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.dump_filename=./PVT
+PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
+PVT.flag_nmea_tty_port=false;
+PVT.nmea_dump_devname=/dev/pts/4
+PVT.flag_rtcm_server=false
+PVT.flag_rtcm_tty_port=false
+PVT.rtcm_dump_devname=/dev/pts/1
+PVT.dump=false
diff --git a/conf/gnss-sdr_GPS_L1_CA_ibyte.conf b/conf/gnss-sdr_GPS_L1_CA_ibyte.conf
index 8bef7d1c0..da4b273c2 100644
--- a/conf/gnss-sdr_GPS_L1_CA_ibyte.conf
+++ b/conf/gnss-sdr_GPS_L1_CA_ibyte.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
diff --git a/conf/gnss-sdr_GPS_L1_FPGA.conf b/conf/gnss-sdr_GPS_L1_FPGA.conf
index 5def11d31..70ec83ed5 100644
--- a/conf/gnss-sdr_GPS_L1_FPGA.conf
+++ b/conf/gnss-sdr_GPS_L1_FPGA.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -35,12 +38,11 @@ Channel.enable_FPGA=true
;######### ACQUISITION GLOBAL CONFIG ############
+Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fpga
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat
Acquisition_1C.item_type=cshort
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
-Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fpga
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.select_queue_Fpga=0;
Acquisition_1C.threshold=0.005
;Acquisition_1C.pfa=0.01
@@ -50,7 +52,6 @@ Acquisition_1C.doppler_step=500
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga
Tracking_1C.item_type=cshort
-Tracking_1C.if=0
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.pll_bw_hz=45.0;
@@ -60,7 +61,6 @@ Tracking_1C.order=3;
;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
-TelemetryDecoder_1C.decimation_factor=1;
;######### OBSERVABLES CONFIG ############
Observables.implementation=GPS_L1_CA_Observables
@@ -82,4 +82,3 @@ PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.dump=false
-
diff --git a/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf b/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf
index 082a1b3f4..9982a1cbd 100644
--- a/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -68,8 +71,7 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.008
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=500
@@ -79,7 +81,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=45.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
diff --git a/conf/gnss-sdr_GPS_L1_LimeSDR.conf b/conf/gnss-sdr_GPS_L1_LimeSDR.conf
index 6ad918af0..c50572aef 100644
--- a/conf/gnss-sdr_GPS_L1_LimeSDR.conf
+++ b/conf/gnss-sdr_GPS_L1_LimeSDR.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
diff --git a/conf/gnss-sdr_GPS_L1_SPIR.conf b/conf/gnss-sdr_GPS_L1_SPIR.conf
index 4df77678f..f6fa9a076 100644
--- a/conf/gnss-sdr_GPS_L1_SPIR.conf
+++ b/conf/gnss-sdr_GPS_L1_SPIR.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -11,107 +13,43 @@ GNSS-SDR.internal_fs_sps=4000000
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Spir_File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/dtalogger/signals/spir/data/20Secs/20Secs_L1.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=int
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=80000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Pass_Through
DataTypeAdapter.item_type=float
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
InputFilter.implementation=Freq_Xlating_Fir_Filter
-;InputFilter.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=float
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.45
InputFilter.band2_begin=0.55
InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter.sampling_frequency=80000000
InputFilter.IF=10164
InputFilter.decimation_factor=20
@@ -119,105 +57,58 @@ InputFilter.decimation_factor=20
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
Resampler.sample_freq_in=80000000
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler.sample_freq_out=4000000
-;#dump: Dump the resamplered data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=10
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring
Channels.in_acquisition=1
-;#signal:
-;# "1C" GPS L1 C/A
-;# "1B" Galileo E1B
Channel.signal=1C
-;Galileo FM3 -> PRN 19
-;Galileo FM4 -> PRN 20
;######### CHANNEL 0 CONFIG ############
-
-;Channel0.signal=1B
-;#satellite: Satellite PRN ID for this channel. Disable this option to random search
;Channel0.satellite=20
;######### CHANNEL 1 CONFIG ############
-;Channel1.signal=1B
;Channel1.satellite=12
;######### CHANNEL 2 CONFIG ############
-;Channel2.signal=1B
-;#satellite: Satellite PRN ID for this channel. Disable this option to random search
;Channel2.satellite=11
;######### CHANNEL 3 CONFIG ############
-;Channel3.signal=1B
;Channel3.satellite=19
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.005
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_min=-10000
-;#doppler_step Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#maximum dwells
Acquisition_1C.max_dwells=5
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=20.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
-Tracking_1
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
@@ -225,9 +116,7 @@ TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -237,20 +126,10 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1 ms) [ms]
PVT.output_rate_ms=500
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# RINEX, KML, and NMEA output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=true;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
-
-
diff --git a/conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf b/conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf
index aaef910d3..ba96a533e 100644
--- a/conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Configuration file for using USRP X300 as a RF front-end for GPS L1 signals.
; Set SignalSource.device_address to the IP address of your device
; and run:
@@ -26,154 +29,66 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-; # implementation:
SignalSource.implementation=UHD_Signal_Source
-; # When left empty, the device discovery routines will search all vailable transports on the system (ethernet, usb...)
SignalSource.device_address=192.168.40.2 ; <- PUT THE IP ADDRESS OF YOUR USRP HERE
-; # item_type: Type and resolution for each of the signal samples.
-;SignalSource.item_type=gr_complex
SignalSource.item_type=cshort
-; # sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-; # freq: RF front-end center frequency in [Hz]
SignalSource.freq=1575420000
-; # gain: Front-end Gain in [dB]
SignalSource.gain=40
-; # subdevice: UHD subdevice specification (for USRP1 use A:0 or B:0)
SignalSource.subdevice=A:0
-; # samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-; # repeat: Repeat the processing file.
SignalSource.repeat=false
-; # dump: Dump the Signal source data to a file.
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
-;SignalConditioner.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Pass_Through
DataTypeAdapter.item_type=cshort
-;DataTypeAdapter.item_type=cbyte
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
-;InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=cshort
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=11
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.48
InputFilter.band2_begin=0.52
InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter.sampling_frequency=4000000
InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
Resampler.sample_freq_in=4000000
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler.sample_freq_out=4000000
-;#dump: Dump the resampled data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#system: GPS, GLONASS, GALILEO, SBAS or COMPASS
-;#if the option is disabled by default is assigned GPS
-;Channel.system=GPS
Channel.signal=1C
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
;Channel0.signal=1C
;Channel1.signal=1C
@@ -188,68 +103,28 @@ Channel.signal=1C
;Channel10.signal=1C
;Channel11.signal=1C
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
-
-;######### CHANNEL 0 CONFIG ############
-
-;Channel0.system=GPS
-;Channel0.signal=1C
-
-;#satellite: Satellite PRN ID for this channel. Disable this option to random search
-;Channel0.satellite=11
-
-;######### CHANNEL 1 CONFIG ############
-
-;Channel1.system=GPS
-;Channel1.signal=1C
-;Channel1.satellite=18
-
-
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.01
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.00001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=8000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition] (should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=30.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=4.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
@@ -259,35 +134,23 @@ TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_GPS_L1_USRP_realtime.conf b/conf/gnss-sdr_GPS_L1_USRP_realtime.conf
index 72fa42adf..b432eb6b2 100644
--- a/conf/gnss-sdr_GPS_L1_USRP_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_USRP_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Configuration file for using USRP 1 as a RF front-end for GPS L1 signals.
; Run:
; gnss-sdr --config_file=/path/to/gnss-sdr_GPS_L1_USRP_realtime.conf
@@ -25,145 +28,27 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=UHD_Signal_Source
-;#When left empty, the device discovery routines will search all available transports on the system (ethernet, usb...)
;SignalSource.device_address=192.168.40.2 ; <- PUT THE IP ADDRESS OF YOUR USRP HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=2000000
-;#freq: RF front-end center frequency in [Hz]
SignalSource.freq=1575420000
-;#gain: Front-end Gain in [dB]
SignalSource.gain=60
-;#subdevice: UHD subdevice specification (for USRP1 use A:0 or B:0)
SignalSource.subdevice=A:0
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#dump: Dump the Signal source data to a file.
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;SignalConditioner.implementation=Signal_Conditioner
SignalConditioner.implementation=Pass_Through
-;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data. Please disable it in this version.
-;#implementation: [Pass_Through] disables this block
-DataTypeAdapter.implementation=Pass_Through
-
-;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
-InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
-InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
-InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=2000000
-InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
-InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
-InputFilter.dump_filename=../data/input_filter.dat
-
-
-;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
-Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
-Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
-Resampler.sample_freq_in=8000000
-;#sample_freq_out: the desired sample frequency of the output signal
-Resampler.sample_freq_out=2000000
-;#dump: Dump the resamplered data to a file.
-Resampler.dump=false
-;#dump_filename: Log path and filename.
-Resampler.dump_filename=../data/resampler.dat
-
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=6
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
@@ -175,86 +60,42 @@ Channels.in_acquisition=1
;# "5X" GALILEO E5a I+Q
;# "L5" GPS L5
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel.signal=1C
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
-
-;######### CHANNEL 0 CONFIG ############
-
-;Channel0.system=GPS
-;Channel0.signal=1C
-
-;#satellite: Satellite PRN ID for this channel. Disable this option to random search
-;Channel0.satellite=11
-
-;######### CHANNEL 1 CONFIG ############
-
-;Channel1.system=GPS
-;Channel1.signal=1C
-;Channel1.satellite=18
-
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.01
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition] (should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=30.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=4.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -264,21 +105,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf b/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf
index 1cd08b216..fd7b5d8ff 100644
--- a/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf
+++ b/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -12,233 +14,87 @@ GNSS-SDR.internal_fs_sps=4000000
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
SignalSource.item_type=ishort
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: Use [Ishort_To_Complex] or [Pass_Through]
DataTypeAdapter.implementation=Ishort_To_Complex
-;#dump: Dump the filtered data to a file.
DataTypeAdapter.dump=false
-;#dump_filename: Log path and filename.
DataTypeAdapter.dump_filename=../data/data_type_adapter.dat
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-;InputFilter.band1_end=0.8
-InputFilter.band1_end=0.85
-InputFilter.band2_begin=0.90
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=4000000
-InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
Resampler.sample_freq_in=4000000
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler.sample_freq_out=4000000
-;#dump: Dump the resamplered data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available satellite channels.
Channels_1C.count=5
-;#in_acquisition: Number of channels simultaneously acquiring
Channels.in_acquisition=1
-;######### CHANNEL 0 CONFIG ############
-Channel0.signal=1C
-Channel0.satellite=1
-Channel0.repeat_satellite=false
-
-;######### CHANNEL 1 CONFIG ############
-Channel1.signal=1C
-Channel1.satellite=11
-Channel1.repeat_satellite=false
-
-;######### CHANNEL 2 CONFIG ############
-Channel2.signal=1C
-Channel2.satellite=17
-Channel2.repeat_satellite=false
-
-;######### CHANNEL 3 CONFIG ############
-Channel3.signal=1C
-Channel3.satellite=20
-Channel3.repeat_satellite=false
-
-;######### CHANNEL 4 CONFIG ############
-Channel4.signal=1C
-Channel4.satellite=32
-Channel4.repeat_satellite=false
-
;######### ACQUISITION GLOBAL CONFIG ############_1C
Acquisition_1C.implementation=GPS_L1_CA_PCPS_QuickSync_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent-integration_time_ms=4
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=true
-;#filename: Log path and filename
;Acquisition_1C.dump_filename=./acq_dump.dat
;######### ACQUISITION CHANNELS CONFIG ######
Acquisition_1C.implementation=GPS_L1_CA_PCPS_QuickSync_Acquisition
-;#threshold: Acquisition threshold
Acquisition_1C.threshold=0.4
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#repeat_satellite: Use only jointly with the satellte PRN ID option.
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=50.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=4.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A.
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1 ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea
PVT.flag_nmea_tty_port=true
@@ -246,7 +102,5 @@ PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_GPS_L1_bladeRF.conf b/conf/gnss-sdr_GPS_L1_bladeRF.conf
index 84fe13d8b..80e9ddda8 100644
--- a/conf/gnss-sdr_GPS_L1_bladeRF.conf
+++ b/conf/gnss-sdr_GPS_L1_bladeRF.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -17,8 +20,7 @@ SignalSource.if_gain=48
SignalSource.AGC_enabled=false
SignalSource.samples=0
SignalSource.repeat=false
-;# Next line enables the bladeRF
-SignalSource.osmosdr_args=bladerf=0
+SignalSource.osmosdr_args=bladerf=0 ; This line enables the bladeRF
SignalSource.enable_throttle_control=false
SignalSource.dump=false
SignalSource.dump_filename=./signal_source.dat
@@ -63,11 +65,9 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.015
Acquisition_1C.doppler_max=10000
-Acquisition_1C.doppler_min=-10000
Acquisition_1C.doppler_step=500
Acquisition_1C.max_dwells=15
Acquisition_1C.dump=false
@@ -76,7 +76,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
@@ -89,7 +88,6 @@ TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-#Observables.implementation=GPS_L1_CA_Observables
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat
diff --git a/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf b/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf
index 67fe037f8..3de8486d8 100644
--- a/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -5,9 +8,6 @@
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
-;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [Sps].
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
GNSS-SDR.internal_fs_sps=2000000
@@ -73,10 +73,6 @@ InputFilter.sampling_frequency=2000000
InputFilter.IF=0; IF deviation due to front-end LO inaccuracies [Hz]
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;# DISABLED IN THE RTL-SDR REALTIME
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
Resampler.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
@@ -88,12 +84,10 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.015
;Acquisition_1C.pfa=0.0001
Acquisition_1C.doppler_max=10000
-Acquisition_1C.doppler_min=-10000
Acquisition_1C.doppler_step=500
Acquisition_1C.max_dwells=15
Acquisition_1C.dump=false
@@ -103,7 +97,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.dump=false
Tracking_1C.dump_filename=./tracking_ch_
Tracking_1C.pll_bw_hz=40.0;
@@ -115,7 +108,6 @@ Tracking_1C.early_late_space_chips=0.5;
;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
-TelemetryDecoder_1C.decimation_factor=1;
;######### OBSERVABLES CONFIG ############
diff --git a/conf/gnss-sdr_GPS_L1_gr_complex.conf b/conf/gnss-sdr_GPS_L1_gr_complex.conf
index 99118a0c4..7f83c666c 100644
--- a/conf/gnss-sdr_GPS_L1_gr_complex.conf
+++ b/conf/gnss-sdr_GPS_L1_gr_complex.conf
@@ -1,19 +1,23 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
-;
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [samples per second].
-GNSS-SDR.internal_fs_sps=2600000
+GNSS-SDR.internal_fs_sps=4000000
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
-SignalSource.filename=/home/javier/gnss/gnss-simulator/build/signal_out.bin ; <- PUT YOUR FILE HERE
-SignalSource.item_type=byte
-SignalSource.sampling_frequency=2600000
+SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
+SignalSource.item_type=ishort
+SignalSource.sampling_frequency=4000000
+SignalSource.freq=1575420000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.enable_throttle_control=false
@@ -22,12 +26,8 @@ SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner.implementation=Signal_Conditioner
-;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
-DataTypeAdapter.implementation=Ibyte_To_Complex
+DataTypeAdapter.implementation=Ishort_To_Complex
DataTypeAdapter.dump=false
-;#dump_filename: Log path and filename.
DataTypeAdapter.dump_filename=../data/DataTypeAdapter.dat
InputFilter.implementation=Pass_Through
@@ -47,9 +47,8 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
-Acquisition_1C.threshold=0.05
+Acquisition_1C.coherent_integration_time_ms=1
+Acquisition_1C.threshold=0.008
;Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=250
@@ -60,9 +59,10 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
-Tracking_1C.pll_bw_hz=25.0;
-Tracking_1C.dll_bw_hz=1.0;
+Tracking_1C.dump=true
+Tracking_1C.dump_filename=epl_tracking_ch_
+Tracking_1C.pll_bw_hz=40.0;
+Tracking_1C.dll_bw_hz=4.0;
Tracking_1C.order=3;
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_c
diff --git a/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf b/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf
index 0111fc5e9..33c3a07b6 100644
--- a/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf
+++ b/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -33,8 +36,7 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.005
;Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=10000
@@ -46,7 +48,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking_GPU
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.pll_bw_hz=45.0;
diff --git a/conf/gnss-sdr_GPS_L1_ishort.conf b/conf/gnss-sdr_GPS_L1_ishort.conf
index e3395c982..373049a25 100644
--- a/conf/gnss-sdr_GPS_L1_ishort.conf
+++ b/conf/gnss-sdr_GPS_L1_ishort.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -13,7 +16,7 @@ ControlThread.wait_for_flowgraph=false
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
-SignalSource.filename=/archive/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ;/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
+SignalSource.filename=/archive/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
SignalSource.item_type=ishort
SignalSource.sampling_frequency=4000000
SignalSource.samples=0
@@ -26,18 +29,12 @@ SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner.implementation=Signal_Conditioner
-;DataTypeAdapter.implementation=Ishort_To_Complex
DataTypeAdapter.implementation=Ishort_To_Cshort
InputFilter.implementation=Pass_Through
-;InputFilter.input_item_type=gr_complex
-;InputFilter.output_item_type=gr_complex
InputFilter.item_type=cshort
-;Resampler.implementation=Pass_Through
-;Resampler.item_type=gr_complex
Resampler.implementation=Direct_Resampler
Resampler.sample_freq_in=4000000
Resampler.sample_freq_out=2000000
-;Resampler.item_type=gr_complex
Resampler.item_type=cshort
;######### CHANNELS GLOBAL CONFIG ############
@@ -49,39 +46,33 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=cshort
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.008
;Acquisition_1C.pfa=0.000001
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=250
-Acquisition_1C.tong_init_val=2
-Acquisition_1C.tong_max_val=10
-Acquisition_1C.tong_max_dwells=20
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat
-
+Acquisition_1C.blocking=false;
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
Tracking_1C.item_type=cshort
-Tracking_1C.if=0
-Tracking_1C.dump=false
-Tracking_1C.dump_filename=../data/epl_tracking_ch_
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=4.0;
Tracking_1C.order=3;
+Tracking_1C.dump=false;
+Tracking_1C.dump_filename=./epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
-TelemetryDecoder_1C.decimation_factor=1;
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-Observables.dump=false
+Observables.dump=true
Observables.dump_filename=./observables.dat
diff --git a/conf/gnss-sdr_GPS_L1_nsr.conf b/conf/gnss-sdr_GPS_L1_nsr.conf
index ec085add3..2b3d3f5f4 100644
--- a/conf/gnss-sdr_GPS_L1_nsr.conf
+++ b/conf/gnss-sdr_GPS_L1_nsr.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Sample configuration file for IFEN SX-NSR software receiver front-end
; http://www.ifen.com/products/sx-scientific-gnss-solutions/nsr-software-receiver.html
; This sample configuration is able to process directly .sream binary files
@@ -80,18 +83,15 @@ Resampler.item_type=gr_complex
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=0
Channels_2S.count=8
Channels.in_acquisition=1
-#Channel.signal=1C
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.scoherent_integration_time_ms=1
Acquisition_1C.threshold=0.0075
;Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=10000
@@ -101,7 +101,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.coherent_integration_time_ms=20
Acquisition_2S.threshold=0.00045
Acquisition_2S.doppler_max=5000
@@ -115,7 +114,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=45.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
@@ -125,7 +123,6 @@ Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=1.5;
Tracking_2S.dll_bw_hz=0.4;
Tracking_2S.order=2;
@@ -143,11 +140,8 @@ TelemetryDecoder_2S.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
diff --git a/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf b/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf
index db5e6d23a..d31885566 100644
--- a/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf
+++ b/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Sample configuration file for IFEN SX-NSR software receiver front-end
; http://www.ifen.com/products/sx-scientific-gnss-solutions/nsr-software-receiver.html
; This sample configuration is able to process directly .sream binary files
@@ -94,7 +97,6 @@ Resampler.item_type=gr_complex
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
Channels.in_acquisition=1
Channel.signal=1C
diff --git a/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf b/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf
index 83f808645..fa8996dc7 100644
--- a/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
diff --git a/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf b/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf
index 8cd02bd32..e186f1da7 100644
--- a/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf
+++ b/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,51 +27,26 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/home/javier/signals/signal_source_int.dat
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=2000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file. Disable this option in this version
SignalSource.repeat=false
-;#dump: Dump the Signal source data to a file. Disable this option in this version
SignalSource.dump=false
SignalSource.dump_filename=dump.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#[Pass_Through] disables this block
InputFilter.implementation=Pulse_Blanking_Filter
-
InputFilter.Pfa=0.001
-;#input_item_type: Type and resolution for input signal samples. Use only gr_complex in this version.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples. Use only gr_complex in this version.
InputFilter.output_item_type=gr_complex
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
;######### CHANNELS GLOBAL CONFIG ############
@@ -81,12 +58,8 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
-;#use_CFAR_algorithm: If enabled, acquisition estimates the input signal power to implement CFAR detection algorithms
-;#notice that this affects the Acquisition threshold range!
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.use_CFAR_algorithm=false;
-;#threshold: Acquisition threshold
Acquisition_1C.threshold=20
;Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=5000
@@ -97,27 +70,15 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;# Extended correlation after telemetry bit synchronization
-;# Valid values are: [1,2,4,5,10,20] (integer divisors of the GPS L1 CA bit period (20 ms) )
-;# Longer integration period require more stable front-end LO
Tracking_1C.extend_correlation_ms=10
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=35;
Tracking_1C.pll_bw_narrow_hz=30;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=1.5;
-;#fll_bw_hz: FLL loop filter bandwidth [Hz]
Tracking_1C.fll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
diff --git a/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf b/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf
index 944a1ba36..91b952ad0 100644
--- a/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -29,119 +31,48 @@ GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
;#implementation
SignalSource.implementation=RtlTcp_Signal_Source
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
-SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
SignalSource.sampling_frequency=1200000
-;#freq: RF front-end center frequency in [Hz]
SignalSource.freq=1575420000
-;#gain: Front-end overall gain Gain in [dB]
SignalSource.gain=40
-;#rf_gain: Front-end RF stage gain in [dB]
SignalSource.rf_gain=40
-;#rf_gain: Front-end IF stage gain in [dB]
SignalSource.if_gain=30
-;#AGC_enabled: Front-end AGC enabled or disabled
SignalSource.AGC_enabled = false
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file. Disable this option in this version
SignalSource.repeat=false
-;#dump: Dump the Signal source data to a file. Disable this option in this version
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
-
-;#Address of the rtl_tcp server (IPv6 allowed)
SignalSource.address=127.0.0.1
-
-;#Port of the rtl_tcp server
SignalSource.port=1234
-
-;# Set to true if I/Q samples come swapped
SignalSource.swap_iq=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Pass_Through
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.45
InputFilter.band2_begin=0.55
InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
@@ -149,22 +80,15 @@ InputFilter.grid_density=16
;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter.sampling_frequency=1200000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter.IF=80558
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;# DISABLED IN THE RTL-SDR REALTIME
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
Resampler.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=4
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
Channel.signal=1C
@@ -172,52 +96,30 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms =1
Acquisition_1C.threshold=0.015
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_min=-10000
-;#doppler_step Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#maximum dwells
Acquisition_1C.max_dwells=15
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
@@ -225,9 +127,7 @@ TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -237,21 +137,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=true
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf b/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf
index b4e025f6f..f3252578b 100644
--- a/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf
+++ b/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -42,16 +45,16 @@ SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
SignalSource.enable_throttle_control=false
-;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM
+;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM
;# temperature compensated oscillator (TCXO), which is well suited for GNSS
;# signal processing, and a 4.5 V powered bias-tee to feed an active antenna.
-;# Whether the bias-tee is turned off before reception depends on which version
-;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version
-;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the
-;# bias-tee, and then call gnss-sdr.
+;# Whether the bias-tee is turned off before reception depends on which version
+;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version
+;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the
+;# bias-tee, and then call gnss-sdr.
;# See https://github.com/rtlsdrblog/rtl_biast
;# After reception the bias-tee is switched off automatically by the program.
-;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be
+;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be
;# activated by uncommenting the following line:
;SignalSource.osmosdr_args=rtl,bias=1
@@ -88,10 +91,6 @@ InputFilter.sampling_frequency=1999898
InputFilter.IF=80558 ; IF deviation due to front-end LO inaccuracies [Hz]
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;# DISABLED IN THE RTL-SDR REALTIME
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
Resampler.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
@@ -103,8 +102,7 @@ Channel.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.015
;Acquisition_1C.pfa=0.0001
Acquisition_1C.doppler_max=10000
@@ -118,7 +116,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.dump=false
Tracking_1C.dump_filename=./tracking_ch_
Tracking_1C.pll_bw_hz=40.0;
@@ -139,7 +136,6 @@ Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.iono_model=Broadcast ; options: OFF, Broadcast, SBAS, Iono-Free-LC, Estimate_STEC, IONEX
diff --git a/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf b/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf
index f6e2ec730..84753bee7 100644
--- a/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf
+++ b/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -84,8 +87,7 @@ Channel.signal=1C
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.007
;Acquisition_1C.pfa=0.0001
Acquisition_1C.doppler_max=10000
@@ -99,7 +101,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0_
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=1.5;
Tracking_1C.order=3;
diff --git a/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf b/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf
index 97710c4f0..6d61e063b 100644
--- a/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf
+++ b/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf
@@ -1,7 +1,11 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Configuration file for using USRP1 as a RF front-end for GPS L2C signals
; Run:
; gnss-sdr --config_file=/path/to/gnss-sdr_GPS_L2C_USRP1_realtime.conf
;
+
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
@@ -46,81 +50,29 @@ DataTypeAdapter.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter.implementation=Freq_Xlating_Fir_Filter
-
-InputFilter.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.45
InputFilter.band2_begin=0.55
InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter.sampling_frequency=20000000
-
InputFilter.IF=-1600000
-
-;# Decimation factor after the frequency tranaslating block
InputFilter.decimation_factor=1
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
+InputFilter.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
@@ -133,9 +85,7 @@ Resampler.sample_freq_out=2000000
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_2S.count=1
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
Channel.signal=2S
@@ -155,14 +105,11 @@ Channel7.signal=2S
;######### ACQUISITION GLOBAL CONFIG ############
-;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.threshold=0.0013
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=10000
-Acquisition_2S.doppler_min=-10000
Acquisition_2S.doppler_step=100
Acquisition_2S.max_dwells=1
Acquisition_2S.dump=false
@@ -172,7 +119,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=1.5;
Tracking_2S.dll_bw_hz=0.3;
Tracking_2S.order=3;
diff --git a/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf b/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf
index caaf4536c..55a84a13e 100644
--- a/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf
+++ b/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Configuration file for using USRP X300 as a RF front-end for GPS L2C signals
; Set SignalSource.device_address to the IP address of your device
; and run:
@@ -87,9 +90,7 @@ Resampler.sample_freq_out=4000000
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_2S.count=1
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
Channel.signal=2S
@@ -112,7 +113,6 @@ Channel7.signal=2S
;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.threshold=0.0015
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=5000
@@ -125,7 +125,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.25;
Tracking_2S.order=2;
diff --git a/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf b/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf
index 54e092708..2207039da 100644
--- a/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf
+++ b/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; Configuration file for using USRP X300 as a RF front-end for Galileo E1 signals.
; Set SignalSource.device_address to the IP address of your device
; and run:
@@ -38,8 +41,7 @@ Channel.signal=1B
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.item_type=gr_complex
-Acquisition_1B.if=0
-Acquisition_1B.sampled_ms=4
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=1
Acquisition_1B.pfa=0.000008
Acquisition_1B.doppler_max=6000
@@ -52,7 +54,6 @@ Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.item_type=gr_complex
-Tracking_1B.if=0
Tracking_1B.pll_bw_hz=20.0;
Tracking_1B.dll_bw_hz=2.0;
Tracking_1B.order=3;
diff --git a/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf b/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf
index ab6802559..8ed21451f 100644
--- a/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf
+++ b/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -10,259 +13,86 @@ GNSS-SDR.internal_fs_sps=4000000
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation:
SignalSource.implementation=File_Signal_Source
-
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
-
-;#item_type: Type and resolution for each of the signal samples.
-;#Use gr_complex for 32 bits float I/Q or ishort for I/Q interleaved short integer.
-;#If ishort is selected you should have to instantiate the Ishort_To_Complex data_type_adapter.
SignalSource.item_type=ishort
-
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: Use [Ishort_To_Complex] or [Pass_Through]
DataTypeAdapter.implementation=Ishort_To_Complex
-;#dump: Dump the filtered data to a file.
DataTypeAdapter.dump=false
-;#dump_filename: Log path and filename.
DataTypeAdapter.dump_filename=../data/data_type_adapter.dat
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.implementation=Pass_Through
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
-InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
-InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-#used for gps
-InputFilter.band1_begin=0.0
-;InputFilter.band1_end=0.8
-InputFilter.band1_end=0.85
-InputFilter.band2_begin=0.90
-InputFilter.band2_end=1.0
-
-#used for galileo
-InputFilter.band1_begin=0.0
-;InputFilter.band1_end=0.8
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-InputFilter.sampling_frequency=4000000
-InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
-InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
-InputFilter.dump_filename=../data/input_filter.dat
-
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-
-;#dump: Dump the resamplered data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
-
-;#item_type: Type and resolution for each of the signal samples.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
-Resampler.sample_freq_in=4000000
-
-;#sample_freq_out: the desired sample frequency of the output signal
-Resampler.sample_freq_out=4000000
-
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available satellite channels.
Channels_1B.count=4
-;#in_acquisition: Number of channels simultaneously acquiring
Channels.in_acquisition=1
Channel.signal=1B
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_QuickSync_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1B.coherent_integration_time_ms=4
-;#threshold: Acquisition threshold
Acquisition_1B.threshold=0.05
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms];
Acquisition_1B.coherent_integration_time_ms=8
Acquisition_1B.cboc=false
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
-;#implementation:
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=20.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
-Tracking_1B.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
+Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A or [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation algorithm:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
-
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
-
-;# KML, GeoJSON, NMEA and RTCM output configuration
-
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump, ".kml" and ".geojson" to GIS-friendly formats.
PVT.dump_filename=./PVT
-
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-
-;#flag_nmea_tty_port: Enables or disables the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=true;
-
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
-
-;#flag_rtcm_server: Enables or disables a TCP/IP server transmitting RTCM 3.2 messages (accepts multiple clients, port 2101 by default)
PVT.flag_rtcm_server=false;
-
-;#flag_rtcm_tty_port: Enables or disables the RTCM log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_rtcm_tty_port=false;
-
-;#rtcm_dump_devname: serial device descriptor for RTCM logging
PVT.rtcm_dump_devname=/dev/pts/1
diff --git a/conf/gnss-sdr_Galileo_E1_ishort.conf b/conf/gnss-sdr_Galileo_E1_ishort.conf
index 2f051700a..ff0f52a5a 100644
--- a/conf/gnss-sdr_Galileo_E1_ishort.conf
+++ b/conf/gnss-sdr_Galileo_E1_ishort.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -11,190 +14,65 @@ GNSS-SDR.internal_fs_sps=4000000
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=ishort
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
-SignalSource.enable_throttle_control=false
+SignalSource.enable_throttle_control=true
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ishort_To_Complex
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation:
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of GNU Radio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=4000000
-InputFilter.IF=0
-;#dump: Dump the filtered data to a file.
-InputFilter.dump=false
-;#dump_filename: Log path and filename.
-InputFilter.dump_filename=../data/input_filter.dat
-
-
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neighborhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
Resampler.sample_freq_in=4000000
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler.sample_freq_out=4000000
-;#dump: Dump the resampled data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
Channel.signal=1B
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
-Acquisition_1B.pfa=0.000002
-;#doppler_max: Maximum expected Doppler shift [Hz]
+Acquisition_1B.pfa=0.00001
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#cboc: Only for [Galileo_E1_PCPS_Ambiguous_Acquisition]. This option allows you to choose between acquiring with CBOC signal [true] or sinboc(1,1) signal [false].
-;#Use only if GNSS-SDR.internal_fs_sps is greater than or equal to 6138000
Acquisition_1B.cboc=false
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
-
-
-;######### ACQUISITION CHANNELS CONFIG ######
-
-;######### ACQUISITION CH 0 CONFIG ############
-;#repeat_satellite: Use only jointly with the satellite PRN ID option. The default value is false
-;Acquisition_1B0.repeat_satellite = true
-;Acquisition_1B1.repeat_satellite = true
-;Acquisition_1B2.repeat_satellite = true
-;Acquisition_1B3.repeat_satellite = true
+Acquisition_1B.blocking=false
;######### TRACKING GLOBAL CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
-Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
-Tracking_1B.dll_bw_hz=2.0;
-;#fll_bw_hz: FLL loop filter bandwidth [Hz]
-Tracking_1B.fll_bw_hz=10.0;
-;#order: PLL/DLL loop filter order [2] or [3]
-Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
+Tracking_1B.dump=true
+Tracking_1B.dump_filename=./veml_tracking_ch_
+Tracking_1B.pll_bw_hz=20.0;
+Tracking_1B.dll_bw_hz=3.0;
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.track_pilot=true
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
@@ -205,39 +83,25 @@ TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enables or disables the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=true
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
-;#flag_rtcm_server: Enables or disables a TCP/IP server transmitting RTCM 3.2 messages (accepts multiple clients, port 2101 by default)
PVT.flag_rtcm_server=true;
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1045_rate_ms=5000
PVT.rtcm_MSM_rate_ms=1000
-;#flag_rtcm_tty_port: Enables or disables the RTCM log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_rtcm_tty_port=false;
-;#rtcm_dump_devname: serial device descriptor for RTCM logging
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump, ".kml" and ".geojson" to GIS-friendly formats.
-PVT.dump_filename=./PVT
\ No newline at end of file
+PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_Galileo_E1_nsr.conf b/conf/gnss-sdr_Galileo_E1_nsr.conf
index f7ca01480..b95b2a972 100644
--- a/conf/gnss-sdr_Galileo_E1_nsr.conf
+++ b/conf/gnss-sdr_Galileo_E1_nsr.conf
@@ -1,3 +1,6 @@
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -21,15 +24,10 @@ SignalSource.samples=0 ; 0 means the entire file
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-
-
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
@@ -78,8 +76,7 @@ Channel.signal=1B
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.item_type=gr_complex
-Acquisition_1B.if=0
-Acquisition_1B.sampled_ms=4
+Acquisition_1B.coherent_integration_time_ms=4
Acquisition_1B.pfa=0.0000008
Acquisition_1B.doppler_max=15000
Acquisition_1B.doppler_step=125
@@ -91,7 +88,6 @@ Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.item_type=gr_complex
-Tracking_1B.if=0
Tracking_1B.pll_bw_hz=20.0;
Tracking_1B.dll_bw_hz=2.0;
Tracking_1B.order=3;
diff --git a/conf/gnss-sdr_Galileo_E5a.conf b/conf/gnss-sdr_Galileo_E5a.conf
index 702942f55..c4df4139f 100644
--- a/conf/gnss-sdr_Galileo_E5a.conf
+++ b/conf/gnss-sdr_Galileo_E5a.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,159 +27,33 @@ GNSS-SDR.internal_fs_sps=32000000
;GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/ifen/32MS_complex.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=32000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;SignalConditioner.implementation=Signal_Conditioner
SignalConditioner.implementation=Pass_Through
-;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
-DataTypeAdapter.implementation=Pass_Through
-
-;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation:
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
-InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
-InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
-InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=32000000
-InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
-InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
-InputFilter.dump_filename=../data/input_filter.dat
-
-
-;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
-Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
-Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
-Resampler.sample_freq_in=8000000
-;#sample_freq_out: the desired sample frequency of the output signal
-Resampler.sample_freq_out=4000000
-;#dump: Dump the resamplered data to a file.
-Resampler.dump=false
-;#dump_filename: Log path and filename.
-Resampler.dump_filename=../data/resampler.dat
-
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available satellite channels.
Channels_5X.count=1
-;#in_acquisition: Number of channels simultaneously acquiring
Channels.in_acquisition=1
-;#system: GPS, GLONASS, Galileo, SBAS or Compass
-;#if the option is disabled by default is assigned GPS
-Channel.signal=5X
;######### SPECIFIC CHANNELS CONFIG ######
;#The following options are specific to each channel and overwrite the generic options
;######### CHANNEL 0 CONFIG ############
-;Channel0.signal=5X
-;#satellite: Satellite PRN ID for this channel. Disable this option to random search
;Channel0.satellite=19
-;Channel0.repeat_satellite=true
;######### CHANNEL 1 CONFIG ############
-
-;Channel1.system=Galileo
-;Channel1.signal=5Q
;Channel1.satellite=12
;######### CHANNEL 2 CONFIG ############
-
-;Channel2.system=Galileo
-;Channel2.signal=5Q
;Channel2.satellite=11
;######### CHANNEL 3 CONFIG ############
@@ -188,97 +64,56 @@ Channel.signal=5X
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_5X.implementation=Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_5X.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_5X.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_5X.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_5X.threshold=0.001
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_5X.pfa=0.0003
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_5X.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_5X.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition] (should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_5X.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_5X.max_dwells=1
-;#CAF filter: **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is desactivated. Recommended value 3000 Hz
Acquisition_5X.CAF_window_hz=0
-;#Zero_padding: **Only for E5a** Avoids power loss and doppler ambiguity in bit transitions by correlating one code with twice the input data length, ensuring that at least one full code is present without transitions.
-;#If set to 1 it is ON, if set to 0 it is OFF.
Acquisition_5X.Zero_padding=0
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
-Acquisition_5X.dump=true
-;#filename: Log path and filename
+Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_5X.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_5X.if=0
-;#dll_ti_ms: **Only for E5a** loop filter integration time after initialization (secondary code delay search)[ms]
-;Tracking_5X.ti_ms=3;
-Tracking_5X.ti_ms=1;
-;#pll_bw_hz: PLL loop filter bandwidth during initialization [Hz]
Tracking_5X.pll_bw_hz=20.0;
-;#dll_bw_hz: DLL loop filter bandwidth during initialization [Hz]
Tracking_5X.dll_bw_hz=20.0;
Tracking_5X.pll_bw_narrow_hz=2.0;
Tracking_5X.dll_bw_narrow_hz=5.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_5X.order=2;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_5X.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
-Tracking_5X.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
+Tracking_5X.dump=false
Tracking_5X.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER CONFIG ############
-;#implementation:
TelemetryDecoder_5X.implementation=Galileo_E5a_Telemetry_Decoder
TelemetryDecoder_5X.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation algorithm:
PVT.implementation=RTKLIB_PVT
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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=true;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf b/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf
index 661920ca0..f66079cb4 100644
--- a/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf
+++ b/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -74,7 +76,7 @@ Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-Channels_5X.count=1
+Channels_5X.count=8
Channels.in_acquisition=1
Channel.signal=5X
@@ -83,7 +85,7 @@ Channel.signal=5X
;######### CHANNEL 0 CONFIG ############
Channel0.signal=5X
-Channel0.satellite=19
+;Channel0.satellite=19
;Channel0.repeat_satellite=true
;######### CHANNEL 1 CONFIG ############
@@ -101,7 +103,6 @@ Channel3.signal=5X
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_5X.implementation=Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
Acquisition_5X.item_type=gr_complex
-Acquisition_5X.if=0
Acquisition_5X.coherent_integration_time_ms=1
Acquisition_5X.threshold=0.002
Acquisition_5X.doppler_max=10000
@@ -117,10 +118,8 @@ Acquisition_5X.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
Tracking_5X.item_type=gr_complex
-Tracking_5X.if=0
Tracking_5X.pll_bw_hz=20.0;
Tracking_5X.dll_bw_hz=20.0;
-Tracking_5X.ti_ms=1; **Only for E5a** loop filter integration time after initialization (secondary code delay search)[ms]
Tracking_5X.pll_bw_narrow_hz=20.0;
Tracking_5X.dll_bw_narrow_hz=20.0;
Tracking_5X.order=2;
diff --git a/conf/gnss-sdr_Hybrid_byte.conf b/conf/gnss-sdr_Hybrid_byte.conf
index aa7caae99..a70b62820 100644
--- a/conf/gnss-sdr_Hybrid_byte.conf
+++ b/conf/gnss-sdr_Hybrid_byte.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -12,129 +14,40 @@ GNSS-SDR.internal_fs_sps=20000000
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/Fraunhofer/L125_III1b_210s_L1.bin ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples..
SignalSource.item_type=byte
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=20000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ibyte_To_Complex
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples..
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=20000000
-InputFilter.IF=0
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signal
Resampler.sample_freq_in=20000000
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler.sample_freq_out=20000000
-;#dump: Dump the resamplered data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -158,123 +71,75 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.0060
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000008
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=45.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=4.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_Hybrid_byte_sim.conf b/conf/gnss-sdr_Hybrid_byte_sim.conf
index 7df406547..cd5ce2f3c 100644
--- a/conf/gnss-sdr_Hybrid_byte_sim.conf
+++ b/conf/gnss-sdr_Hybrid_byte_sim.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -7,139 +9,48 @@
;######### GLOBAL OPTIONS ##################
;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [samples per second].
-;GNSS-SDR.internal_fs_sps=2048000
GNSS-SDR.internal_fs_sps=2600000
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
-;#SignalSource.filename=/home/javier/Descargas/rtlsdr_tcxo_l1/rtlsdr_tcxo_l1.bin ; <- PUT YOUR FILE HERE
SignalSource.filename=/Users/carlesfernandez/git/cttc/build/signal_out.bin ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=byte
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#dump: Dump the Signal source data to a file.
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data. Please disable it in this version.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ibyte_To_Complex
DataTypeAdapter.dump=false
-;#dump_filename: Log path and filename.
DataTypeAdapter.dump_filename=../data/DataTypeAdapter.dat
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=2600000
-InputFilter.IF=0
-
-
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
Resampler.implementation=Pass_Through
Resampler.item_type = gr_complex;
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=11
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel1.signal=1C
Channel2.signal=1C
Channel3.signal=1C
@@ -159,109 +70,63 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
-;#use_CFAR_algorithm: If enabled, acquisition estimates the input signal power to implement CFAR detection algorithms
-;#notice that this affects the Acquisition threshold range!
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.use_CFAR_algorithm=false;
-;#threshold: Acquisition threshold
Acquisition_1C.threshold=15
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=6000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=100
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000008
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=20.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=1.5;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
-
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -270,14 +135,10 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_Hybrid_gr_complex.conf b/conf/gnss-sdr_Hybrid_gr_complex.conf
index 63f92330e..14fee756d 100644
--- a/conf/gnss-sdr_Hybrid_gr_complex.conf
+++ b/conf/gnss-sdr_Hybrid_gr_complex.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -10,135 +12,24 @@
GNSS-SDR.internal_fs_sps=4092000
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/sim/GPS_sim1.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4092000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Pass_Through
-;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
-DataTypeAdapter.implementation=Pass_Through
-DataTypeAdapter.item_type=gr_complex
-
-;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
-
-InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
-InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
-InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;# Original sampling frequency stored in the signal file
-InputFilter.sampling_frequency=4092000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.IF=5499998.47412109
-
-;# Decimation factor after the frequency tranaslating block
-InputFilter.decimation_factor=8
-
-;#dump: Dump the filtered data to a file.
-InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
-InputFilter.dump_filename=../data/input_filter.dat
-
-
-;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-Resampler.implementation=Pass_Through
-
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=1
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#signal:
-;# "1C" GPS L1 C/A
-;# "2S" GPS L2 L2C (M)
-;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
-;# "5X" GALILEO E5a I+Q
-
;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel0.signal=1C
Channel1.signal=1B
@@ -160,134 +51,80 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.use_CFAR_algorithm=false;
-;#threshold: Acquisition threshold
Acquisition_1C.threshold=30
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=100
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000002
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;# Extended correlation after telemetry bit synchronization
-;# Valid values are: [1,2,4,5,10,20] (integer divisors of the GPS L1 CA bit period (20 ms) )
-;# Longer integration period require more stable front-end LO
Tracking_1C.extend_correlation_ms=10
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40;
Tracking_1C.pll_bw_narrow_hz=25;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=2.0;
-;#fll_bw_hz: FLL loop filter bandwidth [Hz]
-Tracking_1C.fll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#fll_bw_hz: FLL loop filter bandwidth [Hz]
Tracking_1B.fll_bw_hz=10.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=10;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_Hybrid_ishort.conf b/conf/gnss-sdr_Hybrid_ishort.conf
index 6bfa9e8fa..55a70b7a2 100644
--- a/conf/gnss-sdr_Hybrid_ishort.conf
+++ b/conf/gnss-sdr_Hybrid_ishort.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -28,133 +30,36 @@ GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=ishort
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=4000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ishort_To_Complex
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
-;InputFilter.implementation=Fir_Filter
-;InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.implementation=Pass_Through
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter.band1_begin=0.0
-InputFilter.band1_end=0.45
-InputFilter.band2_begin=0.55
-InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter.ampl1_begin=1.0
-InputFilter.ampl1_end=1.0
-InputFilter.ampl2_begin=0.0
-InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter.band1_error=1.0
-InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter.sampling_frequency=4000000
-InputFilter.IF=0
-
-;#dump: Dump the filtered data to a file.
-InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
-InputFilter.dump_filename=../data/input_filter.dat
-
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
-;#item_type: Type and resolution for each of the signal samples.
Resampler.item_type=gr_complex
-;#sample_freq_in: the sample frequency of the input signalq
-Resampler.sample_freq_in=4000000
-;#sample_freq_out: the desired sample frequency of the output signal
-Resampler.sample_freq_out=4000000
-;#dump: Dump the resamplered data to a file.
Resampler.dump=false
-;#dump_filename: Log path and filename.
Resampler.dump_filename=../data/resampler.dat
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=0
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=5
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -174,120 +79,73 @@ Channel7.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.0075
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#implementation: Acquisition algorithm selection for this channel:
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000008; 0.0000008
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
Acquisition_1B.cboc=false;
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=50.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=5.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=20.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
@@ -297,7 +155,5 @@ PVT.rtcm_MT1045_rate_ms=5000 ; Period (in ms) of Galileo ephemeris messages. 0 m
PVT.rtcm_MT1045_rate_ms=5000 ; Period (in ms) of GPS ephemeris messages. 0 mutes this message
PVT.rtcm_MT1097_rate_ms=1000 ; Period (in ms) of Galileo observables. 0 mutes this message
PVT.rtcm_MT1077_rate_ms=1000 ; Period (in ms) of GPS observables. 0 mutes this message
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_Hybrid_nsr.conf b/conf/gnss-sdr_Hybrid_nsr.conf
index 2427aa101..934ca2ffd 100644
--- a/conf/gnss-sdr_Hybrid_nsr.conf
+++ b/conf/gnss-sdr_Hybrid_nsr.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -7,136 +9,60 @@
;######### GLOBAL OPTIONS ##################
;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [samples per second].
-;GNSS-SDR.internal_fs_sps=6826700
GNSS-SDR.internal_fs_sps=2560000
-;GNSS-SDR.internal_fs_sps=4096000
-;GNSS-SDR.internal_fs_sps=5120000
+
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Nsr_File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/media/javier/SISTEMA/signals/ifen/E1L1_FE0_Band0.stream ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=byte
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=20480000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#dump: Dump the Signal source data to a file.
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Pass_Through
DataTypeAdapter.item_type=float
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
-
InputFilter.implementation=Freq_Xlating_Fir_Filter
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=float
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.45
InputFilter.band2_begin=0.55
InputFilter.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
-
-;# Original sampling frequency stored in the signal file
InputFilter.sampling_frequency=20480000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter.IF=5499998.47412109
-
-;# Decimation factor after the frequency tranaslating block
InputFilter.decimation_factor=8
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
Resampler.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -168,103 +94,59 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.0075
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000002
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;# Extended correlation after telemetry bit synchronization
-;# Valid values are: [1,2,4,5,10,20] (integer divisors of the GPS L1 CA bit period (20 ms) )
-;# Longer integration period require more stable front-end LO
Tracking_1C.extend_correlation_ms=1
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40;
Tracking_1C.pll_bw_narrow_hz=20;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=1.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
@@ -272,9 +154,7 @@ TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -283,14 +163,10 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=10;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf b/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf
index e9e5eb0f8..aea77c99c 100644
--- a/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf
+++ b/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -11,62 +13,34 @@ GNSS-SDR.internal_fs_sps=20000000
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/media/javier/SISTEMA/signals/fraunhofer/L125_III1b_210s_L1.bin ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=byte
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=20000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Ibyte_To_Complex
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
InputFilter.implementation=Pass_Through
-
;######### RESAMPLER CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neighborhood interpolation
-;Resampler.implementation=Direct_Resampler
Resampler.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=0
-;#count: Number of available Galileo satellite channels.
-Channels_1B.count=1
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
+Channels_1B.count=8
+
Channels.in_acquisition=1
-;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel1.signal=1B
Channel2.signal=1B
Channel3.signal=1B
@@ -86,132 +60,83 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.scoherent_integration_time_ms=1
Acquisition_1C.use_CFAR_algorithm=false;
-;#threshold: Acquisition threshold
Acquisition_1C.threshold=18
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
+Acquisition_1B.coherent_integration_time_ms=4
Acquisition_1B.acquire_pilot=true
Acquisition_1B.use_CFAR_algorithm=false
-;#threshold: Acquisition threshold
Acquisition_1B.threshold=21
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
Acquisition_1B.bit_transition_flag=true
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=../data/acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=30.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
Tracking_1B.if=0
Tracking_1B.track_pilot=true
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=4.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=0.5;
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_narrow_hz=2.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_narrow_hz=0.25;
Tracking_1B.extend_correlation_symbols=4;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_narrow_chips=0.06;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_narrow_chips=0.25;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
-Tracking_1B.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
+Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf b/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf
index 8b2f05195..2a63b36b6 100644
--- a/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf
+++ b/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -6,11 +8,9 @@
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
-;internal_fs_hz: Internal signal sampling frequency after the signal conditioning stage [Hz].
GNSS-SDR.internal_fs_sps=5456000
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Labsat_Signal_Source
SignalSource.selected_channel=1
;#filename: path to file with the captured GNSS signal samples to be processed
@@ -18,121 +18,58 @@ SignalSource.selected_channel=1
;# the adapter adds "_0000.LS3" to this base path and filename. Next file will be "_0001.LS3" and so on
;# in this example, the first file complete path will be ../signals/GPS_025_0000.LS3
SignalSource.filename=../signals/GPS_025 ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource.sampling_frequency=16368000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource.samples=0
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
-;#dump: Dump the Signal source data to a file.
SignalSource.dump=false
SignalSource.dump_filename=../data/signal_source.dat
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
;######### SIGNAL_CONDITIONER CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter.implementation=Pass_Through
DataTypeAdapter.item_type=gr_complex
;######### INPUT_FILTER CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
InputFilter.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter.dump_filename=../data/input_filter.dat
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter.number_of_bands=2
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.45
InputFilter.band2_begin=0.55
InputFilter.band2_end=1.0
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter.grid_density=16
-
-;# Original sampling frequency stored in the signal file
InputFilter.sampling_frequency=16368000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter.decimation_factor=3
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=0
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=6
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel0.signal=1B
Channel1.signal=1B
Channel2.signal=1B
@@ -153,130 +90,80 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.use_CFAR_algorithm=false;
-;#threshold: Acquisition threshold
Acquisition_1C.threshold=22
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
+Acquisition_1B.coherent_integration_time_ms=4
Acquisition_1B.acquire_pilot=true
Acquisition_1B.use_CFAR_algorithm=false
-;#threshold: Acquisition threshold
Acquisition_1B.threshold=22
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
Acquisition_1B.bit_transition_flag=true
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=../data/acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
-Tracking_1C.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
+Tracking_1C.dump=false
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
Tracking_1B.track_pilot=true
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=7.5;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=0.5;
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_narrow_hz=2.5;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_narrow_hz=0.25;
Tracking_1B.extend_correlation_symbols=4;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_narrow_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_narrow_chips=0.30;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
-Tracking_1B.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
+Tracking_1B.dump=false
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf
index 746dbdea9..7b978be5b 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -24,27 +26,20 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
SignalSource.flag_read_file=true
SignalSource.signal_file=/datalogger/signals/Fraunhofer/L125_III1b_210s.usb ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=1
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -52,88 +47,34 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter0.IF=0;
-;#-205000
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -142,25 +83,15 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -169,28 +100,17 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;# CHANNEL CONNECTION
@@ -204,77 +124,46 @@ Channel6.RF_channel_ID=0
Channel7.RF_channel_ID=0
;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel.signal=1C
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
-
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.use_CFAR_algorithm=false;
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=15
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_C_Aid_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
Tracking_1C.extend_correlation_ms=10
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.pll_bw_narrow_hz=35;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.dll_bw_narrow_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=true
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -283,22 +172,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
-
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf
index dc80ecfd0..bb5d4327e 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,31 +27,18 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
-
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1a.bit
-
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=1
-
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-
-;#frontend channels AGC
SignalSource.AGC=true
-
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -57,87 +46,34 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter0.IF=-205000
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -146,25 +82,15 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -173,37 +99,19 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#signal:
-;# "1C" GPS L1 C/A
-;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
-;# "1G" GLONASS L1 C/A
-;# "2S" GPS L2 L2C (M)
-;# "5X" GALILEO E5a I+Q
-;# "L5" GPS L5
;# CHANNEL CONNECTION
Channel0.RF_channel_ID=0
@@ -227,69 +135,39 @@ Channel6.signal=1C
Channel7.signal=1C
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
-
-
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.012
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=3.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -298,21 +176,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
-PVT.dump_filename=./PVT
\ No newline at end of file
+PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf
index 9a184f66d..2ef22b956 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,13 +27,9 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=1
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
@@ -39,11 +37,9 @@ SignalSource.gain2=0
SignalSource.gain3=0
;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -51,87 +47,33 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
-InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter0.IF=-205000
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -140,25 +82,15 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -167,36 +99,18 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#signal:
-;# "1C" GPS L1 C/A
-;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
-;# "1G" GLONASS L1 C/A
-;# "2S" GPS L2 L2C (M)
-;# "5X" GALILEO E5a I+Q
-;# "L5" GPS L5
;# CHANNEL CONNECTION
Channel0.RF_channel_ID=0
@@ -222,63 +136,37 @@ Channel7.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.012
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=3.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -287,21 +175,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
-PVT.dump_filename=./PVT
\ No newline at end of file
+PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf
index 34c4e3142..1d7fa6097 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,25 +27,18 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_II-3b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=1
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -51,85 +46,34 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
InputFilter0.sampling_frequency=40000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter0.IF=-205000
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=16
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -138,25 +82,15 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -165,28 +99,17 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -208,7 +131,6 @@ Channel6.RF_channel_ID=0
Channel7.RF_channel_ID=0
;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel0.signal=1C
Channel1.signal=1C
Channel2.signal=1C
@@ -219,91 +141,54 @@ Channel6.signal=1C
Channel7.signal=1C
-
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.012
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=3.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
-PVT.dump_filename=./PVT
\ No newline at end of file
+PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf
index 2bba3f755..2072f8c7d 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,25 +27,18 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_I-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=1
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -51,87 +46,34 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter0.sampling_frequency=40000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter0.IF=-205000
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -140,25 +82,15 @@ DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -167,38 +99,19 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=4
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#signal:
-;# "1C" GPS L1 C/A
-;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
-;# "1G" GLONASS L1 C/A
-;# "2S" GPS L2 L2C (M)
-;# "5X" GALILEO E5a I+Q
-;# "L5" GPS L5
-
;# CHANNEL CONNECTION
Channel0.RF_channel_ID=0
Channel1.RF_channel_ID=0
@@ -210,7 +123,6 @@ Channel3.RF_channel_ID=0
;Channel7.RF_channel_ID=0
;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel0.signal=1C
Channel1.signal=1C
Channel2.signal=1C
@@ -219,63 +131,37 @@ Channel3.signal=1C
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.011
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=3.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -284,20 +170,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf
index 48c73a036..3094d8c97 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,21 +27,15 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=2
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######################################################
@@ -47,7 +43,6 @@ SignalSource.usb_packet_buffer=128
;######################################################
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -55,85 +50,31 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
-;# WARNING: Fraunhofer front-end hardwareconfigurations can difer. Signals available on http://www.iis.fraunhofer.de/de/ff/lok/leist/test/flexiband.html are centered on 0 Hz, ALL BANDS.
InputFilter0.IF=-205000
-;#InputFilter0.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######################################################
@@ -141,7 +82,6 @@ Resampler0.implementation=Pass_Through
;######################################################
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -149,90 +89,35 @@ DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter1.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter_ch1.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter1.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter1.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
-;# WARNING: Fraunhofer front-end hardwareconfigurations can difer. Signals available on http://www.iis.fraunhofer.de/de/ff/lok/leist/test/flexiband.html are centered on 0 Hz, ALL BANDS.
InputFilter1.IF=100000
-;#InputFilter1.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter1.decimation_factor=8
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -241,30 +126,17 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
Channels_2S.count=8
-;#count: Number of available Galileo satellite channels.
-;Channels_Galileo.count=0
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -351,40 +223,23 @@ Channel15.RF_channel_ID=1
Channel15.signal=2S
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.008
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=3.0;
Tracking_1C.order=3;
@@ -396,7 +251,6 @@ Tracking_1C.dump_filename=./tracking_ch_
;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.threshold=0.0005
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=5000
@@ -408,7 +262,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=1.5;
Tracking_2S.dll_bw_hz=0.3;
Tracking_2S.order=3;
@@ -418,22 +271,18 @@ Tracking_2S.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS L1 CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GPS L2 CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L2 M
TelemetryDecoder_2S.implementation=GPS_L2C_Telemetry_Decoder
TelemetryDecoder_2S.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -442,25 +291,14 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#averaging_depth: Number of PVT observations in the moving average algorithm
-PVT.averaging_depth=10
-;#flag_average: Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false]
PVT.flag_averaging=true
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_L2_Galileo_E1B_Flexiband_bin_file_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_L2_Galileo_E1B_Flexiband_bin_file_III_1b.conf
index 44be57a15..720c68fa9 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_L2_Galileo_E1B_Flexiband_bin_file_III_1b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_L2_Galileo_E1B_Flexiband_bin_file_III_1b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,30 +27,17 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
-
SignalSource.flag_read_file=true
SignalSource.signal_file=/datalogger/signals/Fraunhofer/L125_III1b_210s.usb ; <- PUT YOUR FILE HERE
-
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=2
-
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-
-;#frontend channels AGC
SignalSource.AGC=true
-
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######################################################
@@ -56,7 +45,6 @@ SignalSource.usb_packet_buffer=128
;######################################################
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -64,85 +52,31 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
-;# WARNING: Fraunhofer front-end hardwareconfigurations can difer. Signals available on http://www.iis.fraunhofer.de/de/ff/lok/leist/test/flexiband.html are centered on 0 Hz, ALL BANDS.
-;#InputFilter0.IF=-205000
InputFilter0.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######################################################
@@ -150,7 +84,6 @@ Resampler0.implementation=Pass_Through
;######################################################
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -158,90 +91,35 @@ DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter1.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter_ch1.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter1.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter1.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
-;# WARNING: Fraunhofer front-end hardware configurations can differ. Signals available at http://www.iis.fraunhofer.de/de/ff/lok/leist/test/flexiband.html are centered on 0 Hz, ALL BANDS.
-;#InputFilter1.IF=100000
InputFilter1.IF=0
-
-;# Decimation factor after the frequency translating block
InputFilter1.decimation_factor=8
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -250,30 +128,19 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
-;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
+;######### CHANNELS GLOBAL CONFIG ############.
Channels_1C.count=2
Channels_1B.count=4
Channels_2S.count=4
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -304,33 +171,17 @@ Channel14.RF_channel_ID=1
Channel15.RF_channel_ID=1
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples..
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.008
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.0001
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
@@ -371,70 +222,44 @@ Tracking_2S.dump_filename=../data/epl_tracking_ch_
;# GALILEO E1B
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000005
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=./veml_tracking_ch_
;######### TELEMETRY DECODER GPS L1 CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GPS L2 CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L2 M
TelemetryDecoder_2S.implementation=GPS_L2C_Telemetry_Decoder
TelemetryDecoder_2S.dump=false
;######### TELEMETRY DECODER GALILEO E1B CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -443,22 +268,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=100
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
-
diff --git a/conf/gnss-sdr_multichannel_GPS_L1_USRP_X300_realtime.conf b/conf/gnss-sdr_multichannel_GPS_L1_USRP_X300_realtime.conf
index c5f32b456..411a712ab 100644
--- a/conf/gnss-sdr_multichannel_GPS_L1_USRP_X300_realtime.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L1_USRP_X300_realtime.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -27,235 +29,59 @@ GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
;#implementation
SignalSource.implementation=UHD_Signal_Source
-;#When left empty, the device discovery routines will search all vailable transports on the system (ethernet, usb...)
SignalSource.device_address=192.168.40.2 ; <- PUT THE IP ADDRESS OF YOUR USRP HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource.item_type=gr_complex
-;#RF_channels: Number of RF channels present in the frontend device (i.e. USRP with two frontends)
SignalSource.RF_channels=2
-;#sampling_frequency: Original Signal sampling frequency in [Hz]
SignalSource.sampling_frequency=4000000
-;#subdevice: UHD subdevice specification (for USRP dual frontend use A:0 or B:0 or A:0 B:0)
SignalSource.subdevice=A:0 B:0
;######### RF Channels specific settings ######
-
;## RF CHANNEL 0 ##
-;#freq: RF front-end center frequency in [Hz]
SignalSource.freq0=1575420000
-
-;#gain: Front-end Gain in [dB]
SignalSource.gain0=50
-
-;#samples: Number of samples to be processed. Notice that 0 indicates no limit
SignalSource.samples0=0
-
;## RF CHANNEL 1 ##
-;#freq: RF front-end center frequency in [Hz]
SignalSource.freq1=1575420000
-
-;#gain: Front-end Gain in [dB]
SignalSource.gain1=50
-
-;#samples: Number of samples to be processed. Notice that 0 indicates no limit
SignalSource.samples1=0
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner0.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
-
InputFilter0.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter0.band1_begin=0.0
-InputFilter0.band1_end=0.45
-InputFilter0.band2_begin=0.55
-InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter0.ampl1_begin=1.0
-InputFilter0.ampl1_end=1.0
-InputFilter0.ampl2_begin=0.0
-InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter0.band1_error=1.0
-InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter0.grid_density=16
-
-;# Original sampling frequency stored in the signal file
-InputFilter0.sampling_frequency=20480000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter0.IF=5499998.47412109
-
-;# Decimation factor after the frequency tranaslating block
-InputFilter0.decimation_factor=8
-
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
Resampler0.implementation=Pass_Through
-;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
+;######### SIGNAL_CONDITIONER 1 CONFIG ############
SignalConditioner1.implementation=Pass_Through
+
;######### INPUT_FILTER 1 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
-
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter1.band1_begin=0.0
-InputFilter1.band1_end=0.45
-InputFilter1.band2_begin=0.55
-InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter1.ampl1_begin=1.0
-InputFilter1.ampl1_end=1.0
-InputFilter1.ampl2_begin=0.0
-InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter1.band1_error=1.0
-InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter1.grid_density=16
-
-;# Original sampling frequency stored in the signal file
-InputFilter1.sampling_frequency=20480000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter1.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter1.IF=5499998.47412109
-
-;# Decimation factor after the frequency tranaslating block
-InputFilter1.decimation_factor=8
-
-
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
Resampler1.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=4
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -274,75 +100,45 @@ Channel3.RF_channel_ID=1
;#signal:
-;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel0.signal=1C
Channel1.signal=1C
Channel2.signal=1C
Channel3.signal=1C
-;######### SPECIFIC CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
-
;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
-;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
Acquisition_1C.threshold=0.01
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=8000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
-;#maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition]
-;#(should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
Acquisition_1C.bit_transition_flag=false
-;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
Acquisition_1C.max_dwells=1
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=40.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=4.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking_1C.early_late_space_chips=0.5;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=./tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -351,21 +147,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf
index 2f601ba41..fb6fae1c2 100644
--- a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,23 +27,17 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
SignalSource.flag_read_file=true
SignalSource.signal_file=/media/javier/SISTEMA/signals/fraunhofer/L125_III1b_210s.usb ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=1
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######################################################
@@ -49,7 +45,6 @@ SignalSource.usb_packet_buffer=128
;######################################################
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -57,80 +52,31 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter_ch0.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
InputFilter0.sampling_frequency=20000000
InputFilter0.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=4
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######################################################
@@ -138,7 +84,6 @@ Resampler0.implementation=Pass_Through
;######################################################
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -146,81 +91,32 @@ DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter1.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter_ch1.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter1.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
InputFilter1.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter1.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter1.decimation_factor=4
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
@@ -229,7 +125,6 @@ Resampler1.implementation=Pass_Through
;######################################################
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -237,84 +132,41 @@ DataTypeAdapter2.implementation=Pass_Through
DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
InputFilter2.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter_ch2.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples..
InputFilter2.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter2.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter2.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter2.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter2.band1_begin=0.0
InputFilter2.band1_end=0.45
InputFilter2.band2_begin=0.55
InputFilter2.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter2.ampl1_begin=1.0
InputFilter2.ampl1_end=1.0
InputFilter2.ampl2_begin=0.0
InputFilter2.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter2.band1_error=1.0
InputFilter2.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter2.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter2.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
InputFilter2.sampling_frequency=40000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter2.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter2.decimation_factor=8
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=0
Channels_1B.count=10
Channels_2S.count=0
Channels_5X.count=0
-;#GPS.prns=7,8
-
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -369,13 +221,11 @@ Channel37.RF_channel_ID=2
Channel38.RF_channel_ID=2
Channel39.RF_channel_ID=2
-;######### ACQUISITION GENERIC CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
+;######### ACQUISITION CONFIG ######
;# GPS L1 CA
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.005
Acquisition_1C.doppler_max=5000
@@ -387,30 +237,19 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;# Galileo E1
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000002
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.threshold=0.00074
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=5000
@@ -424,7 +263,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
;# GALILEO E5a
Acquisition_5X.implementation=Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
Acquisition_5X.item_type=gr_complex
-Acquisition_5X.if=0
Acquisition_5X.coherent_integration_time_ms=1
Acquisition_5X.threshold=0.009
Acquisition_5X.doppler_max=5000
@@ -441,7 +279,6 @@ Acquisition_5X.dump_filename=./acq_dump.dat
;######### GPS L1 C/A GENERIC TRACKING CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=3.0;
Tracking_1C.order=3;
@@ -452,30 +289,19 @@ Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### GALILEO E1 TRK CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.25;
Tracking_2S.order=2;
@@ -487,7 +313,6 @@ Tracking_2S.dump_filename=./tracking_ch_
;######### GALILEO E5 TRK CONFIG ############
Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
Tracking_5X.item_type=gr_complex
-Tracking_5X.if=0
Tracking_5X.pll_bw_hz_init=20.0; **Only for E5a** PLL loop filter bandwidth during initialization [Hz]
Tracking_5X.dll_bw_hz_init=20.0; **Only for E5a** DLL loop filter bandwidth during initialization [Hz]
Tracking_5X.ti_ms=1; **Only for E5a** loop filter integration time after initialization (secondary code delay search)[ms]
@@ -515,9 +340,7 @@ TelemetryDecoder_5X.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
@@ -526,21 +349,13 @@ PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=100
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=100
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b_real.conf b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b_real.conf
index 669f734c3..6d62e65b3 100644
--- a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b_real.conf
+++ b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b_real.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,23 +27,17 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
SignalSource.flag_read_file=true
SignalSource.signal_file=/home/javier/signals/20140923_20-24-17_L125_roof_210s.usb ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=2
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######################################################
@@ -49,7 +45,6 @@ SignalSource.usb_packet_buffer=128
;######################################################
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -57,83 +52,30 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter_ch0.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
-InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter0.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=4
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
;######################################################
@@ -141,7 +83,6 @@ Resampler0.implementation=Pass_Through
;######################################################
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
@@ -149,88 +90,35 @@ DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter1.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter_ch1.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter1.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
InputFilter1.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter1.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter1.decimation_factor=4
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Pass_Through
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -239,32 +127,21 @@ DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
;######### RESAMPLER CONFIG 2 ############
-;## Resamples the input data.
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=10
Channels_2S.count=4
;#GPS.prns=7,8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
;#signal:
@@ -301,7 +178,6 @@ Channel19.RF_channel_ID=1
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.005
Acquisition_1C.doppler_max=5000
@@ -315,7 +191,6 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.threshold=0.00074
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=5000
@@ -330,7 +205,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
;######### GPS L1 C/A GENERIC TRACKING CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=40.0;
Tracking_1C.dll_bw_hz=3.0;
Tracking_1C.order=3;
@@ -342,7 +216,6 @@ Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.25;
Tracking_2S.order=2;
@@ -362,29 +235,22 @@ TelemetryDecoder_2S.dump=false
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=true
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
+PVT.positioning_mode=PPP_Static ; 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
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=100
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
-PVT.dump_filename=./PVT
\ No newline at end of file
+PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf b/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf
index dece9c9e4..50e49f2e9 100644
--- a/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf
+++ b/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,23 +27,17 @@ GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
-;#implementation
SignalSource.implementation=Flexiband_Signal_Source
SignalSource.flag_read_file=true
-SignalSource.signal_file=/media/javier/SISTEMA/signals/fraunhofer/L125_III1b_210s.usb ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
+SignalSource.signal_file=/media/javier/SISTEMA/signals/fraunhofer/L125_III1b_210s.usb ; <- PUT YOUR FILE HERE
SignalSource.item_type=gr_complex
-;# FPGA firmware file
SignalSource.firmware_file=flexiband_III-1b.bit
-;#RF_channels: Number of RF channels present in the frontend device, must agree the FPGA firmware file
SignalSource.RF_channels=3
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
-;#frontend channels AGC
SignalSource.AGC=true
-;# USB 3.0 packet buffer size (number of SuperSpeed packets)
SignalSource.usb_packet_buffer=128
;######################################################
@@ -49,7 +45,6 @@ SignalSource.usb_packet_buffer=128
;######################################################
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
@@ -57,177 +52,69 @@ DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter_ch0.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#These function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse reaponse given a set of band edges,
-;#the desired reaponse on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
-InputFilter0.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
-;#InputFilter0.IF=-205000
InputFilter0.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=4
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
Resampler0.implementation=Pass_Through
+
;######################################################
;######### RF CHANNEL 1 SIGNAL CONDITIONER ############
;######################################################
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=gr_complex
-;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
+;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter_ch1.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter.
InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter1.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
-InputFilter1.sampling_frequency=20000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter1.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter1.decimation_factor=4
-
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
Resampler1.implementation=Pass_Through
@@ -236,7 +123,6 @@ Resampler1.implementation=Pass_Through
;######################################################
;######### SIGNAL_CONDITIONER 2 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
SignalConditioner2.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 2 CONFIG ############
@@ -244,96 +130,43 @@ DataTypeAdapter2.implementation=Pass_Through
DataTypeAdapter2.item_type=gr_complex
;######### INPUT_FILTER 2 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
InputFilter2.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter2.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter2.dump_filename=../data/input_filter_ch2.dat
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter2.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter2.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter2.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter2.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter2.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter2.band1_begin=0.0
InputFilter2.band1_end=0.45
InputFilter2.band2_begin=0.55
InputFilter2.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter2.ampl1_begin=1.0
InputFilter2.ampl1_end=1.0
InputFilter2.ampl2_begin=0.0
InputFilter2.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter2.band1_error=1.0
InputFilter2.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter2.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter2.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-;FOR USE GNSS-SDR WITH RTLSDR DONGLES USER MUST SET THE CALIBRATED SAMPLE RATE HERE
-; i.e. using front-end-cal as reported here:http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/
-InputFilter2.sampling_frequency=40000000
-;# IF deviation due to front-end LO inaccuracies [HZ]
InputFilter2.IF=0
-
-;# Decimation factor after the frequency tranaslating block
InputFilter2.decimation_factor=8
-;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
+;######### RESAMPLER CONFIG 2 ############
Resampler2.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=10
Channels_1B.count=10
Channels_2S.count=10
-Channels_5X.count=10
+Channels_5X.count=2
+Channels_L5.count=2
;#GPS.prns=7,8
-
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
-Channels.in_acquisition=1
-
-;#signal:
-;# "1C" GPS L1 C/A
-;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
-;# "1G" GLONASS L1 C/A
-;# "2S" GPS L2 L2C (M)
-;# "5X" GALILEO E5a I+Q
-;# "L5" GPS L5
+;Channels.in_acquisition=2
;# CHANNEL CONNECTION
@@ -377,14 +210,16 @@ Channel36.RF_channel_ID=2
Channel37.RF_channel_ID=2
Channel38.RF_channel_ID=2
Channel39.RF_channel_ID=2
+Channel40.RF_channel_ID=2
+Channel41.RF_channel_ID=2
+Channel42.RF_channel_ID=2
+
+;Channel20.satellite=7
-;######### ACQUISITION GENERIC CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
;# GPS L1 CA
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
-Acquisition_1C.if=0
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.005
Acquisition_1C.doppler_max=5000
@@ -397,30 +232,18 @@ Acquisition_1C.dump_filename=./acq_dump.dat
;# Galileo E1
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000002
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=5000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
-Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
-Acquisition_2S.if=0
Acquisition_2S.threshold=0.00074
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=5000
@@ -434,7 +257,6 @@ Acquisition_2S.dump_filename=./acq_dump.dat
;# GALILEO E5a
Acquisition_5X.implementation=Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
Acquisition_5X.item_type=gr_complex
-Acquisition_5X.if=0
Acquisition_5X.coherent_integration_time_ms=1
Acquisition_5X.threshold=0.009
Acquisition_5X.doppler_max=5000
@@ -447,11 +269,23 @@ Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump.dat
+;# GPS L5
+Acquisition_L5.implementation=GPS_L5i_PCPS_Acquisition
+Acquisition_L5.item_type=gr_complex
+Acquisition_L5.threshold=0.00074
+;Acquisition_L5.pfa=0.001
+Acquisition_L5.doppler_max=5000
+Acquisition_L5.doppler_min=-5000
+Acquisition_L5.doppler_step=125
+Acquisition_L5.max_dwells=1
+Acquisition_L5.dump=false
+Acquisition_L5.dump_filename=./acq_dump.dat
+
+
+
;######### TRACKING CONFIG ############
-;######### GPS L1 C/A GENERIC TRACKING CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
-Tracking_1C.if=0
Tracking_1C.pll_bw_hz=35.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
@@ -461,30 +295,19 @@ Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### GALILEO E1 TRK CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### GPS L2C GENERIC TRACKING CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
-Tracking_2S.if=0
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.25;
Tracking_2S.order=2;
@@ -492,21 +315,32 @@ Tracking_2S.early_late_space_chips=0.5;
Tracking_2S.dump=false
Tracking_2S.dump_filename=./tracking_ch_
-
;######### GALILEO E5 TRK CONFIG ############
Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
Tracking_5X.item_type=gr_complex
-Tracking_5X.if=0
-Tracking_5X.pll_bw_hz_init=20.0; **Only for E5a** PLL loop filter bandwidth during initialization [Hz]
-Tracking_5X.dll_bw_hz_init=20.0; **Only for E5a** DLL loop filter bandwidth during initialization [Hz]
-Tracking_5X.ti_ms=1; **Only for E5a** loop filter integration time after initialization (secondary code delay search)[ms]
-Tracking_5X.pll_bw_hz=20.0;
-Tracking_5X.dll_bw_hz=20.0;
+Tracking_5X.track_pilot=true
+Tracking_5X.pll_bw_hz=15.0;
+Tracking_5X.dll_bw_hz=2.0;
+Tracking_5X.pll_bw_narrow_hz=5.0;
+Tracking_5X.dll_bw_narrow_hz=1.0;
Tracking_5X.order=2;
Tracking_5X.early_late_space_chips=0.5;
Tracking_5X.dump=false
Tracking_5X.dump_filename=./tracking_ch_
+;######### GALILEO E5 TRK CONFIG ############
+Tracking_L5.implementation=GPS_L5_DLL_PLL_Tracking
+Tracking_L5.item_type=gr_complex
+Tracking_L5.track_pilot=true
+Tracking_L5.pll_bw_hz=15.0;
+Tracking_L5.dll_bw_hz=2.0;
+Tracking_L5.pll_bw_narrow_hz=4.0;
+Tracking_L5.dll_bw_narrow_hz=1.0;
+Tracking_L5.order=2;
+Tracking_L5.early_late_space_chips=0.5;
+Tracking_L5.dump=false
+Tracking_L5.dump_filename=./tracking_ch_
+
;######### TELEMETRY DECODER CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
@@ -521,37 +355,28 @@ TelemetryDecoder_2S.dump=false
TelemetryDecoder_5X.implementation=Galileo_E5a_Telemetry_Decoder
TelemetryDecoder_5X.dump=false
+TelemetryDecoder_L5.implementation=GPS_L5_Telemetry_Decoder
+TelemetryDecoder_L5.dump=false
+
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static ; 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
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
PVT.output_rate_ms=10
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=100
-;# KML, GeoJSON, NMEA and RTCM output configuration
-;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
-;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
PVT.flag_nmea_tty_port=false;
-;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
diff --git a/conf/gnss-sdr_multisource_Hybrid_ishort.conf b/conf/gnss-sdr_multisource_Hybrid_ishort.conf
index 3aa7f840b..3394aff23 100644
--- a/conf/gnss-sdr_multisource_Hybrid_ishort.conf
+++ b/conf/gnss-sdr_multisource_Hybrid_ishort.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -11,260 +13,73 @@ GNSS-SDR.internal_fs_sps=4000000
Receiver.sources_count=2
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
;######### SIGNAL_SOURCE 0 CONFIG ############
SignalSource0.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource0.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource0.item_type=ishort
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource0.sampling_frequency=4000000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource0.samples=0
;######### SIGNAL_SOURCE 1 CONFIG ############
SignalSource1.implementation=File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource1.filename=/datalogger/signals/CTTC/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples.
SignalSource1.item_type=ishort
-;#sampling_frequency: Original Signal sampling frequency in [Hz]
SignalSource1.sampling_frequency=4000000
-;#freq: RF front-end center frequency in [Hz]
SignalSource1.freq=1575420000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource1.samples=0
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter0.implementation=Ishort_To_Complex
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter0.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of GNU Radio's function: gr_remez.
-;;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter0.taps_item_type=float
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter0.band1_begin=0.0
-InputFilter0.band1_end=0.45
-InputFilter0.band2_begin=0.55
-InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter0.ampl1_begin=1.0
-InputFilter0.ampl1_end=1.0
-InputFilter0.ampl2_begin=0.0
-InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter0.band1_error=1.0
-InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter0.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter0.sampling_frequency=4000000
-InputFilter0.IF=0
;######### RESAMPLER 1 CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neighborhood interpolation
-
Resampler1.implementation=Pass_Through
-
-;#dump: Dump the resampled data to a file.
Resampler1.dump=false
-;#dump_filename: Log path and filename.
Resampler1.dump_filename=../data/resampler.dat
-
-;#item_type: Type and resolution for each of the signal samples.
Resampler1.item_type=gr_complex
-
-;#sample_freq_in: the sample frequency of the input signal
Resampler1.sample_freq_in=4000000
-
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler1.sample_freq_out=4000000
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter1.implementation=Ishort_To_Complex
;######### INPUT_FILTER 1 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Pass_Through] disables this block
-;#[Fir_Filter] enables a FIR Filter
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
-
InputFilter1.implementation=Pass_Through
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-;#dump_filename: Log path and filename.
-InputFilter1.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of GNU Radio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
-InputFilter1.input_item_type=gr_complex
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
-InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
-InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
-InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
-InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
-InputFilter1.band1_begin=0.0
-InputFilter1.band1_end=0.45
-InputFilter1.band2_begin=0.55
-InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
-InputFilter1.ampl1_begin=1.0
-InputFilter1.ampl1_end=1.0
-InputFilter1.ampl2_begin=0.0
-InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
-InputFilter1.band1_error=1.0
-InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
-InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
-InputFilter1.grid_density=16
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter1.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
-InputFilter1.sampling_frequency=4000000
-InputFilter1.IF=0
;######### RESAMPLER 1 CONFIG ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neighborhood interpolation
-
Resampler1.implementation=Pass_Through
-
-;#dump: Dump the resampled data to a file.
Resampler1.dump=false
-;#dump_filename: Log path and filename.
-Resampler1.dump_filename=../data/resampler.dat
-
-;#item_type: Type and resolution for each of the signal samples.
+Resampler1.dump_filename=../data/resampler.dat.
Resampler1.item_type=gr_complex
-
-;#sample_freq_in: the sample frequency of the input signal
Resampler1.sample_freq_in=4000000
-
-;#sample_freq_out: the desired sample frequency of the output signal
Resampler1.sample_freq_out=4000000
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=2
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=2
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
@@ -280,120 +95,73 @@ Channel.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.threshold=0.0075
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000008
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=45.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=4.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
;######### OBSERVABLES CONFIG ############
-;#implementation:
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
-;#implementation: Position Velocity and Time (PVT) implementation:
PVT.implementation=RTKLIB_PVT
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
+PVT.positioning_mode=Single ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.output_rate_ms=100;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
PVT.dump_filename=./PVT
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
diff --git a/conf/gnss-sdr_multisource_Hybrid_nsr.conf b/conf/gnss-sdr_multisource_Hybrid_nsr.conf
index 5a543018e..aecb783a6 100644
--- a/conf/gnss-sdr_multisource_Hybrid_nsr.conf
+++ b/conf/gnss-sdr_multisource_Hybrid_nsr.conf
@@ -1,4 +1,6 @@
-; Default configuration file
+; This is a GNSS-SDR configuration file
+; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
+
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -14,250 +16,102 @@ GNSS-SDR.internal_fs_sps=2560000
;GNSS-SDR.internal_fs_sps=4096000
;GNSS-SDR.internal_fs_sps=5120000
-;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
-; it helps to not overload the CPU, but the processing time will be longer.
SignalSource.enable_throttle_control=false
-;#repeat: Repeat the processing file.
SignalSource.repeat=false
;######### SIGNAL_SOURCE 0 CONFIG ############
-;#implementation
SignalSource0.implementation=Nsr_File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource0.filename=/datalogger/signals/ifen/E1L1_FE0_Band0.stream ; <- PUT YOUR FILE HERE
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource0.item_type=byte
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource0.sampling_frequency=20480000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource0.samples=0
;######### SIGNAL_SOURCE 1 CONFIG ############
-;#implementation: Use [File_Signal_Source] [Nsr_File_Signal_Source] or [UHD_Signal_Source] or [GN3S_Signal_Source] (experimental)
SignalSource1.implementation=Nsr_File_Signal_Source
-;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource1.filename=/datalogger/signals/ifen/E1L1_FE0_Band0.stream
-;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
SignalSource1.item_type=byte
-;#sampling_frequency: Original Signal sampling frequency in samples per second
SignalSource1.sampling_frequency=20480000
-;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
SignalSource1.samples=0
;######### SIGNAL_CONDITIONER 0 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner0.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 0 CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=float
;######### INPUT_FILTER 0 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
-
InputFilter0.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter0.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter0.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter0.input_item_type=float
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter0.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter0.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter0.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter0.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter0.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter0.grid_density=16
-
-;# Original sampling frequency stored in the signal file
InputFilter0.sampling_frequency=20480000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter0.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter0.IF=5499998.47412109
-
-;# Decimation factor after the frequency tranaslating block
InputFilter0.decimation_factor=8
;######### RESAMPLER CONFIG 0 ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
Resampler0.implementation=Pass_Through
;######### SIGNAL_CONDITIONER 1 CONFIG ############
-;## It holds blocks to change data type, filter and resample input data.
-
-;#implementation: Use [Pass_Through] or [Signal_Conditioner]
-;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
-;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
SignalConditioner1.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER 1 CONFIG ############
-;## Changes the type of input data.
-;#implementation: [Pass_Through] disables this block
DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=float
;######### INPUT_FILTER 1 CONFIG ############
-;## Filter the input data. Can be combined with frequency translation for IF signals
-
-;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
-;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation
-;# that shifts IF down to zero Hz.
-
InputFilter1.implementation=Freq_Xlating_Fir_Filter
-
-;#dump: Dump the filtered data to a file.
InputFilter1.dump=false
-
-;#dump_filename: Log path and filename.
InputFilter1.dump_filename=../data/input_filter.dat
-
-;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation.
-;#These options are based on parameters of gnuradio's function: gr_remez.
-;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges,
-;#the desired response on those bands, and the weight given to the error in those bands.
-
-;#input_item_type: Type and resolution for input signal samples.
InputFilter1.input_item_type=float
-
-;#outut_item_type: Type and resolution for output filtered signal samples.
InputFilter1.output_item_type=gr_complex
-
-;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
InputFilter1.taps_item_type=float
-
-;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
InputFilter1.number_of_taps=5
-
-;#number_of _bands: Number of frequency bands in the filter.
InputFilter1.number_of_bands=2
-
-;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
-;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
-;#The number of band_begin and band_end elements must match the number of bands
-
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
-
-;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
-;#The number of ampl_begin and ampl_end elements must match the number of bands
-
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
-
-;#band_error: weighting applied to each band (usually 1).
-;#The number of band_error elements must match the number of bands
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
-
-;#filter_type: one of "bandpass", "hilbert" or "differentiator"
InputFilter1.filter_type=bandpass
-
-;#grid_density: determines how accurately the filter will be constructed.
-;The minimum value is 16; higher values are slower to compute the filter.
InputFilter1.grid_density=16
-
-;# Original sampling frequency stored in the signal file
InputFilter1.sampling_frequency=20480000
-
-;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
-;#InputFilter1.IF is the intermediate frequency (in Hz) shifted down to zero Hz
-
InputFilter1.IF=5499998.47412109
-
-;# Decimation factor after the frequency tranaslating block
InputFilter1.decimation_factor=8
;######### RESAMPLER CONFIG 1 ############
-;## Resamples the input data.
-
-;#implementation: Use [Pass_Through] or [Direct_Resampler]
-;#[Pass_Through] disables this block
-;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
Resampler1.implementation=Pass_Through
;######### CHANNELS GLOBAL CONFIG ############
-;#count: Number of available GPS satellite channels.
Channels_1C.count=8
-;#count: Number of available Galileo satellite channels.
Channels_1B.count=8
-;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
Channels.in_acquisition=1
-;#signal:
-;# "1C" GPS L1 C/A
-;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
-;# "1G" GLONASS L1 C/A
-;# "2S" GPS L2 L2C (M)
-;# "5X" GALILEO E5a I+Q
-;# "L5" GPS L5
-
;# SOURCE CONNECTION
Channel0.RF_channel_ID=0
Channel1.RF_channel_ID=0
@@ -299,117 +153,77 @@ Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1C.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1C.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1C.sampled_ms=1
-;#threshold: Acquisition threshold
+Acquisition_1C.scoherent_integration_time_ms=1
Acquisition_1C.threshold=0.0075
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
;Acquisition_1C.pfa=0.01
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_max=10000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=500
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
-;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;######### GALILEO ACQUISITION CONFIG ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
-;#item_type: Type and resolution for each of the signal samples.
Acquisition_1B.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
-Acquisition_1B.if=0
-;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
-Acquisition_1B.sampled_ms=4
-;#threshold: Acquisition threshold
+Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1B.pfa=0.0000002
-;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition_1B.doppler_max=15000
-;#doppler_max: Doppler step in the grid search [Hz]
Acquisition_1B.doppler_step=125
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1B.dump=false
-;#filename: Log path and filename
Acquisition_1B.dump_filename=./acq_dump.dat
;######### TRACKING GPS CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1C.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1C.pll_bw_hz=45.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1C.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1C.order=3;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1C.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1C.dump_filename=../data/epl_tracking_ch_
;######### TRACKING GALILEO CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
-;#item_type: Type and resolution for each of the signal samples.
Tracking_1B.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
-Tracking_1B.if=0
-;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking_1B.pll_bw_hz=15.0;
-;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking_1B.dll_bw_hz=2.0;
-;#order: PLL/DLL loop filter order [2] or [3]
Tracking_1B.order=3;
-;#early_late_space_chips: correlator early-late space [chips]. Use [0.5] for GPS and [0.15] for Galileo
Tracking_1B.early_late_space_chips=0.15;
-;#very_early_late_space_chips: only for [Galileo_E1_DLL_PLL_VEML_Tracking], correlator very early-late space [chips]. Use [0.6]
Tracking_1B.very_early_late_space_chips=0.6;
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking_1B.dump=false
-;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking_1B.dump_filename=../data/veml_tracking_ch_
;######### TELEMETRY DECODER GPS CONFIG ############
-;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
;######### TELEMETRY DECODER GALILEO CONFIG ############
-;#implementation: Use [Galileo_E1B_Telemetry_Decoder] for Galileo E1B
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
-;#dump_filename: Log path and filename.
Observables.dump_filename=./observables.dat
;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
-;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
-PVT.output_rate_ms=10;
-;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
-PVT.display_rate_ms=500;
+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.nmea_dump_filename=./gnss_sdr_pvt.nmea;
+PVT.flag_nmea_tty_port=true;
+PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
-;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
-PVT.dump_filename=./PVT
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
+PVT.dump_filename=./PVT
diff --git a/docs/PULL_REQUEST_TEMPLATE.md b/docs/PULL_REQUEST_TEMPLATE.md
index bb69db911..a6cc9eef2 100644
--- a/docs/PULL_REQUEST_TEMPLATE.md
+++ b/docs/PULL_REQUEST_TEMPLATE.md
@@ -1,12 +1,12 @@
-:+1::tada: Hello, and thanks for contributing to [GNSS-SDR](http://gnss-sdr.org)! :tada::+1:
+:+1::tada: Hello, and thanks for contributing to [GNSS-SDR](https://gnss-sdr.org)! :tada::+1:
Before submitting your pull request, please make sure the following is done:
1. You undertake the [Contributor Covenant Code of Conduct](https://github.com/gnss-sdr/gnss-sdr/blob/master/CODE_OF_CONDUCT.md).
2. If you are a first-time contributor, after your pull request you will be asked to sign an Individual Contributor License Agreement ([CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement)) before your code gets accepted into `master`. This license is for your protection as a Contributor as well as for the protection of [CTTC](http://www.cttc.es/); it does not change your rights to use your own contributions for any other purpose. Except for the license granted therein to CTTC and recipients of software distributed by CTTC, you reserve all right, title, and interest in and to your contributions. The information you provide in that CLA will be maintained in accordance with [CTTC's privacy policy](http://www.cttc.es/privacy/).
3. You have read the [Contributing Guidelines](https://github.com/gnss-sdr/gnss-sdr/blob/master/CONTRIBUTING.md).
- 4. You have read the [coding style guide](http://gnss-sdr.org/coding-style/).
- 5. Specifically, you have read [about clang-format](http://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting) and you have applied it.
+ 4. You have read the [coding style guide](https://gnss-sdr.org/coding-style/).
+ 5. Specifically, you have read [about clang-format](https://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting) and you have applied it.
6. You have forked the [gnss-sdr upstream repository](https://github.com/gnss-sdr/gnss-sdr) and have created your branch from `next` (or any other currently living branch in the upstream repository).
7. Please include a description of your changes here.
-**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request.**
\ No newline at end of file
+**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request, and explain your intend below.**
diff --git a/docs/changelog b/docs/changelog
index 3d27ab215..74f263c33 100644
--- a/docs/changelog
+++ b/docs/changelog
@@ -1,3 +1,141 @@
+## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next)
+
+Next release will have several improvements in different dimensions, addition of new features and bug fixes:
+
+### Improvements in Accuracy:
+
+- Part of the RTKLIB core libraries has been integrated into GNSS-SDR. There is now a single PVT block implementation which makes use of RTKLIB to deliver PVT solutions, including Single and PPP navigation modes.
+- Fixed CN0 estimation for other correlation times than 1 ms.
+- Improved computation of tracking parameters and GNSS observables.
+- Other minor bug fixes.
+
+
+### Improvements in Availability:
+
+- Internal Finite State Machines rewritten for improved continuity in delivering position fixes. This fixes a bug that was stalling the receiver after about six hours of continuous operation.
+- Redesign of the time counter for enhanced continuity.
+- Improved acquisition and tracking sensibility.
+- Other minor bug fixes.
+
+
+### Improvements in Efficiency:
+
+- Added the possibility of non-blocking acquisition, which works well when using real-time data from an RF front-end.
+- Complex local codes have been replaced by real codes, alleviating the computational burden.
+- New kernels: volk_gnsssdr_16i_xn_resampler_16i_xn.h, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h, volk_gnsssdr_32f_xn_resampler_32f_xn.h, volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h
+- Some AVX2 implementations added to the volk_gnsssdr library.
+- Improvement in C++ usage: Use of const container calls when result is immediately converted to a const iterator. Using these members removes an implicit conversion from iterator to const_iterator.
+- A number of code optimizations here and there.
+
+
+### Improvements in Flexibility:
+
+- A number of new parameters have been exposed to the configuration system.
+- Possibility to choose Pilot or Data component for tracking of GPS L5 and Galileo E5a signals.
+- Enabled extended coherent integration times.
+- Some configuration parameters can now be overridden by commandline flags for easier use in scripts.
+
+
+### Improvements in Interoperability:
+
+- Added the GPS L5 receiver chain.
+- Added the GLONASS L1 SP receiver chain.
+- Added the GLONASS L2 SP receiver chain.
+- Improvements in the Galileo E5a and GPS L2C receiver chains.
+- Updated list of available GNSS satellites.
+- Added five more signal sources: "Fmcomms2_Signal_Source" (requires gr-iio), "Plutosdr_Signal Source" (requires gr-iio), "Spir_GSS6450_File_Signal_Source", "Labsat_Signal_Source" and "Custom_UDP_Signal_Source" (requires libpcap). Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/
+- Improved support for BladeRF, HackRF and RTL-SDR front-ends.
+- Added tools for the interaction with front-ends based on the AD9361 chipset.
+- Intermediate results are now saved in .mat binary format, readable from Matlab/Octave and from Python via h5py.
+- Added the GPX output format.
+- Fixed a bug in the format of NMEA sentences when latitude or longitude minutes were >10.
+- Improvements in the RTCM server stability.
+- Improvements in the correctness of generated RINEX files.
+
+
+### Improvements in Maintainability:
+
+- Setup of a Continuous Integration system that checks building and runs QA code in a wide range of GNU/Linux distributions (ArchLinux, CentOS, Debian, Fedora, OpenSUSE, Ubuntu) and releases. See https://gitlab.com/gnss-sdr/gnss-sdr
+- Creation of multi-system processing blocks, drastically reducing code duplication and maintainability time.
+- Automated code formatting with clang-format. This tool is widely available and easy to integrate into many code editors, and it also can be used from the command line. It cuts time spent on adhering to the project's code formatting style.
+- Improvement in C++ usage: C-style casts have been replaced by C++ casts. C-style casts are difficult to search for. C++ casts provide compile time checking ability and express programmers' intent better, so they are safer and clearer.
+- Improvement in C++ usage: The override special identifier is now used when overriding a virtual function. This helps the compiler to check for type changes in the base class, making the detection of errors easier.
+- Improvement in C++ usage: A number of unused includes have been removed. Order of includes set to: local (in-source) headers, then library headers, then system headers. This helps to detect missing includes.
+- Improvement in C++ usage: Enhanced const correctness. Misuses of those variables are detected by the compiler.
+
+
+### Improvements in Portability:
+
+- Several CMake scripts improvements, more verbose outputs in case of errors. Building configuration has been documented in https://gnss-sdr.org/docs/tutorials/configuration-options-building-time/
+- Improved SDK for cross-compilation in embedded devices. Documented in https://gnss-sdr.org/docs/tutorials/cross-compiling/
+- Improved control over minimum required versions for core dependencies.
+- The software builds with C++11, C++14 and C++17 standards.
+- The software can now be built using GCC >= 4.7.2 or LLVM/Clang >= 3.4.0 compilers on GNU/Linux, and with Clang/AppleClang on MacOS.
+- The Ninja build system can be used in replacement of make.
+- The volk_gnsssdr library can be built using Python 2.7 or Python 3.6.
+- The volk_gnsssdr library is now ready for AArch64 NEON instructions.
+- Ready for GNU Radio 3.8 C++ API (as per current next branch of GNU Radio upstream repository).
+- Improved detection of required and optional dependencies in many GNU/Linux distributions and processor architectures.
+- Improvement in C++ usage: The library has been replaced by the more modern and portable .
+- Improvement in C++ usage: The library has been replaced by the more modern and portable for file handling.
+- Improvement in C++ usage: C++ libraries preferred over C libraries (e.g., instead of , instead of ).
+- Fixes required by Debian packaging.
+- Fixes required by Macports packaging.
+- A downside in portability: BLAS and LAPACK libraries are now required even in ARM devices.
+- A downside in portability: the matio library >= 1.5.3 is a new required dependency. If not found, it is downloaded and built automatically at building time, but this requires libtool, automake and hdf5 already installed in the system.
+
+
+### Improvements in Reliability:
+
+- Introduced 3 new Input Filter implementations for pulsed and narrowband interference mitigation: `Pulse_Blanking_Filter`, `Notch_Filter` and `Notch_Filter_Lite`. Documented in https://gnss-sdr.org/docs/sp-blocks/input-filter/
+- Improved flow graph stabiliy.
+- Introduction of high-integrity C++ practices into the source code and included in the coding style guide. See https://gnss-sdr.org/coding-style/
+- Fixed a number of defects detected by Coverity Scan.
+- Improvement in C++ usage: rand() function replaced by library.
+- Improvement in C++ usage: strlen and strncpy have been replaced by safer C++ counterparts.
+- Improvement in C++ usage: Some destructors have been fixed, avoiding segmentation faults when exiting the program.
+- Website switched from http to https. Links in the source tree switched when available.
+
+
+### Improvements in Reproducibility:
+
+- Setup of a Continuous Reproducibility system at GitLab for the automatic reproduction of experiments. The concept was introduced in https://ieeexplore.ieee.org/document/8331069/ Example added in the src/utils/reproducibility/ieee-access18/ folder.
+- Fixes of Lintian warnings related to build reproducibility.
+
+
+### Improvements in Scalability:
+
+- Improvements in multi-system, multi-band receiver configurations. The receiver now accepts any number of channels and systems in the three available bands.
+- All possible combinations of signals and integration times are now accepted by the Observables block.
+
+
+### Improvements in Testability:
+
+- Several Unit Tests added. Documentation of testing concepts and available tests at https://gnss-sdr.org/docs/tutorials/testing-software-receiver/
+- Receiver channels can now be fixed to a given satellite.
+- Improved CTest support in volk_gnsssdr.
+
+
+### Improvements in Usability:
+
+- All Observables block implementations have been merged into a single implementation for all kinds of GNSS signals, making it easier to configure.
+- All PVT block implementations have been merged into a single implementation for all kinds of GNSS signals, making it easier to configure.
+- Misleading parameter name GNSS-SDR.internal_fs_hz has been replaced by GNSS-SDR.internal_fs_sps. The old parameter name is still read. If found, a warning is provided to the user.
+- Updated and improved documentation of processing blocks at https://gnss-sdr.org/docs/sp-blocks/
+- Improved documentation of required dependency packages in several GNU/Linux distributions.
+- Parameter names with the same role have been harmonized within different block implementations.
+- Added a chnagelog, a code of conduct, a contributing guide and a pull-request template in the source tree.
+- Added colors to the commandline user interface.
+- Updated manfiles.
+
+
+
+See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/
+
+
+
+
+
## [0.0.9](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.9)
DOI: https://doi.org/10.5281/zenodo.291371
@@ -59,7 +197,7 @@ This release has several improvements, addition of new features and bug fixes in
- Now GNSS-SDR can be run in virtual environments through snap packages (see https://github.com/carlesfernandez/snapcraft-sandbox) and docker images (see https://github.com/carlesfernandez/docker-gnsssdr).
- Now GNSS-SDR is adapted to cross-compiling environments for embedded devices (see https://github.com/carlesfernandez/oe-gnss-sdr-manifest).
-- BLAS and LAPACK libraries are not longer mandatory on ARM devices.
+- BLAS and LAPACK libraries are no longer mandatory on ARM devices.
### Improvements in Scalability:
@@ -74,17 +212,18 @@ This release has several improvements, addition of new features and bug fixes in
- Unit tests added: GpsL1CADllPllTracking and GpsL1CATelemetryDecoderTest.
- System test added: ttff_gps_l1 performs a set of cold / assisted runs of the software receiver and computes statistics about the obtained Time To First Fix.
- System test added: obs_gps_l1_system_test uses an external software-defined signal generator to produce raw digital GNSS signal from a RINEX navigation file and a position (static or dynamic), processes it with GNSS-SDR, and then compares the RINEX observation file produced by the software receiver to that produced by the signal generator.
-- Software Development Kit provided for embedded devices (see http://gnss-sdr.org/docs/tutorials/cross-compiling/).
+- Software Development Kit provided for embedded devices (see https://gnss-sdr.org/docs/tutorials/cross-compiling/).
### Improvements in Usability:
- Now the block factory automatically detects Channel input data type, so it is no longer required to specify Channel.input_type in the configuration. An error raises if Acquisition and Tracking Blocks are not configured with the same input data type.
- Block names changed from L2_M to L2C.
-- Documentation available at http://gnss-sdr.org/docs/
+- Documentation available at https://gnss-sdr.org/docs/
- Improved tools for compilation, execution and testing in embedded devices.
-See the definitions of concepts and metrics at http://gnss-sdr.org/design-forces/
+
+See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/
@@ -122,12 +261,12 @@ This release has several improvements, addition of new features and bug fixes:
- Improvements in receiver design: Internal block communication has been redesigned to accommodate the addition of new signals, and now upstream and downstream communication within blocks is implemented through the GNU Radio block’s asynchronous message passing system, leading to a more scalable, more robust and cleaner design.
- Improvements in receiver design: Correlators have been rewritten to take full advantage of VOLK and VOLK_GNSSSDR, and they are of general use for any tracking block. Their API now admit an arbitrary number of correlators, spaced in an arbitrary manner, in 16ic and 32fc versions.
-- Improvements in receiver design: Block adapters are now all managed by smart pointers, ensuring better memory management.
+- Improvements in receiver design: Block adapters are now all managed by smart pointers, ensuring better memory management.
- Improvements in processing speed: The VOLK_GNSSSDR library has been rewritten, following current VOLK standards and adding a number of new kernels. This approach addresses both efficiency and portability. Now the library provides the key kernels for GNSS signal processing in 16ic and 32fc versions, including SSE2, SSE3, SSE4.1, AVX, AV2 and NEON implementations. Please execute volk_gnsssdr_profile and volk_profile to use the fastest implementation for your host machine.
- New source block: Two_Bit_Packed_File_Signal_Source. This block takes 2 bit samples that have been packed into bytes or shorts as input and generates a byte for each sample.
- Fixes in SUPL assistance (supl.nokia.com removed).
- Improvements in acquisition: Added a non CFAR PCPS acquisition algorithm based on the estimation of the post correlation noise floor. If enabled as an option in the acquisition configuration, it allows setting more stable thresholds in the presence of non-gaussian front-end noise (which is the usual behavior of front-ends.)
-- Fixes in acquisition: Fixed mismatch between the config files and the acquisition code in the specification of the IF. Fixed a bug in the length of the FFT of local codes.
+- Fixes in acquisition: Fixed mismatch between the config files and the acquisition code in the specification of the IF. Fixed a bug in the length of the FFT of local codes.
- Improvements in tracking sensitivity: Added configuration option to customize the extension of the GPS L1 CA correlation length after bit synchronization (options are: [1,2,4,5,10,20] ms). Only available in the GPS_L1_CA_DLL_PLL_C_Aid_Tracking implementation.
- New tracking block introduced: GPS_L1_CA_DLL_PLL_C_Aid_Tracking is a GPS L1 C/A carrier PLL and code DLL with optional carrier-aid feedback. It is available in both 32 bits gr_complex input samples and in 16 bits short int complex samples. The gr_complex version has also the capability to extend the coherent correlation period from 1ms to 20ms using telemetry symbol synchronization.
- Increased resolution in CN0 estimator internal variables.
@@ -136,18 +275,18 @@ This release has several improvements, addition of new features and bug fixes:
- New tracking block introduced: GPS_L1_CA_DLL_PLL_Tracking_GPU is a GPS L1 C/A carrier PLL and code DLL that uses the CUDA-compatible GPU to compute carrier wipe off and correlation operations, alleviating the CPU load.
- Obsolete/buggy blocks removed: GPS_L1_CA_DLL_FLL_PLL_Tracking, GPS_L1_CA_DLL_PLL_Optim_Tracking.
- Added a RTCM printer and TCP server in PVT blocks (still experimental). The receiver is now able to stream data in real time, serving RTCM 3.2 messages to multiple clients. For instance, it can act as a Ntrip Source feeding a Ntrip Server, or to be used as data input in RTKLIB, obtaining Precise Point Positioning fixes in real-time. The TCP port, Station ID, and rate of MT1019/MT1045 and MSM can be configured. GPS_L1_CA_PVT serves MT1019 (GPS Ephemeris) and MSM7 (MT1077, full GPS pseudoranges, phase ranges, phase range rates and CNR - high resolution) messages, while GALILEO_E1_PVT serves MT1045 (Galileo ephemeris) and MSM7 (MT1097, full Galileo pseudoranges, phase ranges, phase range rates and CNR - high resolution).
-- Added a GeoJSON printer. Basic (least-squares) position fixes can be now also stored in this format, in addition to KML.
+- Added a GeoJSON printer. Basic (least-squares) position fixes can be now also stored in this format, in addition to KML.
- Obsolete block removed: output filter.
- QA code migrated to the new asynchronous message passing system.
- Improvements in documentation: update of README.md file, addition of documentation for the VOLK_GNSSSDR library, updated links to new ICDs.
-- Improvements in documentation: Satellite identification updated to current constellation status.
+- Improvements in documentation: Satellite identification updated to current constellation status.
- Updated and cleaner console output. Now Galileo satellites have the ‘E’ identifier in their PRN number.
- Several improvements in CMake scripts allow to build GNSS-SDR in Linux Debian (Jessie, Stretch and Sid), Ubuntu (from 12.04 to 16.04), including amd64, i386, armhf and arm64 architectures, and possibly in other GNU/Linux distributions, as well as in Mac OS X 10.9 to 10.11. It also works well with CMake 3.5 (some problems solved with VOLK_GNSSSDR as a sub-project).
- The software can link either against OpenSSL or against GnuTLS with openssl extensions, whatever it is available. This allows buildings in distributions such as Fedora or ArchLinux, while being compatible with binary distribution through Debian packages.
- Fixed a number of defects detected by Coverity Scan.
- Some fixes required by Debian licensing and packaging system.
- Added a CGRAN (http://www.cgran.org/) manifest
-- Lots of code cleaning and fixes of typos and small bugs.
+- Lots of code cleaning and fixes of typos and small bugs.
@@ -198,7 +337,7 @@ This release has several improvements and bug fixes:
- Added volk_gnsssdr library, a volk-like library implementing some specific kernels and ensuring portable executables. It comes with a ‘volk_gnsssdr_profile’ executable, in the fashion of volk_profile. Volk and volk_gnsssdr are compatible and can be mixed together. This is expected to enable faster execution of the software receiver in upcoming versions.
- The former ‘rtlsdr_signal_source’ has been replaced by a more general ‘osmosdr_signal_source’ compatible with all those front-ends accessible by the OsmoSDR driver (bladeRF, hackRF, etc.) in addition to RTL-based dongles.
- Added manpages when binaries gnss-sdr, volk_gnsssdr_profile and front-end-cal are installed.
-- Now GNSS-SDR can be build on i386, amd64, armhf, armel and arm64 architectures.
+- Now GNSS-SDR can be built on i386, amd64, armhf, armel and arm64 architectures.
- Now GNSS-SDR builds on Ubuntu 14.04 and 14.10, Debian jessie/sid and Mac OS X 10.9 and 10.10.
- Improved detection of dependencies, specially when installed as .deb packages.
- Added a ‘check' target with some minimal tests.
@@ -214,14 +353,14 @@ This release has several improvements and bug fixes:
- Added hybrid processing GPS L1 C/A and Galileo E1B, providing position fixes make use of observables for both constellations.
- Added implementations of the QuickSync algorithm for GPS L1 C/A and Galileo E1 acquisition.
-- Added processing blocks for Galileo E5a: Acquisition, Tracking, Telemetry_Decoder (experimental)
+- Added processing blocks for Galileo E5a: Acquisition, Tracking, Telemetry_Decoder (experimental)
- New configuration files allow to configure GPS and Galileo channels in the same receiver.
- Added tropospheric corrections to GPS and Galileo PVT solution.
- Improved precision obtained by changing some variables from float to double.
- New building options: ENABLE_GN3S, ENABLE_RTLSDR and ENABLE_ARRAY and ENABLE_OPENCL.
- Improved documentation on how to enable optional drivers.
- Fixed bug in memory alignment that caused problems with high data rates.
-- Added ENABLE_GENERIC_ARCH, an option to build the binary without detecting the SIMD instruction set present in the compiling machine, so it can be executed in other machines without those specific sets.
+- Added ENABLE_GENERIC_ARCH, an option to build the binary without detecting the SIMD instruction set present in the compiling machine, so it can be executed in other machines without those specific sets.
- Added ENABLE_GPERFTOOLS, which links the executable to tcmalloc and profiler if Gperftools is available on the system.
- Added carrier phase, Doppler shift and signal strength observables to the RINEX files. Static PPP solutions are available for GPS with RTKLIB via RINEX files.
- The executable now produces RINEX files version 3.02 of Galileo Observables, Navigation data, and mixed (GPS/Galileo) observables and nav data. RINEX 3.02 is the default version of RINEX files.
diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox
index edb07f998..324a98fac 100644
--- a/docs/doxygen/other/main_page.dox
+++ b/docs/doxygen/other/main_page.dox
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
/*! \mainpage
@@ -23,12 +23,12 @@
Welcome to GNSS-SDR!
-GNSS-SDR is an open-source GNSS software receiver freely available to the research community. This project provides a common framework for GNSS signal processing which can operate in a variety of computer platforms. This tool is intended to foster collaboration, increase awareness, and reduce development costs in the field of GNSS receiver design and customized use of GNSS signals.
+GNSS-SDR is an open-source GNSS software receiver freely available to the research community. This project provides a common framework for GNSS signal processing which can operate in a variety of computer platforms. This tool is intended to foster collaboration, increase awareness, and reduce development costs in the field of GNSS receiver design and customized use of GNSS signals.
For details about GNSS-SDR and using it, please see the main project page or browse the code at the Sourceforge project page. You could be also interested in
-subscribing to the mailing list.
+href="https://gnss-sdr.org" target="_blank">main project page or browse the code at the Sourceforge project page. You could be also interested in
+subscribing to the mailing list.
\section toc Contents
\li \ref overview
@@ -56,25 +56,25 @@ More details on GNSS-SDR signal processing blocks:
\section overview Overview
-GNSS-SDR provides an interface to different suitable RF front-ends and implements all the receiver chain up to the navigation solution.
-Its design allows any kind of customization, including interchangeability of signal sources, signal processing algorithms,
-interoperability with other systems, output formats, and offers interfaces to all the intermediate signals, parameters and variables.
-The goal is to write efficient and truly reusable code, easy to read and maintain, with fewer bugs, and producing highly optimized executables
-in a variety of hardware platforms and operating systems. In that sense, the challenge consists of defining a gentle balance within level
-of abstraction and performance. GNSS-SDR runs in a personal computer and provides interfaces through USB and Ethernet
+GNSS-SDR provides an interface to different suitable RF front-ends and implements all the receiver chain up to the navigation solution.
+Its design allows any kind of customization, including interchangeability of signal sources, signal processing algorithms,
+interoperability with other systems, output formats, and offers interfaces to all the intermediate signals, parameters and variables.
+The goal is to write efficient and truly reusable code, easy to read and maintain, with fewer bugs, and producing highly optimized executables
+in a variety of hardware platforms and operating systems. In that sense, the challenge consists of defining a gentle balance within level
+of abstraction and performance. GNSS-SDR runs in a personal computer and provides interfaces through USB and Ethernet
buses to a variety of either commercially available or custom-made RF front-ends, adapting the processing algorithms to different sampling frequencies, intermediate
- frequencies and sample resolutions. This makes possible rapid prototyping of specific receivers intended, for instance, to geodetic applications,
- observation of the ionospheric impact on navigation signals, GNSS reflectometry, signal quality monitoring, or carrier-phase based navigation techniques.
+ frequencies and sample resolutions. This makes possible rapid prototyping of specific receivers intended, for instance, to geodetic applications,
+ observation of the ionospheric impact on navigation signals, GNSS reflectometry, signal quality monitoring, or carrier-phase based navigation techniques.
\image html overview.png
\image latex overview.png "Overview" width=12cm
As signal inputs, it accepts:
\li Raw data file captured with a data grabber (digitized at some intermediate frequency or directly at baseband).
-\li Any suitable RF configuration that can be driven by the Universal Software Radio Peripheral Hardware Driver (UHD).
-This includes all current and future Ettus Research products. The USRP1 + DBSRX 2.2 daughterboard is an example of working configuration for GPS L1 C/A and Galileo E1B and E1C signals.
-\li The GN3S v2 USB dongle (GN3S v3 might work with small modifications).
-\li Experimentally, with some USB DVB-T dongles based on the Realtek RTL2832U chipset.
+\li Any suitable RF configuration that can be driven by the Universal Software Radio Peripheral Hardware Driver (UHD).
+This includes all current and future Ettus Research products. The USRP1 + DBSRX 2.2 daughterboard is an example of working configuration for GPS L1 C/A and Galileo E1B and E1C signals.
+\li The GN3S v2 USB dongle (GN3S v3 might work with small modifications).
+\li Experimentally, with some USB DVB-T dongles based on the Realtek RTL2832U chipset.
\li For mathematical representations of the targeted signals, check out the \ref the_signal_model page.
As outputs, it provides:
@@ -85,22 +85,22 @@ As outputs, it provides:
\li Position, Velocity and Time solution in KML format and NMEA
-\section build Building GNSS-SDR
+\section build Building GNSS-SDR
-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 building guide page for details about the project's
-dependencies and build process. Mainly, it consists on installing GNU Radio plus some few more libraries:
+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 building guide page for details about the project's
+dependencies and build process. Mainly, it consists on installing GNU Radio plus some few more libraries:
-\li Gflags, a library that implements commandline flags processing,
-\li Glog, a library that implements application-level logging,
+\li Gflags, a library that implements commandline flags processing,
+\li Glog, a library that implements application-level logging,
\li Armadillo, a C++ linear algebra library,
-\li Googletest, Google's framework for writing C++ tests (requires definition of the GTEST_DIR variable),
+\li Googletest, Google's framework for writing C++ tests (requires definition of the GTEST_DIR variable),
and, optionally,
-\li Gperftools, which provides fast, multi-threaded malloc() and performance analysis tools.
+\li Gperftools, which provides fast, multi-threaded malloc() and performance analysis tools.
After all dependencies are installed, clone the GNSS-SDR repository:
\verbatim
-$ git clone git://git.code.sf.net/p/gnss-sdr/cttc gnss-sdr
+$ git clone https://github.com/gnss-sdr/gnss-sdr
\endverbatim
This will create a folder named gnss-sdr with the following structure:
@@ -111,7 +111,7 @@ This will create a folder named gnss-sdr with the following structure:
|---conf <- Configuration files. Each file represents one receiver.
|---data <- Populate this folder with your captured data.
|---docs <- Contains documentation-related files
- |---install <- Executables
+ |---install <- Executables
|---src <- Source code folder
|-----algorithms
|-------PVT
@@ -136,7 +136,7 @@ This will create a folder named gnss-sdr with the following structure:
|-----utils <- some utilities (e.g. Matlab scripts)
\endverbatim
-You are now ready to build GNSS-SDR by using CMake as building tool:
+You are now ready to build GNSS-SDR by using CMake as building tool:
\verbatim
$ cd gnss-sdr/build
$ cmake ../
@@ -149,8 +149,8 @@ You can run them from that folder, but if you prefer to install gnss-sdr on your
$ sudo make install
\endverbatim
-This will make a copy of the conf/ folder into /usr/local/share/gnss-sdr/conf for your reference.
-We suggest to create a working directory at your preferred location and store your own configuration and data files there.
+This will make a copy of the conf/ folder into /usr/local/share/gnss-sdr/conf for your reference.
+We suggest to create a working directory at your preferred location and store your own configuration and data files there.
You can create the documentation by doing:
@@ -158,7 +158,7 @@ You can create the documentation by doing:
$ make doc
\endverbatim
-from the gnss-sdr/build folder. In both cases, Doxygen will generate HTML documentation that can be
+from the gnss-sdr/build folder. In both cases, Doxygen will generate HTML documentation that can be
retrieved pointing your browser of preference to gnss-sdr/docs/html/index.html.
There are two more extra targets available. From the gnss-sdr/build folder:
@@ -201,20 +201,20 @@ $ sudo make uninstall
$ rm -rf *
\endverbatim
-You can also check The Git Book for more information about Git usage.
+You can also check The Git Book for more information about Git usage.
\section using_gnss-sdr Using GNSS-SDR
With GNSS-SDR, you can define you own receiver, work with captured raw data or from a RF front-end, dump into files intermediate signals, or tune every single algorithm used in the \ref signal_processing. All the configuration
is done in a single file. Those configuration files reside at the gnss-sdr/conf folder. By default, the executable gnss-sdr will read the configuration
-available at gnss-sdr/conf/gnss-sdr.conf. You can edit that file to fit your needs, or even better, define a new my_receiver.conf file with your own configuration.
+available at gnss-sdr/conf/gnss-sdr.conf. You can edit that file to fit your needs, or even better, define a new my_receiver.conf file with your own configuration.
This new receiver can be done by invoking gnss-sdr with the --config_file flag pointing to your configuration file:
\verbatim
$ gnss-sdr --config_file=../conf/my_receiver.conf
\endverbatim
You can see a guide of available implementations at gnss-sdr/conf/master.conf. That folder contains other working examples as well. If you have a working
-configuration and want to share it will others, please email it to the GNSS-SDR developers mailing list
+configuration and want to share it will others, please email it to the GNSS-SDR developers mailing list
and we will be happy to upload it to the server.
You can use a single configuration file for processing
@@ -224,41 +224,41 @@ $ gnss-sdr --config_file=../conf/my_receiver.conf --signal_source=../data/my_cap
\endverbatim
This will override the SignalSource.filename specified in the configuration file.
-You can get a complete list of available commandline flags by doing:
+You can get a complete list of available commandline flags by doing:
\verbatim
$ gnss-sdr --help
\endverbatim
-For general usage of commandline flags, see how to use Google Commandline Flags.
+
\section control_plane Control plane
-GNSS-SDR's main method initializes the logging library, processes the command line flags, if any, provided by the user and instantiates a ControlThread object.
-Its constructor reads the configuration file, creates a control queue and creates a flowgraph according to the configuration. Then, the program's main method
-calls the run() method of the instantiated object, an action that connects the flowgraph and starts running it. After that, and until a stop message is received,
-it reads control messages sent by the receiver's modules through a safe-thread queue and processes them. Finally, when a stop message is received, the main
+GNSS-SDR's main method initializes the logging library, processes the command line flags, if any, provided by the user and instantiates a ControlThread object.
+Its constructor reads the configuration file, creates a control queue and creates a flowgraph according to the configuration. Then, the program's main method
+calls the run() method of the instantiated object, an action that connects the flowgraph and starts running it. After that, and until a stop message is received,
+it reads control messages sent by the receiver's modules through a safe-thread queue and processes them. Finally, when a stop message is received, the main
method executes the destructor of the ControlThread object, which deallocates memory, does other cleanup and exits the program.
-The GNSSFlowgraph class is responsible for preparing the graph of blocks according to the configuration, running it, modifying it during run-time and stopping it.
-Blocks are identified by its role. This class knows which roles it has to instantiate and how to connect them.
-It relies on the configuration to get the correct instances of the roles it needs and then it applies the connections between GNU Radio blocks to make the
-graph ready to be started. The complexity related to managing the blocks and the data stream is handled by GNU Radio's gr::top_block class. GNSSFlowgraph wraps
-the gr::top_block instance so we can take advantage of the \ref gnss_block_factory, the configuration system and the processing blocks. This class is also responsible
-for applying changes to the configuration of the flowgraph during run-time, dynamically reconfiguring channels: it selects the strategy for selecting satellites.
-This can range from a sequential search over all the satellites' ID to smarter approaches that determine what are the satellites most likely in-view based on rough
+The GNSSFlowgraph class is responsible for preparing the graph of blocks according to the configuration, running it, modifying it during run-time and stopping it.
+Blocks are identified by its role. This class knows which roles it has to instantiate and how to connect them.
+It relies on the configuration to get the correct instances of the roles it needs and then it applies the connections between GNU Radio blocks to make the
+graph ready to be started. The complexity related to managing the blocks and the data stream is handled by GNU Radio's gr::top_block class. GNSSFlowgraph wraps
+the gr::top_block instance so we can take advantage of the \ref gnss_block_factory, the configuration system and the processing blocks. This class is also responsible
+for applying changes to the configuration of the flowgraph during run-time, dynamically reconfiguring channels: it selects the strategy for selecting satellites.
+This can range from a sequential search over all the satellites' ID to smarter approaches that determine what are the satellites most likely in-view based on rough
estimations of the receiver position in order to avoid searching satellites in the other side of the Earth.
The Control Plane is in charge of creating a flowgraph according to the configuration and then managing the modules. Configuration allows users to define in an easy way their own
-custom receiver by specifying the flowgraph (type of signal source, number of channels, algorithms to be used for each channel and each module, strategies for
-satellite selection, type of output format, etc.). Since it is difficult to foresee what future module implementations will be needed in terms of configuration,
-we used a very simple approach that can be extended without a major impact in the code. This can be achieved by simply mapping the names of the variables in the
+custom receiver by specifying the flowgraph (type of signal source, number of channels, algorithms to be used for each channel and each module, strategies for
+satellite selection, type of output format, etc.). Since it is difficult to foresee what future module implementations will be needed in terms of configuration,
+we used a very simple approach that can be extended without a major impact in the code. This can be achieved by simply mapping the names of the variables in the
modules with the names of the parameters in the configuration.
\subsection configuration Configuration
-Properties are passed around within the program using the ConfigurationInterface class. There are two implementations of this interface: FileConfiguration and
-InMemoryConfiguration. FileConfiguration reads the properties (pairs of property name and value) from a file and stores them internally. InMemoryConfiguration does
-not read from a file; it remains empty after instantiation and property values and names are set using the set property method. FileConfiguration is intended to be
-used in the actual GNSS-SDR application whereas InMemoryConfiguration is intended to be used in tests to avoid file-dependency in the file system. Classes that
-need to read configuration parameters will receive instances of ConfigurationInterface from where they will fetch the values. For instance, parameters related
+Properties are passed around within the program using the ConfigurationInterface class. There are two implementations of this interface: FileConfiguration and
+InMemoryConfiguration. FileConfiguration reads the properties (pairs of property name and value) from a file and stores them internally. InMemoryConfiguration does
+not read from a file; it remains empty after instantiation and property values and names are set using the set property method. FileConfiguration is intended to be
+used in the actual GNSS-SDR application whereas InMemoryConfiguration is intended to be used in tests to avoid file-dependency in the file system. Classes that
+need to read configuration parameters will receive instances of ConfigurationInterface from where they will fetch the values. For instance, parameters related
to SignalSource should look like this:
\verbatim
@@ -266,80 +266,80 @@ SignalSource.parameter1=value1
SignalSource.parameter2=value2
\endverbatim
-The name of these parameters can be anything but one reserved word: implementation. This parameter indicates in its value the name of the class that has to be instantiated
-by the factory for that role. For instance, if our signal source is providing data already at baseband and thus we want to use the implementation Pass_Through for module SignalConditioner, the corresponding line in the
+The name of these parameters can be anything but one reserved word: implementation. This parameter indicates in its value the name of the class that has to be instantiated
+by the factory for that role. For instance, if our signal source is providing data already at baseband and thus we want to use the implementation Pass_Through for module SignalConditioner, the corresponding line in the
configuration file would be
\verbatim
SignalConditioner.implementation=Pass_Through
\endverbatim
-Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new
-properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked
-against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in INI format).
+Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new
+properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked
+against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in INI format).
\subsection gnss_block_factory GNSS block factory
-Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called GNSSBlockFactory.
-This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory
-encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block
-class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration
-enables extending the application capacities in a high degree. It also allows to produce fully customized receivers, for instance a testbed for acquisition
+Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called GNSSBlockFactory.
+This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory
+encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block
+class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration
+enables extending the application capacities in a high degree. It also allows to produce fully customized receivers, for instance a testbed for acquisition
algorithms, and to place observers at any point of the receiver chain.
\section signal_processing Signal Processing plane
-GNU Radio's class gr::basic_block is the abstract base class for all signal processing blocks, a bare abstraction of an entity that has a name and a set of
-inputs and outputs. It is never instantiated directly; rather, this is the abstract parent class of both gr::hier_block2, which is a recursive container that
-adds or removes processing or hierarchical blocks to the internal graph, and gr::block, which is the abstract base class for all the processing blocks.
+GNU Radio's class gr::basic_block is the abstract base class for all signal processing blocks, a bare abstraction of an entity that has a name and a set of
+inputs and outputs. It is never instantiated directly; rather, this is the abstract parent class of both gr::hier_block2, which is a recursive container that
+adds or removes processing or hierarchical blocks to the internal graph, and gr::block, which is the abstract base class for all the processing blocks.
\image html ClassHierarchy.png
\image latex ClassHierarchy.png "Class hierarchy of signal processing blocks" width=12cm
-A signal processing flow is constructed by creating a tree of hierarchical blocks, which at any level may also contain terminal nodes that actually implement signal
+A signal processing flow is constructed by creating a tree of hierarchical blocks, which at any level may also contain terminal nodes that actually implement signal
processing functions.
-Class gr::top_block is the top-level hierarchical block representing a flowgraph. It defines GNU Radio runtime functions used during the execution of the
-program: run(), start(), stop(), wait(), etc. A a subclass called GNSSBlockInterface is the common interface for all the GNSS-SDR modules. It defines pure virtual
+Class gr::top_block is the top-level hierarchical block representing a flowgraph. It defines GNU Radio runtime functions used during the execution of the
+program: run(), start(), stop(), wait(), etc. A a subclass called GNSSBlockInterface is the common interface for all the GNSS-SDR modules. It defines pure virtual
methods, that are required to be implemented by a derived class.
-Subclassing GNSSBlockInterface, we defined interfaces for the GNSS receiver blocks depicted in the figure above. This hierarchy provides the definition of different
-algorithms and different implementations, which will be instantiated according to the configuration. This strategy allows
-multiple implementations sharing a common interface, achieving the objective of decoupling interfaces from implementations: it defines a family of algorithms, encapsulates each one,
+Subclassing GNSSBlockInterface, we defined interfaces for the GNSS receiver blocks depicted in the figure above. This hierarchy provides the definition of different
+algorithms and different implementations, which will be instantiated according to the configuration. This strategy allows
+multiple implementations sharing a common interface, achieving the objective of decoupling interfaces from implementations: it defines a family of algorithms, encapsulates each one,
and makes them interchangeable. Hence, we let the algorithm vary independently from the program that uses it.
\subsection signal_source Signal Source
-The input of a software receiver are the raw bits that come out from the front-end's analog-to-digital converter (ADC).
-Those bits can be read from a file stored in the hard disk or directly in real-time from a hardware device through USB or Ethernet buses.
+The input of a software receiver are the raw bits that come out from the front-end's analog-to-digital converter (ADC).
+Those bits can be read from a file stored in the hard disk or directly in real-time from a hardware device through USB or Ethernet buses.
-The Signal Source module is in charge of implementing the hardware driver, that is, the portion of the code that communicates with the RF front-end and receives
-the samples coming from the ADC. This communication is usually performed through USB or Ethernet buses. Since real-time processing requires a highly optimized
-implementation of the whole receiver, this module also allows to read samples from a file stored in a hard disk, and thus processing without time constraints.
-Relevant parameters of those samples are the intermediate frequency (or baseband I&Q components), the sampling rate and number of bits per sample, that must be
+The Signal Source module is in charge of implementing the hardware driver, that is, the portion of the code that communicates with the RF front-end and receives
+the samples coming from the ADC. This communication is usually performed through USB or Ethernet buses. Since real-time processing requires a highly optimized
+implementation of the whole receiver, this module also allows to read samples from a file stored in a hard disk, and thus processing without time constraints.
+Relevant parameters of those samples are the intermediate frequency (or baseband I&Q components), the sampling rate and number of bits per sample, that must be
specified by the user in the configuration file.
This module also performs bit-depth adaptation, since most of the existing RF front-ends provide samples quantized with 2 or 3 bits, while operations inside
- the processor are performed on 32- or 64-bit words, depending on its architecture. Although there are implementations of the most intensive computational
- processes (mainly correlation) that take advantage of specific data types and architectures for the sake of
- efficiency, the approach is processor-specific and hardly portable. We suggest to keep signal samples in standard data types and letting the compiler
+ the processor are performed on 32- or 64-bit words, depending on its architecture. Although there are implementations of the most intensive computational
+ processes (mainly correlation) that take advantage of specific data types and architectures for the sake of
+ efficiency, the approach is processor-specific and hardly portable. We suggest to keep signal samples in standard data types and letting the compiler
select the best library version (implemented using SIMD or any other processor-specific technology) of the required routines for a given processor.
-
+
Example: FileSignalSource
-The user can configure the receiver for reading from a file, setting in the configuration file the data file location, sample format,
+The user can configure the receiver for reading from a file, setting in the configuration file the data file location, sample format,
and the sampling frequency and intermediate frequency at what the signal was originally captured.
-
+
\verbatim
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=File_Signal_Source
SignalSource.filename=/home/user/gnss-sdr/data/my_capture.dat
SignalSource.item_type=gr_complex
SignalSource.sampling_frequency=4000000 ; Sampling frequency in [Hz]
-SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz]
-\endverbatim
+SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz]
+\endverbatim
Example: UhdSignalSource
@@ -349,7 +349,7 @@ The user may prefer to use a UHD-compatible RF front-end and try real-time proce
SignalSource.implementation=UHD_Signal_Source
SignalSource.item_type=gr_complex
SignalSource.sampling_frequency=4000000 ; Sampling frequency in [Hz]
-SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz]
+SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz]
SignalSource.gain=60 ; Front-end gain in dB
SignalSource.subdevice=B:0 ; UHD subdevice specification (for USRP1 use A:0 or B:0)
\endverbatim
@@ -358,8 +358,8 @@ Other examples are available at gnss-sdr/conf.
\subsection signal_conditioner Signal Conditioner
The signal conditioner is in charge of resampling the signal and delivering a reference sample rate to the downstream processing blocks, acting as
- a facade between the signal source and the synchronization channels, providing a simplified interface to the input signal.
- In case of multiband front-ends, this module would be in charge of providing a separated data stream for each band.
+ a facade between the signal source and the synchronization channels, providing a simplified interface to the input signal.
+ In case of multiband front-ends, this module would be in charge of providing a separated data stream for each band.
\subsection channel Channel
@@ -368,31 +368,28 @@ A channel encapsulates all signal processing devoted to a single satellite. Thus
channels is selectable by the user in the configuration file, this approach helps improving the scalability and maintainability of the receiver.
This module is also in charge of managing the interplay between acquisition and tracking. Acquisition can be initialized in several ways, depending on
-the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when
-a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver
+the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when
+a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver
was tracking a satellite and the signal line of sight broke for a short period of time, but the ephemeris and almanac data is still valid, or this information
-is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to
+is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to
confirm the presence of the satellite, or declaring the satellite present. In the latter case, acquisition process should stop and trigger the tracking module
-with coarse estimations of the synchronization parameters. The mathematical abstraction used to design this logic is known as finite state machine (FSM), that is
-a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we used the
-Boost.Statechart library,
-which provides desirable features such as support for asynchronous state machines, multi-threading, type-safety, error handling and compile-time validation.
-
+with coarse estimations of the synchronization parameters.
+
The abstract class ChannelInterface represents an interface to a channel GNSS block. Check Channel for an actual implementation.
-
+
\subsubsection acquisition Acquisition
-The first task of a GNSS receiver is to detect the presence or absence of in-view satellites. This is done by the acquisition system process, which also provides a coarse estimation of two signal parameters: the frequency shift
+The first task of a GNSS receiver is to detect the presence or absence of in-view satellites. This is done by the acquisition system process, which also provides a coarse estimation of two signal parameters: the frequency shift
with respect to the nominal IF frequency, and a delay term which allows the receiver to create a local code aligned with the incoming code.
-AcquisitionInterface is the common interface for all the acquisition algorithms and their corresponding implementations. Algorithms' interface, that may vary
-depending on the use of information external to the receiver, such as in Assisted GNSS, is defined in classes referred to as adapters.
-These adapters wrap the GNU Radio blocks interface into a compatible interface expected by AcquisitionInterface. This allows the use of existing GNU Radio blocks
-derived from gr::block, and ensures that newly developed implementations will also be reusable in other GNU Radio-based applications.
+AcquisitionInterface is the common interface for all the acquisition algorithms and their corresponding implementations. Algorithms' interface, that may vary
+depending on the use of information external to the receiver, such as in Assisted GNSS, is defined in classes referred to as adapters.
+These adapters wrap the GNU Radio blocks interface into a compatible interface expected by AcquisitionInterface. This allows the use of existing GNU Radio blocks
+derived from gr::block, and ensures that newly developed implementations will also be reusable in other GNU Radio-based applications.
Moreover, it adds still another layer of abstraction, since each given acquisition algorithm can have different implementations (for instance using
different numerical libraries). In such a way, implementations can be continuously improved without having any impact neither on the algorithm interface nor the general acquisition interface.
Check GpsL1CaPcpsAcquisition and GalileoE1PcpsAmbiguousAcquisition for examples of adapters from a Parallel Code Phase Search (PCPS) acquisition block, and
pcps_acquisition_cc for an example of a block implementation. The source code of all the available acquisition algorithms is located at:
-
+
\verbatim
|-gnss-sdr
|---src
@@ -406,13 +403,13 @@ The user can select a given implementation for the algorithm to be used in each
\verbatim
;######### ACQUISITION GLOBAL CONFIG ############
-;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
+;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition.dump=false
;#filename: Log path and filename
Acquisition.dump_filename=./acq_dump.dat
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition.item_type=gr_complex
-;#if: Signal intermediate frequency in [Hz]
+;#if: Signal intermediate frequency in [Hz]
Acquisition.if=0
;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition.sampled_ms=1
@@ -420,8 +417,8 @@ Acquisition.sampled_ms=1
Acquisition.implementation=GPS_L1_CA_PCPS_Acquisition
;#threshold: Acquisition threshold
Acquisition.threshold=0.005
-;#pfa: Acquisition false alarm probability. This option overrides the threshold option.
-;Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
+;#pfa: Acquisition false alarm probability. This option overrides the threshold option.
+;Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition.pfa=0.0001
;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition.doppler_max=10000
@@ -429,7 +426,7 @@ Acquisition.doppler_max=10000
Acquisition.doppler_step=500
;######### ACQUISITION CHANNELS CONFIG ######
-;#The following options are specific to each channel and overwrite the generic options
+;#The following options are specific to each channel and overwrite the generic options
;######### ACQUISITION CH 0 CONFIG ############
@@ -455,12 +452,12 @@ Acquisition.doppler_step=500
\subsubsection tracking Tracking
When a satellite is declared present, the parameters estimated by the acquisition module are then fed to the receiver tracking module, which represents the
second stage of the signal processing unit, aiming to perform a local search for accurate estimates of code delay and carrier phase, and following their eventual
- variations.
+ variations.
-Again, a class hierarchy consisting of a TrackingInterface class and subclasses implementing algorithms provides a way of testing different approaches,
-with full access to their parameters. Check GpsL1CaDllPllTracking or GalileoE1DllPllVemlTracking for examples of adapters, and Gps_L1_Ca_Dll_Pll_Tracking_cc for an example
+Again, a class hierarchy consisting of a TrackingInterface class and subclasses implementing algorithms provides a way of testing different approaches,
+with full access to their parameters. Check GpsL1CaDllPllTracking or GalileoE1DllPllVemlTracking for examples of adapters, and Gps_L1_Ca_Dll_Pll_Tracking_cc for an example
of a signal processing block implementation. There are also available some useful classes and functions for signal tracking; take a look at Correlator, lock_detectors.h, tracking_discriminators.h or
-tracking_2nd_DLL_filter.h.
+tracking_2nd_DLL_filter.h.
The source code of all the available tracking algorithms is located at:
\verbatim
@@ -482,10 +479,10 @@ Tracking.implementation=GPS_L1_CA_DLL_PLL_Tracking
;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
Tracking.item_type=gr_complex
-;#sampling_frequency: Signal Intermediate Frequency in [Hz]
+;#sampling_frequency: Signal Intermediate Frequency in [Hz]
Tracking.if=0
-;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
+;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking.dump=false
;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
@@ -508,12 +505,12 @@ Tracking.early_late_space_chips=0.5;
\endverbatim
\subsubsection decoding Decoding of the navigation message
-Most of GNSS signal links are modulated by a navigation message containing the time the message was transmitted, orbital parameters of satellites
-(also known as ephemeris) and an almanac (information about the general system health, rough orbits of all satellites in the network as well as data related to
-error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are
-spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for
-error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and
-interleaving, depending on the system. All this decoding complexity is managed by a finite state machine implemented with the Boost.Statechart library.
+Most of GNSS signal links are modulated by a navigation message containing the time the message was transmitted, orbital parameters of satellites
+(also known as ephemeris) and an almanac (information about the general system health, rough orbits of all satellites in the network as well as data related to
+error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are
+spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for
+error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and
+interleaving, depending on the system.
The common interface is TelemetryDecoderInterface. Check GpsL1CaTelemetryDecoder for an example of the GPS L1 NAV message decoding adapter, and gps_l1_ca_telemetry_decoder_cc
for an actual implementation of a signal processing block. Configuration example:
@@ -527,13 +524,13 @@ TelemetryDecoder.dump=false
See the \ref reference_docs for more information about the signal format.
\subsection observables Observables
-GNSS systems provide different kinds of observations. The most commonly used are the code observations, also called pseudoranges. The pseudo comes from
+GNSS systems provide different kinds of observations. The most commonly used are the code observations, also called pseudoranges. The pseudo comes from
the fact that on the receiver side the clock error is unknown and thus the measurement is not a pure range observation. High accuracy applications also use the
carrier phase observations, which are based on measuring the difference between the carrier phase transmitted by the GNSS satellites and the phase of the carrier
generated in the receiver. Both observables are computed from the outputs of the tracking module and the decoding of the navigation message.
This module collects all the data provided by every tracked channel, aligns all received data into a coherent set, and computes the observables.
-The common interface is ObservablesInterface.
+The common interface is ObservablesInterface.
Configuration example:
\verbatim
@@ -541,7 +538,7 @@ Configuration example:
;#implementation: Use [GPS_L1_CA_Observables] for GPS L1 C/A.
Observables.implementation=GPS_L1_CA_Observables
-;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
+;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
;#dump_filename: Log path and filename.
@@ -567,24 +564,24 @@ PVT.flag_nmea_tty_port=true;
;#nmea_dump_devname: serial device descriptor for NMEA logging
PVT.nmea_dump_devname=/dev/pts/4
-;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
+;#dump: Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump=false
\endverbatim
This implementation allows tuning of the following parameters:
\verbatim
PVT.averaging_depth=10 ; Number of PVT observations in the moving average algorithm
-PVT.flag_averaging=true ; Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false]
+PVT.flag_averaging=true ; Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false]
PVT.output_rate_ms=100 ; Period in [ms] between two PVT outputs
PVT.display_rate_ms=500 ; Position console print (std::out) interval [ms].
-PVT.dump=false ; Enable or disable the PVT internal binary data file logging [true] or [false]
+PVT.dump=false ; Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump_filename=./PVT ; Log path and filename without extension.
\endverbatim
\section license About the software license
-GNSS-SDR is released under the General Public License (GPL) v3, thus securing practical usability, inspection,
-and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals.
+GNSS-SDR is released under the General Public License (GPL) v3, thus securing practical usability, inspection,
+and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals.
The GPL implies that:
\li Copies may be distributed free of charge or for money, but the source code has to be shipped or provided free of charge (or at cost price) on demand. The receiver of the source code has the same rights meaning he can share copies free of charge or resell.
@@ -600,8 +597,8 @@ If you use GNSS-SDR to produce a research paper or Thesis, we would appreciate i
\li \anchor Navitec2012 C. Fernández-Prades, J. Arribas, L. Esteve, D. Pubill, P. Closas, An Open Source Galileo E1 Software Receiver, in Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC 2012), ESTEC, Noordwijk, The Netherlands, Dec. 2012.
\li J. Arribas, GNSS Array-based Acquisition: Theory and Implementation, PhD Thesis, Universitat Politècnica de Catalunya, Barcelona, Spain, June 2012.
-\li C. Fernández-Prades, J. Arribas, P. Closas, C. Avilés, and L. Esteve, GNSS-SDR: an open source tool for researchers and developers, in Proc. of the ION GNSS 2011 Conference, Portland, Oregon, Sept. 19-23, 2011.
-\li C. Fernández-Prades, C. Avilés, L. Esteve, J. Arribas, and P. Closas, Design patterns for GNSS software receivers, in Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010), ESTEC, Noordwijk, The Netherlands, Dec. 2010. DOI:10.1109/NAVITEC.2010.5707981
+\li C. Fernández-Prades, J. Arribas, P. Closas, C. Avilés, and L. Esteve, GNSS-SDR: an open source tool for researchers and developers, in Proc. of the ION GNSS 2011 Conference, Portland, Oregon, Sept. 19-23, 2011.
+\li C. Fernández-Prades, C. Avilés, L. Esteve, J. Arribas, and P. Closas, Design patterns for GNSS software receivers, in Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010), ESTEC, Noordwijk, The Netherlands, Dec. 2010. DOI:10.1109/NAVITEC.2010.5707981
For LaTeX users, these are the BibTeX cites for your convenience:
@@ -609,12 +606,12 @@ For LaTeX users, these are the BibTeX cites for your convenience:
@INPROCEEDINGS{GNSS-SDR12
author = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and L.~Esteve and D.~Pubill and P.~Closas},
title = {An Open Source {G}alileo {E1} Software Receiver},
- booktitle = {Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2012)},
- year = {2012},
- address = {ESTEC, Noordwijk, The Netherlands},
+ booktitle = {Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2012)},
+ year = {2012},
+ address = {ESTEC, Noordwijk, The Netherlands},
month = {Dec.} }
\endverbatim
-
+
\verbatim
@PHDTHESIS{Arribas12,
author = {J.~Arribas},
@@ -624,48 +621,45 @@ For LaTeX users, these are the BibTeX cites for your convenience:
address = {Barcelona, Spain},
month = {June} }
\endverbatim
-
+
\verbatim
-@INPROCEEDINGS{GNSS-SDR11,
- AUTHOR = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and P.~Closas and C.~Avil\'{e}s and L.~Esteve},
- TITLE = {{GNSS-SDR}: An Open Source Tool For Researchers and Developers},
- BOOKTITLE = {Proc. of the ION GNSS 2011 Conference},
- YEAR = {2011},
- address = {Portland, Oregon},
- month = {Sept.} }
+@INPROCEEDINGS{GNSS-SDR11,
+ AUTHOR = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and P.~Closas and C.~Avil\'{e}s and L.~Esteve},
+ TITLE = {{GNSS-SDR}: An Open Source Tool For Researchers and Developers},
+ BOOKTITLE = {Proc. of the ION GNSS 2011 Conference},
+ YEAR = {2011},
+ address = {Portland, Oregon},
+ month = {Sept.} }
\endverbatim
-
+
\verbatim
-@INPROCEEDINGS{GNSS-SDR10,
- AUTHOR = {C.~{Fern\'{a}ndez--Prades} and C.~Avil\'{e}s and L.~Esteve and J.~Arribas and P.~Closas},
- TITLE = {Design patterns for {GNSS} software receivers},
- BOOKTITLE = {Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010)},
- YEAR = {2010},
- address = {ESTEC, Noordwijk, The Netherlands},
- month = {Dec.},
- note = {DOI:10.1109/NAVITEC.2010.5707981} }
+@INPROCEEDINGS{GNSS-SDR10,
+ AUTHOR = {C.~{Fern\'{a}ndez--Prades} and C.~Avil\'{e}s and L.~Esteve and J.~Arribas and P.~Closas},
+ TITLE = {Design patterns for {GNSS} software receivers},
+ BOOKTITLE = {Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010)},
+ YEAR = {2010},
+ address = {ESTEC, Noordwijk, The Netherlands},
+ month = {Dec.},
+ note = {DOI:10.1109/NAVITEC.2010.5707981} }
\endverbatim
\section now_what Ok, now what?
-In order to start using GNSS-SDR, you may want to populate gnss-sdr/data folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output
-of a Radio Frequency front-end's Analog-to_Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intemediate frequency (on the order of MHz).
+In order to start using GNSS-SDR, you may want to populate gnss-sdr/data folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output
+of a Radio Frequency front-end's Analog-to_Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intemediate frequency (on the order of MHz).
Prepare your configuration file, and then you are ready for going to the gnss-sdr/install folder, running ./gnss-sdr, and see how the file is processed.
Please ask the Developer Team for a signal sample if you need one, and they will do their best ;-)
Another interesting option is working in real-time with a RF front-end. We provide drivers for UHD-compatible hardware (see \ref signal_source), for the GN3S v2 USB dongle
and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time.
-You can find more information at the GNSS-SDR Documentation page or directly asking to the
-GNSS-SDR Developers mailing list.
-
-You are also very welcome to contribute to the project, there are many ways to participate in GNSS-SDR.
-If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it.
-Please do not hesitate to contact them.
+You can find more information at the GNSS-SDR Documentation page or directly asking to the
+GNSS-SDR Developers mailing list.
-Enjoy GNSS-SDR!
+You are also very welcome to contribute to the project, there are many ways to participate in GNSS-SDR.
+If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it.
+Please do not hesitate to contact them.
+
+Enjoy GNSS-SDR!
The Developer Team.
*/
-
-
-
diff --git a/docs/doxygen/other/reference_docs.dox b/docs/doxygen/other/reference_docs.dox
index 3759c876a..8b3f8564d 100644
--- a/docs/doxygen/other/reference_docs.dox
+++ b/docs/doxygen/other/reference_docs.dox
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
/*! \page reference_docs Reference Documents
@@ -21,32 +21,32 @@
\section icd Interface Control Documents
\subsection gps GPS
-All the current GPS Interface Control Documents can be downloaded from GPS.gov, the official U.S. Government webpage for GPS.
+All the current GPS Interface Control Documents can be downloaded from GPS.gov, the official U.S. Government webpage for GPS.
-\li GPS L1 and L2C: Global Positioning System Directorate, Interface Specification IS-GPS-200 Revision H. September, 2013.
-\li GPS L1C (available with first Block III launch): Global Positioning System Directorate, Interface Specification IS-GPS-800 Revision D. September, 2013.
-\li GPS L5 (first Block IIF satellite launched on May, 2010): Global Positioning System Directorate, Interface Specification IS-GPS-705 Revision D. September, 2013.
+\li GPS L1 and L2C: Global Positioning System Directorate, Interface Specification IS-GPS-200 Revision H. September, 2013.
+\li GPS L1C (available with first Block III launch): Global Positioning System Directorate, Interface Specification IS-GPS-800 Revision D. September, 2013.
+\li GPS L5 (first Block IIF satellite launched on May, 2010): Global Positioning System Directorate, Interface Specification IS-GPS-705 Revision D. September, 2013.
\subsection glonass GLONASS
-Official GLONASS webpage: Information-analytical centre official website.
+Official GLONASS webpage: Information-analytical centre official website.
\li Standard Accuracy (ST) signals at L1 and L2: Russian Institute of Space Device Engineering, Global Navigation Satellite System GLONASS. Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1, Moscow, Russia, 2008
\subsection galileo Galileo
-Check the Galileo website of the European Commission and the
-Galileo website of the European Space Agency.
+Check the Galileo website of the European Commission and the
+Galileo website of the European Space Agency.
There is a website with Galileo constellation status information from the International GNSS Service.
-\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.2, European Commission, Nov. 2015.
+\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.2, European Commission, Nov. 2015.
\li European GNSS (Galileo) Open Service Signal-In-Space Operational Status Definition, European Commission, Sept. 2015.
-The European Commission is granting free access to the technical information on the future Galileo open service signal, i.e. the specifications manufacturers
-and developers need to process data received from satellites. This document informs receiver manufacturers, application developers and service providers on how
+The European Commission is granting free access to the technical information on the future Galileo open service signal, i.e. the specifications manufacturers
+and developers need to process data received from satellites. This document informs receiver manufacturers, application developers and service providers on how
to use the future Galileo system and what they can expect in terms of performance.
\subsection beidou BeiDou
@@ -65,20 +65,20 @@ Open Service Signal (Version 2.0). China Satellite Navigation Office, December 2
\li EGNOS Open Service (OS) Service Definition Document. Ref: EGN-SDD OS, Revision 2.2, European GNSS Agency (GSA), Feb. 12, 2015. This is a complementary document to the RTCA DO229D, mentioned above. It describes the scope of services provided by the EGNOS Open Service to be used by end-users or Application Specific Service Providers. It details the general conditions relating to the use of the EGNOS service, a technical description of the Signal-in-Space (SIS), the reference receiver, environmental conditions, the service performance achieved and aspects relating to service provision.
-\li EGNOS Safety of Life Service Definition Document. Ref: EGN-SDD SoL, Revision 3.0, European GNSS Agency (GSA), Sep. 22, 2015. The EGNOS Safety of Life (SoL) Service is provided openly and is freely accessible without any direct charge and is tailored to safety-critical transport applications in various domains, in particular for aviation applications. The service is thus compliant with the aviation APV-I (Approach with Vertical Guidance) requirements, as defined by ICAO in Annex 10, but may support also applications in other SoL domains.
+\li EGNOS Safety of Life Service Definition Document. Ref: EGN-SDD SoL, Revision 3.0, European GNSS Agency (GSA), Sep. 22, 2015. The EGNOS Safety of Life (SoL) Service is provided openly and is freely accessible without any direct charge and is tailored to safety-critical transport applications in various domains, in particular for aviation applications. The service is thus compliant with the aviation APV-I (Approach with Vertical Guidance) requirements, as defined by ICAO in Annex 10, but may support also applications in other SoL domains.
\li EGNOS Data Access Service (EDAS) Service Definition Document, Rf: EGN-SDD EDAS, V2.1, European GNSS Agency (GSA), Dec. 19, 2014.
-More information about EGNOS can be found through the EGNOS Portal.
+More information about EGNOS can be found through the EGNOS Portal.
\section standards Other Standards
\subsection rinex RINEX
-The final output of a navigation receiver is usually its position, speed or other related physical quantities. However, the calculation of those quantities
-are based on a series of measurements from one or more satellite constellations. Although receivers calculate positions in real time, in many cases it is
-interesting to store intermediate measures for later post-processing. RINEX is the standard format that allows the management and disposal of the measures
+The final output of a navigation receiver is usually its position, speed or other related physical quantities. However, the calculation of those quantities
+are based on a series of measurements from one or more satellite constellations. Although receivers calculate positions in real time, in many cases it is
+interesting to store intermediate measures for later post-processing. RINEX is the standard format that allows the management and disposal of the measures
generated by a receiver, as well as their off-line processing by a multitude of applications.
-\li The most common version at present is RINEX: The Receiver Independent Exchange Format Version 2.11, which enables storage of measurements from pseudorange, carrier-phase and Doppler systems for GPS or GLONASS,
+\li The most common version at present is RINEX: The Receiver Independent Exchange Format Version 2.11, which enables storage of measurements from pseudorange, carrier-phase and Doppler systems for GPS or GLONASS,
along with data from EGNOS and WAAS satellite based augmentation systems (SBAS).
\li The most recent version is RINEX: The Receiver Independent Exchange Format Version 3.01 published in June, 2009.
@@ -88,11 +88,11 @@ It includes Galileo and improves the handling of multi-constellation data files.
\subsection nmea NMEA
-The National Marine Electronics Association released the NMEA 0183 Interface Standard, which defines electrical signal requirements, data transmission protocol and time,
+The National Marine Electronics Association released the NMEA 0183 Interface Standard, which defines electrical signal requirements, data transmission protocol and time,
and specific sentence formats for a 4800-baud serial data bus. The standard is available for purchase.
\subsection kml KML
-KML is an XML language focused on geographic visualization, including annotation of maps and images. Geographic visualization includes not only the presentation of graphical data on the globe, but also the control of the user's navigation in the sense of where to go and where to look.
+KML is an XML language focused on geographic visualization, including annotation of maps and images. Geographic visualization includes not only the presentation of graphical data on the globe, but also the control of the user's navigation in the sense of where to go and where to look.
Google submitted KML (formerly Keyhole Markup Language) to the Open Geospatial Consortium (OGC) to be evolved within the OGC consensus process with the following goal: KML Version 2.2 has been adopted as an OGC implementation standard.
\li Open Geospatial Consortium, Inc., OGC KML Version 2.2.0, April 2008.
@@ -100,33 +100,33 @@ Google submitted KML (formerly Keyhole Markup Language) to the Open Geospatial C
\subsection cxx C++ Standards
-In 1998, the C++ standards committee (the ISO/IEC JTC1/SC22/WG21 working group)
-standardized C++ and published the international standard ISO/IEC 14882:1998 (informally known as C++98). A technical corrigendum was approved in 2003,
+In 1998, the C++ standards committee (the ISO/IEC JTC1/SC22/WG21 working group)
+standardized C++ and published the international standard ISO/IEC 14882:1998 (informally known as C++98). A technical corrigendum was approved in 2003,
and the standard was published again as the ISO/IEC 14882:2003.
-Published ISO and IEC standards can be purchased from a member body of ISO or IEC. Free copies of the C++ standard Committee Drafts
-were made public before the official standard was released.
+Published ISO and IEC standards can be purchased from a member body of ISO or IEC. Free copies of the C++ standard Committee Drafts
+were made public before the official standard was released.
-In 2005, a technical report, called the Library Technical Report 1
-(often known as TR1 for short), was released. While not an official part of the standard, it specified a number of extensions to the standard library,
-which were expected to be included in the next version of C++. The linked document is officially a draft, but that is due only to procedural issues;
+In 2005, a technical report, called the Library Technical Report 1
+(often known as TR1 for short), was released. While not an official part of the standard, it specified a number of extensions to the standard library,
+which were expected to be included in the next version of C++. The linked document is officially a draft, but that is due only to procedural issues;
the content did not change. Scott Meyers provides more TR1 information.
Some ISO/IEC standards are publicly available, for instance: ISO/IEC TR 18015:2006 Technical Report on C++ Performance.
-The standard for the next version of the language (previously known as C++0x) was finally
-published with the name of C++11 in September, 2011, as the ISO/IEC 14882:2011 Standard. GCC, the GNU Compiler Collection,
-provides partial C++11 support. Bjarne Stroustrup maintains a C++11 FAQ.
+The standard for the next version of the language (previously known as C++0x) was finally
+published with the name of C++11 in September, 2011, as the ISO/IEC 14882:2011 Standard. GCC, the GNU Compiler Collection,
+provides partial C++11 support. Bjarne Stroustrup maintains a C++11 FAQ.
\li The most recent public draft of the Standard for Programming Language C++ was published in Feb. 2011.
\subsection protocols Positioning protocols in wireless communication networks
-Cellular industry location standards first appeared in the late 1990s, with the 3rd generation partnership project (3GPP) radio resource location services protocol (RRLP) technical specification 44.031 positioning protocol for GSM networks.
-Today, RRLP is the de facto standardized protocol to carry GNSS assistance data to GNSS-enabled mobile devices, and the term "3GPP specification" now covers all GSM (including GPRS and EDGE),
-W-CDMA and LTE (including LTE-A) specifications. Precisely, the label "LTE-A" is applied to networks compliant with LTE Release 10 and beyond, which fulfill the requirements issued by
-the International Telecommunication Union Radiocommunication Sector (ITU-R) in the global standard for international mobile telecommunications (IMT Advanced, also referred to as 4G)
+Cellular industry location standards first appeared in the late 1990s, with the 3rd generation partnership project (3GPP) radio resource location services protocol (RRLP) technical specification 44.031 positioning protocol for GSM networks.
+Today, RRLP is the de facto standardized protocol to carry GNSS assistance data to GNSS-enabled mobile devices, and the term "3GPP specification" now covers all GSM (including GPRS and EDGE),
+W-CDMA and LTE (including LTE-A) specifications. Precisely, the label "LTE-A" is applied to networks compliant with LTE Release 10 and beyond, which fulfill the requirements issued by
+the International Telecommunication Union Radiocommunication Sector (ITU-R) in the global standard for international mobile telecommunications (IMT Advanced, also referred to as 4G)
access technologies.
Control plane protocols:
@@ -139,12 +139,12 @@ User plane protocols:
\li Open Mobile Alliance (OMA), Secure User Plane Location Architecture Version 1 (SUPL 1.0), June 2007.
\li Open Mobile Alliance (OMA), Secure User Plane Location Architecture Version 2 (SUPL 2.0), 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.
+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 OMA Location Working Group (WG) webpage for updated information about LPP Extensions (LPPe) Specification.
-\li The OMA Mobile Location Protocol (MLP) V3.1 is an application-level protocol for getting the position of mobile stations (mobile phones, wireless personal digital assistants, etc.) independent
-of underlying network technology. The MLP serves as the interface between a Location Server and a Location Services (LCS) Client.
+\li The OMA Mobile Location Protocol (MLP) V3.1 is an application-level protocol for getting the position of mobile stations (mobile phones, wireless personal digital assistants, etc.) independent
+of underlying network technology. The MLP serves as the interface between a Location Server and a Location Services (LCS) Client.
This specification defines the core set of operations that a Location Server should be able to perform.
-*/
\ No newline at end of file
+*/
diff --git a/docs/doxygen/other/signal_model.dox b/docs/doxygen/other/signal_model.dox
index 5d40b7f65..de02c8e19 100644
--- a/docs/doxygen/other/signal_model.dox
+++ b/docs/doxygen/other/signal_model.dox
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
/*! \page the_signal_model Signal model
@@ -21,46 +21,46 @@
\section gnss_signal_model GNSS signal model
This page describes signals transmitted by GNSS space vehicles. Signal models are mathematical representations
-of the electromagnetic waves that are exciting the receiver's antenna. The current induced by those waves is then amplified, filtered and downconverted to a suitable frequency (can be at some intermediate frequency or
+of the electromagnetic waves that are exciting the receiver's antenna. The current induced by those waves is then amplified, filtered and downconverted to a suitable frequency (can be at some intermediate frequency or
directly to baseband), and then converted to 0s and 1s by the Analog-to-Digital Converter (ADC). That is the job of the Radio Frequency front-end, which at its output delivers a stream of
-digital samples. Those samples constitute the input of a software receiver, so for GNSS-SDR the signal models described below can be seen as the rules of the game.
+digital samples. Those samples constitute the input of a software receiver, so for GNSS-SDR the signal models described below can be seen as the rules of the game.
-GNSS' space vehicles are modern versions of lighthouses, but with better visibility. Each satellite is a reference point, and if we know our distance to several reference points,
+GNSS' space vehicles are modern versions of lighthouses, but with better visibility. Each satellite is a reference point, and if we know our distance to several reference points,
we can compute our location, just as mariners do when they see a couple of lighthouses. For each in-view satellite \f$i\f$ of system \f$s\f$, we can write:
\f{equation}{\label{eq:pseudorange}
\rho_i = \sqrt{ \left(x^{\text{Tx}}_i - x \right)^2 + \left(y^{\text{Tx}}_i - y \right)^2 + \left(z^{\text{Tx}}_i - z \right)^2}+c\Delta t^{(s)}+\sigma_{e},
\f}
- where \f$\left(x^{\text{Tx}}_i, y^{\text{Tx}}_i, z^{\text{Tx}}_i\right)\f$ is the satellite's position (known from the navigation message), \f$(x,y,z)\f$ the receiver's position,
- and \f$\sigma_e\f$ gathers other sources of error. Since the receiver needs to estimate its own 3D position (three spatial unknowns) and its clock deviation with respect to
- the satellites' time basis, at least \f$3+N_s\f$ satellites must be seen by the receiver at the same time, where \f$N_s\f$ is the number of different navigation systems available
- (in-view) at a given time. Each received satellite signal, once synchronized and demodulated at the receiver, defines one equation such as the one defined above,
- forming a set of nonlinear equations that can be solved algebraically by means of the Bancroft algorithm or
- numerically, resorting to multidimensional Newton-Raphson and weighted least square methods. When a priori information is added we resort to Bayesian estimation, a problem
- that can be solved recursively by a Kalman filter or any of its variants. The problem can be further expanded by adding other unknowns (for instance, parameters of ionospheric and
- tropospheric models), sources of information from other systems, mapping information, and even motion models of the receiver. In the design of multi-constellation GNSS receivers,
- the vector of unknowns can also include the receiver clock offset with respect to each system in order to take advantage of a higher number of in-view satellites and using them
+ where \f$\left(x^{\text{Tx}}_i, y^{\text{Tx}}_i, z^{\text{Tx}}_i\right)\f$ is the satellite's position (known from the navigation message), \f$(x,y,z)\f$ the receiver's position,
+ and \f$\sigma_e\f$ gathers other sources of error. Since the receiver needs to estimate its own 3D position (three spatial unknowns) and its clock deviation with respect to
+ the satellites' time basis, at least \f$3+N_s\f$ satellites must be seen by the receiver at the same time, where \f$N_s\f$ is the number of different navigation systems available
+ (in-view) at a given time. Each received satellite signal, once synchronized and demodulated at the receiver, defines one equation such as the one defined above,
+ forming a set of nonlinear equations that can be solved algebraically by means of the Bancroft algorithm or
+ numerically, resorting to multidimensional Newton-Raphson and weighted least square methods. When a priori information is added we resort to Bayesian estimation, a problem
+ that can be solved recursively by a Kalman filter or any of its variants. The problem can be further expanded by adding other unknowns (for instance, parameters of ionospheric and
+ tropospheric models), sources of information from other systems, mapping information, and even motion models of the receiver. In the design of multi-constellation GNSS receivers,
+ the vector of unknowns can also include the receiver clock offset with respect to each system in order to take advantage of a higher number of in-view satellites and using them
jointly in the navigation solution, therefore increasing accuracy.
-The analytic representation of a signal received from a GNSS satellite can be generically expressed as
+The analytic representation of a signal received from a GNSS satellite can be generically expressed as
\f{equation}{\label{eq:analytic}
r(t)=\alpha(t) s_{T} \left(t-\tau(t)\right)e^{-j2 \pi f_d(t) }e^{j 2 \pi f_c t}+n(t)~,
\f}
- where \f$\alpha(t)\f$ is the amplitude, \f$s_{T}(t)\f$ is the complex baseband transmitted signal, \f$\tau(t)\f$ is the time-varying delay, \f$f_d(t)=f_c \tau(t)\f$ is the Doppler shift, \f$f_c\f$ is
- the carrier frequency, and \f$n(t)\f$ is a noise term. These signals arrive to the Earth's surface at extremely low power (e.g. \f$-158.5\f$ dBW for GPS L1 C/A-code, \f$-157\f$ dBW
- for Galileo E1), well below the noise floor. In order to estimate its distances to satellites, the receiver must correlate time-aligned replicas of the corresponding pseudorandom
- code with the incoming signal, in a process called despreading that provides processing gain only to the signal of interest. After a coarse and fine estimation stages of the
- synchronization parameters (usually known as acquisition and tracking, respectively), signal processing output is in form of observables:
-
- i) the pseudorange (code) measurement,
+ where \f$\alpha(t)\f$ is the amplitude, \f$s_{T}(t)\f$ is the complex baseband transmitted signal, \f$\tau(t)\f$ is the time-varying delay, \f$f_d(t)=f_c \tau(t)\f$ is the Doppler shift, \f$f_c\f$ is
+ the carrier frequency, and \f$n(t)\f$ is a noise term. These signals arrive to the Earth's surface at extremely low power (e.g. \f$-158.5\f$ dBW for GPS L1 C/A-code, \f$-157\f$ dBW
+ for Galileo E1), well below the noise floor. In order to estimate its distances to satellites, the receiver must correlate time-aligned replicas of the corresponding pseudorandom
+ code with the incoming signal, in a process called despreading that provides processing gain only to the signal of interest. After a coarse and fine estimation stages of the
+ synchronization parameters (usually known as acquisition and tracking, respectively), signal processing output is in form of observables:
+
+ i) the pseudorange (code) measurement,
equivalent to the difference of the time of reception (expressed
-in the time frame of the receiver) and the time of transmission (expressed in the time frame of the satellite) of a distinct satellite signal; and optionally
+in the time frame of the receiver) and the time of transmission (expressed in the time frame of the satellite) of a distinct satellite signal; and optionally
-ii) the carrier-phase measurement, actually being a measurement on the beat frequency between the received carrier of the satellite signal and a receiver-generated reference frequency.
-Carrier phase measurements are ambiguous, in the sense that the integer number of carrier wavelengths between satellite and the receiver's antenna is unknown.
-Techniques such as Least-square AMBiguity Decorrelation Approach (LAMBDA) or
-Multi Carrier Ambiguity Resolution (MCAR) can be applied to resolve such ambiguity and provide an accurate estimation of the distance between the satellite and the receiver.
+ii) the carrier-phase measurement, actually being a measurement on the beat frequency between the received carrier of the satellite signal and a receiver-generated reference frequency.
+Carrier phase measurements are ambiguous, in the sense that the integer number of carrier wavelengths between satellite and the receiver's antenna is unknown.
+Techniques such as Least-square AMBiguity Decorrelation Approach (LAMBDA) or
+Multi Carrier Ambiguity Resolution (MCAR) can be applied to resolve such ambiguity and provide an accurate estimation of the distance between the satellite and the receiver.
-Then, depending on the required accuracy, the navigation solution can range from pseudorange-only, computationally low demanding, and limited accuracy least squares methods to sophisticated combinations of code and
+Then, depending on the required accuracy, the navigation solution can range from pseudorange-only, computationally low demanding, and limited accuracy least squares methods to sophisticated combinations of code and
phase observables at different frequencies for high demanding applications such as surveying, geodesy, and geophysics.
@@ -74,7 +74,7 @@ and civilian users on a continuous, worldwide basis. Two GPS services are provid
the Precise Positioning Service (PPS), available primarily to the military of the United
States and its allies, and the Standard Positioning Service (SPS) open to civilian users.
-\li GPS L1. Defined at Interface Specification IS-GPS-200 Revision F, this band is centered at \f$f_{\text{GPS L1}}=1575.42\f$ MHz. The complex baseband transmitted signal can be written as
+\li GPS L1. Defined at Interface Specification IS-GPS-200 Revision F, this band is centered at \f$f_{\text{GPS L1}}=1575.42\f$ MHz. The complex baseband transmitted signal can be written as
\f{equation}{
s^{\text{(GPS L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~,
\f}
@@ -83,30 +83,30 @@ s^{\text{(GPS L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~,
e_{L1I}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{NAV}}\Big[ [l]_{204600}\Big] \oplus C_{\text{P(Y)}}\Big[ |l|_{L_{\text{P(Y)}}} \Big] p(t - lT_{c,\text{P(Y)}})~,\label{eq:L1CAI}\\
e_{L1Q}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{NAV}}\Big[ [l]_{20460} \Big] \oplus C_{\text{C/A}} \Big[ |l|_{1023} \Big] p(t - lT_{c,\text{C/A}})~,\label{eq:L1CA}
\f}
- where \f$\oplus\f$ is the exclusive-or operation (modulo-2 addition), \f$|l|_{L}\f$ means \f$l\f$ modulo \f$L\f$, \f$[l]_{L}\f$ means the integer part of \f$\frac{l}{L}\f$,
- \f$D_{\text{NAV}}\f$ is the GPS navigation message bit sequence, transmitted at \f$50\f$ bps, \f$T_{c,\text{P(Y)}}=\frac{1}{10.23}\f$ \f$\mu\f$s, \f$T_{c,\text{C/A}}=\frac{1}{1.023}\f$ \f$\mu\f$s,
- \f$L_{\text{P(Y)}}=6.1871 \cdot 10^{12}\f$, and \f$p(t)\f$ is a rectangular pulse of a chip-period duration centered at \f$t=0\f$ and filtered at the transmitter.
- According to the chip rate, the binary phase-shift keying modulations in the equations above are denoted as BPSK(10) and BPSK(1), respectively. The precision P codes (named Y codes whenever
- the anti-spoofing mode is activated, encrypting the code and thus denying non-U.S. military users) are sequences of \f$7\f$ days in length. Regarding the modernization plans for GPS, it
- is worthwhile to mention that there is a new civilian-use signal planned, called L1C and defined at Interface Specification IS-GPS-800 Revision B,
- to be broadcast on the same L1 frequency that currently contains the C/A signal. The L1C will be available with first Block III launch, currently scheduled for 2013. The implementation will
+ where \f$\oplus\f$ is the exclusive-or operation (modulo-2 addition), \f$|l|_{L}\f$ means \f$l\f$ modulo \f$L\f$, \f$[l]_{L}\f$ means the integer part of \f$\frac{l}{L}\f$,
+ \f$D_{\text{NAV}}\f$ is the GPS navigation message bit sequence, transmitted at \f$50\f$ bps, \f$T_{c,\text{P(Y)}}=\frac{1}{10.23}\f$ \f$\mu\f$s, \f$T_{c,\text{C/A}}=\frac{1}{1.023}\f$ \f$\mu\f$s,
+ \f$L_{\text{P(Y)}}=6.1871 \cdot 10^{12}\f$, and \f$p(t)\f$ is a rectangular pulse of a chip-period duration centered at \f$t=0\f$ and filtered at the transmitter.
+ According to the chip rate, the binary phase-shift keying modulations in the equations above are denoted as BPSK(10) and BPSK(1), respectively. The precision P codes (named Y codes whenever
+ the anti-spoofing mode is activated, encrypting the code and thus denying non-U.S. military users) are sequences of \f$7\f$ days in length. Regarding the modernization plans for GPS, it
+ is worthwhile to mention that there is a new civilian-use signal planned, called L1C and defined at Interface Specification IS-GPS-800 Revision B,
+ to be broadcast on the same L1 frequency that currently contains the C/A signal. The L1C will be available with first Block III launch, currently scheduled for 2013. The implementation will
provide C/A code to ensure backward compatibility.
-\li GPS L2C. Defined at Interface Specification IS-GPS-200 Revision F, is only available on
-Block IIR-M and subsequent satellite blocks. Centered at \f$f_{\text{GPS L2}}=1227.60\f$ MHz, the signal structure is the same than in (\ref{eq:GPSL1}), with the precision code in the In-phase
+\li GPS L2C. Defined at Interface Specification IS-GPS-200 Revision F, is only available on
+Block IIR-M and subsequent satellite blocks. Centered at \f$f_{\text{GPS L2}}=1227.60\f$ MHz, the signal structure is the same than in (\ref{eq:GPSL1}), with the precision code in the In-phase
component, just as in (\ref{eq:L1CAI}) but with an optional presence of the navigation message \f$D_{\text{NAV}}\f$. For the Quadrature-phase component, three options are defined:
\f{align}{ e_{L2CQ}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{CNAV}} \Big[ [l]_{10230} \Big] \oplus \left( C_{\text{CL}} \Big[ |l|_{L_{\text{CL}}} \Big] p_{\text{\tiny{1/2}}} \left( t - lT_{c,L2C} \right) + \right.\\ {} &+ \left. C_{\text{CM}} \Big[ |l|_{L_{\text{CM}}} \Big] p_{\text{\tiny{1/2}}}\left(t - \left(l+\frac{3}{4}\right)T_{c,L2C}\right) \right),\\
e_{L2CQ}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{NAV}} \Big[ [l]_{20460} \Big] \oplus C_{\text{C/A}} \Big[ |l|_{1023} \Big] p \left(t - lT_{c,\text{C/A}}\right) \text{, or}\\
e_{L2CQ}(t)=& \sum_{l=-\infty}^{\infty}C_{\text{C/A}} \Big[ |l|_{1023} \Big] p(t - lT_{c,\text{C/A}})~,
\f}
- where \f$T_{c,L2C}=\frac{1}{511.5}\f$ ms and \f$p_{\text{\tiny{1/2}}}(t)\f$ is a rectangular pulse of half chip-period duration, thus time-multiplexing both codes. The civilian long
- code \f$C_{\text{CL}}\f$ is \f$L_{\text{CL}}=767250\f$ chips long, repeating every \f$1.5\f$ s, while the civilian moderate code \f$C_{\text{CM}}\f$ is \f$L_{\text{CL}}=10230\f$ chips
- long and its repeats every \f$20\f$ ms. The CNAV data is an upgraded version of the original NAV navigation message, containing higher precision representation and nominally more accurate
+ where \f$T_{c,L2C}=\frac{1}{511.5}\f$ ms and \f$p_{\text{\tiny{1/2}}}(t)\f$ is a rectangular pulse of half chip-period duration, thus time-multiplexing both codes. The civilian long
+ code \f$C_{\text{CL}}\f$ is \f$L_{\text{CL}}=767250\f$ chips long, repeating every \f$1.5\f$ s, while the civilian moderate code \f$C_{\text{CM}}\f$ is \f$L_{\text{CL}}=10230\f$ chips
+ long and its repeats every \f$20\f$ ms. The CNAV data is an upgraded version of the original NAV navigation message, containing higher precision representation and nominally more accurate
data than the NAV data. It is transmitted at \f$25\f$ bps with forward error correction (FEC) encoding, resulting in \f$50\f$ sps.
-\li GPS L5. The GPS L5 link, defined at Interface Specification IS-GPS-705 Revision B, is only available
+\li GPS L5. The GPS L5 link, defined at Interface Specification IS-GPS-705 Revision B, is only available
in Block IIF (first satellite launched on May, 2010) and subsequent satellite blocks. Centered at \f$f_{\text{GPS L5}}=1176.45\f$ MHz, this signal in space can be written as:
\f{equation}{
s^{\text{(GPS L5)}}_{T}(t)=e_{L5I}(t) +j e_{L5Q}(t)~,
@@ -129,9 +129,9 @@ Eight satellites are equally spaced in each plane with \f$45^o\f$ argument of la
the orbital planes have an argument of latitude displacement of \f$15^o\f$ relative to each other.
-GLONASS civil signal-in-space is defined at Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1.
-This system makes use of a frequency-division multiple access (FDMA) signal structure, transmitting in two bands: \f$f^{(k)}_{GLO L1}=1602+k \cdot 0.5625\f$ MHz and \f$f^{(k)}_{GLO L2}=1246+k \cdot 0.4375\f$ MHz,
-where \f$k\in \left\{ -7,-6,\cdots,5,6\right\}\f$ is the channel number. Satellites in opposite points of an orbit plane transmit signals on equal frequencies, as these satellites will never be
+GLONASS civil signal-in-space is defined at Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1.
+This system makes use of a frequency-division multiple access (FDMA) signal structure, transmitting in two bands: \f$f^{(k)}_{GLO L1}=1602+k \cdot 0.5625\f$ MHz and \f$f^{(k)}_{GLO L2}=1246+k \cdot 0.4375\f$ MHz,
+where \f$k\in \left\{ -7,-6,\cdots,5,6\right\}\f$ is the channel number. Satellites in opposite points of an orbit plane transmit signals on equal frequencies, as these satellites will never be
in view simultaneously by a ground-based user.
@@ -144,18 +144,18 @@ s^{\text{(GLO L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~,
e_{L1I}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{GNAV}}\Big[ [l]_{102200}\Big] \oplus C_{\text{HP}} \Big[ |l|_{L_{\text{HP}}} \Big] p(t - lT_{c,\text{HP}})~,\\
e_{L1Q}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{GNAV}}\Big[ [l]_{10220} \Big] \oplus C_{\text{SP}} \Big[ |l|_{511} \Big] p(t - lT_{c,\text{SP}})~,
\f}
- where \f$T_{c,\text{HP}}=\frac{1}{5.11}\f$ \f$\mu\f$s, \f$T_{c,\text{SP}}=\frac{1}{0.511}\f$ \f$\mu\f$s, and \f$L_{\text{HP}}=3.3554\cdot 10^7\f$. The navigation
- message \f$D_{\text{GNAV}}\f$ is transmitted at \f$50\f$ bps. Details of its content and structure, as well as the generation of the \f$C_{\text{SP}}\f$ code, can be found at
- the ICD. The usage of the HP signal should be agreed with the Russian Federation Defense
+ where \f$T_{c,\text{HP}}=\frac{1}{5.11}\f$ \f$\mu\f$s, \f$T_{c,\text{SP}}=\frac{1}{0.511}\f$ \f$\mu\f$s, and \f$L_{\text{HP}}=3.3554\cdot 10^7\f$. The navigation
+ message \f$D_{\text{GNAV}}\f$ is transmitted at \f$50\f$ bps. Details of its content and structure, as well as the generation of the \f$C_{\text{SP}}\f$ code, can be found at
+ the ICD. The usage of the HP signal should be agreed with the Russian Federation Defense
Ministry, and no more details have been disclosed.
\li GLONASS L2. Beginning with the second generation of satellites, called GLONASS-M and first launched in 2001, a second civil signal is available using the same SP code than the one in the L1 band.
-The use of FDMA techniques, in which the same code is used to broadcast navigation signals on different frequencies, and the placement of civil GLONASS transmissions on frequencies close to \f$1600\f$ MHz,
-well above the GPS L1 band, have complicated the design of combined GLONASS/GPS receivers, particularly low-cost equipment for mass-market applications. Future plans of modernization are
-intended to increase compatibility and interoperability with other GNSS, and include the addition of a code-division multiple access (CDMA) structure, and possibly binary offset carrier (BOC)
-modulation, beginning with the third civil signal in the L3 band (\f$1197.648 - 1212.255\f$ MHz). Russia is implementing the new signals on the next-generation GLONASS-K satellites, with a
+The use of FDMA techniques, in which the same code is used to broadcast navigation signals on different frequencies, and the placement of civil GLONASS transmissions on frequencies close to \f$1600\f$ MHz,
+well above the GPS L1 band, have complicated the design of combined GLONASS/GPS receivers, particularly low-cost equipment for mass-market applications. Future plans of modernization are
+intended to increase compatibility and interoperability with other GNSS, and include the addition of a code-division multiple access (CDMA) structure, and possibly binary offset carrier (BOC)
+modulation, beginning with the third civil signal in the L3 band (\f$1197.648 - 1212.255\f$ MHz). Russia is implementing the new signals on the next-generation GLONASS-K satellites, with a
first prototype successfully launched into orbit on February 26, 2011.
@@ -173,9 +173,9 @@ period of \f$14\f$ hours. The Control segment full infrastructure will be compos
Galileo's Open Service is defined at Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.1, where the following signal structures are specified:
-\li Galileo E1. This band, centered at \f$f_{\text{Gal E1}}=1575.420\f$ MHz and with a reference bandwidth of \f$24.5520\f$ MHz, uses the so-called composite binary offset carrier
+\li Galileo E1. This band, centered at \f$f_{\text{Gal E1}}=1575.420\f$ MHz and with a reference bandwidth of \f$24.5520\f$ MHz, uses the so-called composite binary offset carrier
CBOC(6,1,\f$\frac{1}{11}\f$) modulation, defined in baseband as:
-\f{align}{
+\f{align}{
s^{\text{(Gal E1)}}_{T}(t)=&\frac{1}{\sqrt{2}} \Big( e_{E1B}(t)\left( \alpha sc_A(t)+ \beta sc_B(t) \right)+ \\
{}& - e_{E1C}(t) \left( \alpha sc_A(t)- \beta sc_B(t) \right) \Big)~,\label{eq:CBOC}
\f}
@@ -192,8 +192,8 @@ In case of channel \f$C\f$, it is a pilot (dataless) channel with a secondary co
\f{align}{
\nonumber e_{E1C}(t)&= \sum_{m=-\infty}^{+\infty}C_{E1Cs}\Big[|m|_{25}\Big] \oplus \sum_{l=1}^{4092}C_{E1Cp}\Big[ l \Big] \cdot \\ {}& \; \; \cdot p(t-mT_{c,E1Cs}-lT_{c,E1Cp})~,\label{eq:E1C}
\f}
- with \f$T_{c,E1B}=T_{c,E1Cp}=\frac{1}{1.023}\f$ \f$\mu\f$s and \f$T_{c,E1Cs}=4\f$ ms. The \f$C_{E1B}\f$ and \f$C_{E1Cp}\f$ primary codes are pseudorandom memory code sequences defined at
- Annex C.7 and C.8 of OS SIS ICD. The binary
+ with \f$T_{c,E1B}=T_{c,E1Cp}=\frac{1}{1.023}\f$ \f$\mu\f$s and \f$T_{c,E1Cs}=4\f$ ms. The \f$C_{E1B}\f$ and \f$C_{E1Cp}\f$ primary codes are pseudorandom memory code sequences defined at
+ Annex C.7 and C.8 of OS SIS ICD. The binary
sequence of the secondary code \f$C_{E1Cs}\f$ is 0011100000001010110110010. This band also contains another component, Galileo E1A, intended for the Public Regulated Service (PRS).
It uses a BOC(15,2.5) modulation with cosine-shaped subcarrier \f$f_{s,E1A}=15.345\f$ MHz and \f$T_{c, E1A}=\frac{1}{2.5575}\f$ \f$\mu\f$s.
The PRS spreading codes and the structure of the navigation message have not been made public.
@@ -207,19 +207,19 @@ s_{T}^{\text{(Gal E6)}}(t) = \frac{1}{\sqrt{2}}\left(e_{E6B}(t)-e_{E6C}(t)\right
\nonumber e_{E6B}(t) =& \sum_{m=-\infty}^{+\infty} D_{\text{C/NAV}} \Big[ [l]_{5115}\Big] \oplus C_{E6B}\Big[|l|_{L_{E6B}}\Big] \cdot \\ {}& \cdot p(t - lT_{c,E6}),\\
\nonumber e_{E6C}(t) =& \sum_{m=-\infty}^{+\infty}C_{E6Cs}\Big[|m|_{100}\Big] \oplus \sum_{l=1}^{L_{E6C}}C_{E6Cp}\Big[ l \Big] \cdot \\ {}& \cdot p(t-mT_{c,E6s} -lT_{c,E6p}),
\f}
- where \f$D_{\text{C/NAV}}\f$ is the C/NAV navigation data stream, which is modulated with the encrypted ranging code \f$C_{E6B}\f$ with chip period \f$T_{c,E6}=\frac{1}{5.115}\f$ \f$\mu\f$s, thus
- being a BPSK(5) modulation. Codes \f$C_{E6B}\f$ and primary codes \f$C_{E6Cs}\f$ and their respective lengths, \f$L_{E6B}\f$ and \f$L_{E6C}\f$, have not been published. The secondary codes
- for the pilot component, \f$C_{E6Cs}\f$, are available at the OS SIS ICD.
+ where \f$D_{\text{C/NAV}}\f$ is the C/NAV navigation data stream, which is modulated with the encrypted ranging code \f$C_{E6B}\f$ with chip period \f$T_{c,E6}=\frac{1}{5.115}\f$ \f$\mu\f$s, thus
+ being a BPSK(5) modulation. Codes \f$C_{E6B}\f$ and primary codes \f$C_{E6Cs}\f$ and their respective lengths, \f$L_{E6B}\f$ and \f$L_{E6C}\f$, have not been published. The secondary codes
+ for the pilot component, \f$C_{E6Cs}\f$, are available at the OS SIS ICD.
The receiver reference bandwidth for this signal is \f$40.920\f$ MHz. This band also contains another component, Galileo E6A, intended for PRS.
\li Galileo E5. Centered at \f$f_{\text{Gal E5}}=1191.795\f$ MHz and with a total bandwidth of \f$51.150\f$ MHz, its signal structure deserves some analysis. The AltBOC modulation can be generically expressed as
\f{equation}{\label{AltBOC}
s^{\text{AltBOC}}(t)=x_1(t)v^{*}(t)+x_2(t)v(t)~,
\f}
- where \f$v(t)=\frac{1}{\sqrt{2}}\left( \text{sign}\left( \cos (2 \pi f_s t)\right)+j \text{sign}\left( \sin (2 \pi f_s t)\right)\right)\f$ is the single side-band
- subcarrier, \f$f_s\f$ is the subcarrier frequency, \f$(\cdot)^{*}\f$ stands for the conjugate operation, and \f$x_1(t)\f$ and \f$x_2(t)\f$ are QPSK signals.
- The resulting waveform does not exhibit constant envelope. In case of Galileo, the need for high efficiency of the satellites' onboard High Power Amplifier (HPA) has pushed
- a modification on the signal in order to make it envelope-constant and thus use the HPA at saturation. This can be done by adding some inter-modulation products to the expression
+ where \f$v(t)=\frac{1}{\sqrt{2}}\left( \text{sign}\left( \cos (2 \pi f_s t)\right)+j \text{sign}\left( \sin (2 \pi f_s t)\right)\right)\f$ is the single side-band
+ subcarrier, \f$f_s\f$ is the subcarrier frequency, \f$(\cdot)^{*}\f$ stands for the conjugate operation, and \f$x_1(t)\f$ and \f$x_2(t)\f$ are QPSK signals.
+ The resulting waveform does not exhibit constant envelope. In case of Galileo, the need for high efficiency of the satellites' onboard High Power Amplifier (HPA) has pushed
+ a modification on the signal in order to make it envelope-constant and thus use the HPA at saturation. This can be done by adding some inter-modulation products to the expression
above, coming up with the following definition:
\f{align}{
@@ -260,9 +260,9 @@ receiver. The single subcarrier \f$sc_s(t)\f$ and the product subcarrier \f$sc_p
sc_p(t)=& -\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t - \frac{\pi}{4}\right) \right)+\\ \nonumber {}&+ \frac{1}{2}\text{sign} \Big( \cos \left( 2 \pi f_s t \right) \Big)+\\
{} &-\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t + \frac{\pi}{4}\right) \right)~,
\f}
- with a subcarrier frequency of \f$f_s=15.345\f$ MHz, thus defining an AltBOC(15,10) modulation. The QPSK(10) signal \f$e_{E5a}(t)\f$ defined above is shifted
+ with a subcarrier frequency of \f$f_s=15.345\f$ MHz, thus defining an AltBOC(15,10) modulation. The QPSK(10) signal \f$e_{E5a}(t)\f$ defined above is shifted
to \f$f_{\text{Gal E5a}}\doteq f_{\text{Gal E5}}-f_s=1176.450\f$ MHz, while \f$e_{E5b}(t)\f$ is shifted to \f$f_{\text{Gal E5b}}\doteq f_{\text{Gal E5}}+f_s=1207.140\f$ MHz.
- Thus, we can bandpass filter around \f$f_{\text{Gal E5a}}\f$ and get a good approximation of a QPSK(10) signal, with very low energy components of \f$e_{E5b}(t)\f$, \f$ \bar{e}_{E5a}(t)\f$,
+ Thus, we can bandpass filter around \f$f_{\text{Gal E5a}}\f$ and get a good approximation of a QPSK(10) signal, with very low energy components of \f$e_{E5b}(t)\f$, \f$ \bar{e}_{E5a}(t)\f$,
and \f$ \bar{e}_{E5b}(t)\f$:
\f{equation}{
s_{T}^{\text{(Gal E5a)}}(t) \simeq e_{E5aI}(t)+je_{E5aQ}(t).
@@ -273,9 +273,9 @@ The same applies to \f$e_{E5b}(t)\f$, allowing an independent reception of two Q
This text is an except of the following paper:
-\li C. Fernández-Prades, L. Lo Presti, E. Falleti, Satellite Radiolocalization From GPS to GNSS and Beyond: Novel Technologies and Applications for Civil Mass-Market.
+\li C. Fernández-Prades, L. Lo Presti, E. Falleti, Satellite Radiolocalization From GPS to GNSS and Beyond: Novel Technologies and Applications for Civil Mass-Market.
Proceedings of the IEEE. Vol 99, No. 11, pp. 1882-1904. November, 2011. DOI: 10.1109/JPROC.2011.2158032
-
-
-*/
\ No newline at end of file
+
+
+*/
diff --git a/docs/manpage/front-end-cal-manpage b/docs/manpage/front-end-cal-manpage
index 13d639c57..940a4b0ee 100644
--- a/docs/manpage/front-end-cal-manpage
+++ b/docs/manpage/front-end-cal-manpage
@@ -17,9 +17,9 @@ The crystal oscillator that ships with the RTL2832U family devices exhibits limi
\fBfront\-end\-cal\fR takes the following options:
.TP
\fB\-config_file=\fR\fI\fR Set the configuration file.
-.TP
+.TP
\fB\-signal_source=\fR\fI\fR If defined, path to the file containing the signal samples (overrides the data file specified in the configuration file).
-.TP
+.TP
\fB\-log_dir=\fR\fI\fR If defined, overrides the default directory where logs are saved.
.TP
\fB\-version\fR Print program version and exit.
@@ -32,10 +32,10 @@ Example of configuration file available at: ${prefix}/share/gnss\-sdr/conf/front
\.TP
[1] C. Fernandez\-Prades, J. Arribas, P. Closas, \fITurning a Television into a GNSS Receiver\fR, in Proceedings of ION GNSS+, 15\-16 September 2013, Nashville, Tennessee (USA). A draft copy is freely available at http://www.cttc.es/publication/turning\-a\-television\-into\-a\-gnss\-receiver/
\.TP
-Check http://gnss\\-sdr.org for more information.
+Check https://gnss\-sdr.org for more information.
.SH BUGS
No known bugs.
.SH AUTHOR
Javier Arribas (javier.arribas@cttc.es)
\.TP
-This software has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world.
\ No newline at end of file
+This software has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world.
diff --git a/docs/manpage/gnss-sdr-manpage b/docs/manpage/gnss-sdr-manpage
index 997df725d..5ca98ccb7 100644
--- a/docs/manpage/gnss-sdr-manpage
+++ b/docs/manpage/gnss-sdr-manpage
@@ -6,7 +6,7 @@
.SH SYNOPSIS
\fBgnss\-sdr \-c=\fR\fI\fR [OPTION]...
.SH DESCRIPTION
-\fBgnss\-sdr\fR is a Global Navigation Satellite Systems Software Defined Receiver written in C++. It implements all the signal processing chain, taking as input raw samples coming from the output of an Analog\-to\-Digital Converter, and processing them up to the computation of the Position\-Velocity\-Time solution, including the generation of code and phase measurements.
+\fBgnss\-sdr\fR is a Global Navigation Satellite Systems Software Defined Receiver written in C++. It implements all the signal processing chain, taking as input raw samples coming from the output of an Analog\-to\-Digital Converter, and processing them up to the computation of the Position\-Velocity\-Time solution, including the generation of code and phase measurements.
\.TP
\fBgnss\-sdr\fR is able to work with raw data files or, if there is computational power enough, in real time with suitable radio frequency front\-ends. The whole receiver is defined in a single configuration file, and therefore users can define theirs.
\.TP
@@ -26,10 +26,10 @@ gnss\-sdr \-\-c /home/user/rx.conf
.TP
\fB\-c=\fR\fI\fR or \fB\-config_file=\fR\fI\fR
Set the configuration file. This flag is mandatory.
-.TP
-\fB\-s=\fR\fI\fR or \fB\-signal_source=\fR\fI\fR
+.TP
+\fB\-s=\fR\fI\fR or \fB\-signal_source=\fR\fI\fR
If defined, path to the file containing the signal samples (overrides the data file specified in the configuration file).
-.TP
+.TP
\fB\-log_dir=\fR\fI\fR
If defined, overrides the default directory where logs are saved.
.TP
@@ -43,13 +43,13 @@ If defined, sets the frequency step in the search grid, in Hz (overrides the con
Number of correlators outputs (one per integration time) used for CN0 estimation. It defaults to 20 outputs.
.TP
\fB\-cn0_min=\fR\fI\fR
-Minimum valid CN0 (in dB-Hz). It defaults to 25 dB-Hz.
+Minimum valid CN0 (in dB-Hz). It defaults to 25 dB-Hz. If set, it overrides the configuration file.
.TP
\fB\-max_lock_fail=\fR\fI\fR
-Number of lock failures before dropping satellite. It defaults to 50 failures.
+Maximum number of lock failures before dropping a satellite. It defaults to 50 failures. If set, it overrides the configuration file.
.TP
\fB\-carrier_lock_th=\fR\fI\fR
-Carrier lock error threshold (in rad). It defaults to 0.85 rad (48.7 degrees).
+Carrier lock error threshold (in rad). It defaults to 0.85 rad (48.7 degrees). If set, it overrides the configuration file.
.TP
\fB\-dll_bw_hz=\fR\fI\fR
If defined, bandwidth of the DLL low pass filter, in Hz (overrides the configuration file).
@@ -70,10 +70,10 @@ Print all the available commandline flags and exit.
\.TP
Examples of configuration files available at: ${prefix}/share/gnss\-sdr/conf, where ${prefix} uses to be /usr or /usr/local.
\.TP
-Check http://gnss\-sdr.org for more information.
+Check https://gnss\-sdr.org for more information.
.SH BUGS
Please report bugs at https://github.com/gnss-sdr/gnss-sdr/issues
.SH AUTHOR
Carles Fernandez\-Prades (carles.fernandez@cttc.es)
\.TP
-This software package has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world.
\ No newline at end of file
+This software package has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fbce5e499..84e918b73 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(algorithms)
diff --git a/src/algorithms/CMakeLists.txt b/src/algorithms/CMakeLists.txt
index d6f0521dc..2b10446e8 100644
--- a/src/algorithms/CMakeLists.txt
+++ b/src/algorithms/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(acquisition)
diff --git a/src/algorithms/PVT/CMakeLists.txt b/src/algorithms/PVT/CMakeLists.txt
index 763852ca2..96259341c 100644
--- a/src/algorithms/PVT/CMakeLists.txt
+++ b/src/algorithms/PVT/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(adapters)
diff --git a/src/algorithms/PVT/adapters/CMakeLists.txt b/src/algorithms/PVT/adapters/CMakeLists.txt
index 71568cf88..73c996521 100644
--- a/src/algorithms/PVT/adapters/CMakeLists.txt
+++ b/src/algorithms/PVT/adapters/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
set(PVT_ADAPTER_SOURCES
diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc
index 6a0b4299e..39a8ebd3f 100644
--- a/src/algorithms/PVT/adapters/rtklib_pvt.cc
+++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.h b/src/algorithms/PVT/adapters/rtklib_pvt.h
index 1ae5808f5..936fd1632 100644
--- a/src/algorithms/PVT/adapters/rtklib_pvt.h
+++ b/src/algorithms/PVT/adapters/rtklib_pvt.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
index ad8c08e7c..34013b2ad 100644
--- a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
set(PVT_GR_BLOCKS_SOURCES
diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc
index 91267e33d..8bcc49a88 100644
--- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -261,6 +261,12 @@ rtklib_pvt_cc::rtklib_pvt_cc(unsigned int nchannels, bool dump, std::string dump
d_kml_dump = std::make_shared();
d_kml_dump->set_headers(kml_dump_filename);
+ //initialize gpx_printer
+ std::string gpx_dump_filename;
+ gpx_dump_filename = d_dump_filename;
+ d_gpx_dump = std::make_shared();
+ d_gpx_dump->set_headers(gpx_dump_filename);
+
//initialize geojson_printer
std::string geojson_dump_filename;
geojson_dump_filename = d_dump_filename;
@@ -678,6 +684,7 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
first_fix = false;
}
d_kml_dump->print_position(d_ls_pvt, false);
+ d_gpx_dump->print_position(d_ls_pvt, false);
d_geojson_printer->print_position(d_ls_pvt, false);
d_nmea_printer->Print_Nmea_Line(d_ls_pvt, false);
diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h
index f4e4323fd..b208f4c0c 100644
--- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h
+++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -34,6 +34,7 @@
#include "nmea_printer.h"
#include "kml_printer.h"
+#include "gpx_printer.h"
#include "geojson_printer.h"
#include "rinex_printer.h"
#include "rtcm_printer.h"
@@ -120,6 +121,7 @@ private:
std::shared_ptr rp;
std::shared_ptr d_kml_dump;
+ std::shared_ptr d_gpx_dump;
std::shared_ptr d_nmea_printer;
std::shared_ptr d_geojson_printer;
std::shared_ptr d_rtcm_printer;
diff --git a/src/algorithms/PVT/libs/CMakeLists.txt b/src/algorithms/PVT/libs/CMakeLists.txt
index 96aace272..82d733a19 100644
--- a/src/algorithms/PVT/libs/CMakeLists.txt
+++ b/src/algorithms/PVT/libs/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_definitions( -DGNSS_SDR_VERSION="${VERSION}" )
@@ -23,6 +23,7 @@ set(PVT_LIB_SOURCES
ls_pvt.cc
hybrid_ls_pvt.cc
kml_printer.cc
+ gpx_printer.cc
rinex_printer.cc
nmea_printer.cc
rtcm_printer.cc
diff --git a/src/algorithms/PVT/libs/geojson_printer.cc b/src/algorithms/PVT/libs/geojson_printer.cc
index 9a5973858..5dd3ecdba 100644
--- a/src/algorithms/PVT/libs/geojson_printer.cc
+++ b/src/algorithms/PVT/libs/geojson_printer.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/geojson_printer.h b/src/algorithms/PVT/libs/geojson_printer.h
index 8c2f08d41..9963e64d2 100644
--- a/src/algorithms/PVT/libs/geojson_printer.h
+++ b/src/algorithms/PVT/libs/geojson_printer.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/gpx_printer.cc b/src/algorithms/PVT/libs/gpx_printer.cc
new file mode 100644
index 000000000..3a8661e6d
--- /dev/null
+++ b/src/algorithms/PVT/libs/gpx_printer.cc
@@ -0,0 +1,187 @@
+/*!
+ * \file gpx_printer.cc
+ * \brief Interface of a class that prints PVT information to a gpx file
+ * \author Álvaro Cebrián Juan, 2018. acebrianjuan(at)gmail.com
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+
+#include "gpx_printer.h"
+#include
+#include
+#include
+
+using google::LogMessage;
+
+bool Gpx_Printer::set_headers(std::string filename, bool time_tag_name)
+{
+ boost::posix_time::ptime pt = boost::posix_time::second_clock::local_time();
+ tm timeinfo = boost::posix_time::to_tm(pt);
+
+ if (time_tag_name)
+ {
+ std::stringstream strm0;
+ const int year = timeinfo.tm_year - 100;
+ strm0 << year;
+ const int month = timeinfo.tm_mon + 1;
+ if (month < 10)
+ {
+ strm0 << "0";
+ }
+ strm0 << month;
+ const int day = timeinfo.tm_mday;
+ if (day < 10)
+ {
+ strm0 << "0";
+ }
+ strm0 << day << "_";
+ const int hour = timeinfo.tm_hour;
+ if (hour < 10)
+ {
+ strm0 << "0";
+ }
+ strm0 << hour;
+ const int min = timeinfo.tm_min;
+ if (min < 10)
+ {
+ strm0 << "0";
+ }
+ strm0 << min;
+ const int sec = timeinfo.tm_sec;
+ if (sec < 10)
+ {
+ strm0 << "0";
+ }
+ strm0 << sec;
+
+ gpx_filename = filename + "_" + strm0.str() + ".gpx";
+ }
+ else
+ {
+ gpx_filename = filename + ".gpx";
+ }
+ gpx_file.open(gpx_filename.c_str());
+
+ if (gpx_file.is_open())
+ {
+ DLOG(INFO) << "GPX printer writing on " << filename.c_str();
+ // Set iostream numeric format and precision
+ gpx_file.setf(gpx_file.fixed, gpx_file.floatfield);
+ gpx_file << std::setprecision(14);
+ gpx_file << "" << std::endl
+ << "" << std::endl
+ << "" << std::endl
+ << indent << "Position fixes computed by GNSS-SDR v" << GNSS_SDR_VERSION << "" << std::endl
+ << indent << "GNSS-SDR position log generated at " << pt << " (local time)" << std::endl
+ << indent << "" << std::endl;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
+bool Gpx_Printer::print_position(const std::shared_ptr& position, bool print_average_values)
+{
+ double latitude;
+ double longitude;
+ double height;
+
+ positions_printed = true;
+ std::shared_ptr position_ = position;
+
+ double hdop = position_->get_hdop();
+ double vdop = position_->get_vdop();
+ double pdop = position_->get_pdop();
+ std::string utc_time = to_iso_extended_string(position_->get_position_UTC_time());
+ utc_time.resize(23); // time up to ms
+ utc_time.append("Z"); // UTC time zone
+
+ if (print_average_values == false)
+ {
+ latitude = position_->get_latitude();
+ longitude = position_->get_longitude();
+ height = position_->get_height();
+ }
+ else
+ {
+ latitude = position_->get_avg_latitude();
+ longitude = position_->get_avg_longitude();
+ height = position_->get_avg_height();
+ }
+
+ if (gpx_file.is_open())
+ {
+ gpx_file << indent << indent << "" << height << ""
+ << ""
+ << "" << hdop << "" << vdop << "" << pdop << "" << std::endl;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
+bool Gpx_Printer::close_file()
+{
+ if (gpx_file.is_open())
+ {
+ gpx_file << indent << "" << std::endl
+ << "" << std::endl
+ << "";
+ gpx_file.close();
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
+Gpx_Printer::Gpx_Printer()
+{
+ positions_printed = false;
+ indent = " ";
+}
+
+
+Gpx_Printer::~Gpx_Printer()
+{
+ close_file();
+ if (!positions_printed)
+ {
+ if (remove(gpx_filename.c_str()) != 0) LOG(INFO) << "Error deleting temporary GPX file";
+ }
+}
diff --git a/src/algorithms/PVT/libs/gpx_printer.h b/src/algorithms/PVT/libs/gpx_printer.h
new file mode 100644
index 000000000..f158b6fb9
--- /dev/null
+++ b/src/algorithms/PVT/libs/gpx_printer.h
@@ -0,0 +1,64 @@
+/*!
+ * \file gpx_printer.h
+ * \brief Interface of a class that prints PVT information to a gpx file
+ * \author Álvaro Cebrián Juan, 2018. acebrianjuan(at)gmail.com
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+
+#ifndef GNSS_SDR_GPX_PRINTER_H_
+#define GNSS_SDR_GPX_PRINTER_H_
+
+#include "pvt_solution.h"
+#include "rtklib_solver.h"
+#include
+#include
+#include
+
+
+/*!
+ * \brief Prints PVT information to GPX format file
+ *
+ * See http://www.topografix.com/gpx.asp
+ */
+class Gpx_Printer
+{
+private:
+ std::ofstream gpx_file;
+ bool positions_printed;
+ std::string gpx_filename;
+ std::string indent;
+
+public:
+ Gpx_Printer();
+ ~Gpx_Printer();
+ bool set_headers(std::string filename, bool time_tag_name = true);
+ bool print_position(const std::shared_ptr& position, bool print_average_values);
+ bool close_file();
+};
+
+#endif
diff --git a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
index 3197c1882..25898e195 100644
--- a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
+++ b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -350,9 +350,6 @@ bool hybrid_ls_pvt::get_PVT(std::map gnss_observables_map, do
<< " [deg], Height= " << this->get_height() << " [m]"
<< " RX time offset= " << this->get_time_offset_s() << " [s]";
- // ###### Compute DOPs ########
- hybrid_ls_pvt::compute_DOP();
-
// ######## LOG FILE #########
if (d_flag_dump_enabled == true)
{
diff --git a/src/algorithms/PVT/libs/hybrid_ls_pvt.h b/src/algorithms/PVT/libs/hybrid_ls_pvt.h
index a4cb780a0..f8a6fc32c 100644
--- a/src/algorithms/PVT/libs/hybrid_ls_pvt.h
+++ b/src/algorithms/PVT/libs/hybrid_ls_pvt.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/kml_printer.cc b/src/algorithms/PVT/libs/kml_printer.cc
index b59ddc11c..1233df036 100644
--- a/src/algorithms/PVT/libs/kml_printer.cc
+++ b/src/algorithms/PVT/libs/kml_printer.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/kml_printer.h b/src/algorithms/PVT/libs/kml_printer.h
index 01907e121..435943a6c 100644
--- a/src/algorithms/PVT/libs/kml_printer.h
+++ b/src/algorithms/PVT/libs/kml_printer.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/ls_pvt.cc b/src/algorithms/PVT/libs/ls_pvt.cc
index 27be29287..8525d952f 100644
--- a/src/algorithms/PVT/libs/ls_pvt.cc
+++ b/src/algorithms/PVT/libs/ls_pvt.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -281,7 +281,7 @@ arma::vec Ls_Pvt::leastSquarePos(const arma::mat& satpos, const arma::vec& obs,
}
//-- compute the Dilution Of Precision values
- this->set_Q(arma::inv(arma::htrans(A) * A));
+ //this->set_Q(arma::inv(arma::htrans(A) * A));
// check the consistency of the PVT solution
if (((fabs(pos(3)) * 1000.0) / GPS_C_m_s) > GPS_STARTOFFSET_ms * 2)
diff --git a/src/algorithms/PVT/libs/ls_pvt.h b/src/algorithms/PVT/libs/ls_pvt.h
index 692d6e026..78ad9deef 100644
--- a/src/algorithms/PVT/libs/ls_pvt.h
+++ b/src/algorithms/PVT/libs/ls_pvt.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/nmea_printer.cc b/src/algorithms/PVT/libs/nmea_printer.cc
index 305a89a07..56aad23af 100644
--- a/src/algorithms/PVT/libs/nmea_printer.cc
+++ b/src/algorithms/PVT/libs/nmea_printer.cc
@@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -28,7 +28,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -125,7 +125,7 @@ void Nmea_Printer::close_serial()
}
-bool Nmea_Printer::Print_Nmea_Line(const std::shared_ptr& pvt_data, bool print_average_values)
+bool Nmea_Printer::Print_Nmea_Line(const std::shared_ptr& pvt_data, bool print_average_values)
{
std::string GPRMC;
std::string GPGGA;
@@ -432,9 +432,9 @@ std::string Nmea_Printer::get_GPGSA()
// GSA-GNSS DOP and Active Satellites
bool valid_fix = d_PVT_data->is_valid_position();
int n_sats_used = d_PVT_data->get_num_valid_observations();
- double pdop = d_PVT_data->get_PDOP();
- double hdop = d_PVT_data->get_HDOP();
- double vdop = d_PVT_data->get_VDOP();
+ double pdop = d_PVT_data->get_pdop();
+ double hdop = d_PVT_data->get_hdop();
+ double vdop = d_PVT_data->get_vdop();
std::stringstream sentence_str;
std::string sentence_header;
@@ -603,7 +603,7 @@ std::string Nmea_Printer::get_GPGGA()
//boost::posix_time::ptime d_position_UTC_time=boost::posix_time::microsec_clock::universal_time();
bool valid_fix = d_PVT_data->is_valid_position();
int n_channels = d_PVT_data->get_num_valid_observations(); //d_nchannels
- double hdop = d_PVT_data->get_HDOP();
+ double hdop = d_PVT_data->get_hdop();
double MSL_altitude;
if (d_PVT_data->is_averaging() == true)
diff --git a/src/algorithms/PVT/libs/nmea_printer.h b/src/algorithms/PVT/libs/nmea_printer.h
index c1b671d1a..318745e1c 100644
--- a/src/algorithms/PVT/libs/nmea_printer.h
+++ b/src/algorithms/PVT/libs/nmea_printer.h
@@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -28,7 +28,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -36,7 +36,7 @@
#ifndef GNSS_SDR_NMEA_PRINTER_H_
#define GNSS_SDR_NMEA_PRINTER_H_
-#include "pvt_solution.h"
+#include "rtklib_solver.h"
#include
#include
@@ -58,7 +58,7 @@ public:
/*!
* \brief Print NMEA PVT and satellite info to the initialized device
*/
- bool Print_Nmea_Line(const std::shared_ptr& position, bool print_average_values);
+ bool Print_Nmea_Line(const std::shared_ptr& position, bool print_average_values);
/*!
* \brief Default destructor.
@@ -70,7 +70,7 @@ private:
std::ofstream nmea_file_descriptor; // Output file stream for NMEA log file
std::string nmea_devname;
int nmea_dev_descriptor; // NMEA serial device descriptor (i.e. COM port)
- std::shared_ptr d_PVT_data;
+ std::shared_ptr d_PVT_data;
int init_serial(std::string serial_device); //serial port control
void close_serial();
std::string get_GPGGA(); // fix data
diff --git a/src/algorithms/PVT/libs/pvt_solution.cc b/src/algorithms/PVT/libs/pvt_solution.cc
index e38da70f7..d0f31cc39 100644
--- a/src/algorithms/PVT/libs/pvt_solution.cc
+++ b/src/algorithms/PVT/libs/pvt_solution.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -46,11 +46,6 @@ Pvt_Solution::Pvt_Solution()
d_avg_latitude_d = 0.0;
d_avg_longitude_d = 0.0;
d_avg_height_m = 0.0;
- d_GDOP = 0.0;
- d_PDOP = 0.0;
- d_HDOP = 0.0;
- d_VDOP = 0.0;
- d_TDOP = 0.0;
d_flag_averaging = false;
b_valid_position = false;
d_averaging_depth = 0;
@@ -445,50 +440,6 @@ int Pvt_Solution::topocent(double *Az, double *El, double *D, const arma::vec &x
}
-int Pvt_Solution::compute_DOP()
-{
- // ###### Compute DOPs ########
-
- // 1- Rotation matrix from ECEF coordinates to ENU coordinates
- // ref: http://www.navipedia.net/index.php/Transformations_between_ECEF_and_ENU_coordinates
- arma::mat F = arma::zeros(3, 3);
- F(0, 0) = -sin(GPS_TWO_PI * (d_longitude_d / 360.0));
- F(0, 1) = -sin(GPS_TWO_PI * (d_latitude_d / 360.0)) * cos(GPS_TWO_PI * (d_longitude_d / 360.0));
- F(0, 2) = cos(GPS_TWO_PI * (d_latitude_d / 360.0)) * cos(GPS_TWO_PI * (d_longitude_d / 360.0));
-
- F(1, 0) = cos((GPS_TWO_PI * d_longitude_d) / 360.0);
- F(1, 1) = -sin((GPS_TWO_PI * d_latitude_d) / 360.0) * sin((GPS_TWO_PI * d_longitude_d) / 360.0);
- F(1, 2) = cos((GPS_TWO_PI * d_latitude_d / 360.0)) * sin((GPS_TWO_PI * d_longitude_d) / 360.0);
-
- F(2, 0) = 0;
- F(2, 1) = cos((GPS_TWO_PI * d_latitude_d) / 360.0);
- F(2, 2) = sin((GPS_TWO_PI * d_latitude_d / 360.0));
-
- // 2- Apply the rotation to the latest covariance matrix (available in ECEF from LS)
- arma::mat Q_ECEF = d_Q.submat(0, 0, 2, 2);
- arma::mat DOP_ENU = arma::zeros(3, 3);
-
- try
- {
- DOP_ENU = arma::htrans(F) * Q_ECEF * F;
- d_GDOP = sqrt(arma::trace(DOP_ENU)); // Geometric DOP
- d_PDOP = sqrt(DOP_ENU(0, 0) + DOP_ENU(1, 1) + DOP_ENU(2, 2)); // PDOP
- d_HDOP = sqrt(DOP_ENU(0, 0) + DOP_ENU(1, 1)); // HDOP
- d_VDOP = sqrt(DOP_ENU(2, 2)); // VDOP
- d_TDOP = sqrt(d_Q(3, 3)); // TDOP
- }
- catch (const std::exception &ex)
- {
- d_GDOP = -1; // Geometric DOP
- d_PDOP = -1; // PDOP
- d_HDOP = -1; // HDOP
- d_VDOP = -1; // VDOP
- d_TDOP = -1; // TDOP
- }
- return 0;
-}
-
-
void Pvt_Solution::set_averaging_depth(int depth)
{
d_averaging_depth = depth;
@@ -824,39 +775,3 @@ double Pvt_Solution::get_visible_satellites_CN0_dB(size_t index) const
return d_visible_satellites_CN0_dB[index];
}
}
-
-
-void Pvt_Solution::set_Q(const arma::mat &Q)
-{
- d_Q = Q;
-}
-
-
-double Pvt_Solution::get_GDOP() const
-{
- return d_GDOP;
-}
-
-
-double Pvt_Solution::get_PDOP() const
-{
- return d_PDOP;
-}
-
-
-double Pvt_Solution::get_HDOP() const
-{
- return d_HDOP;
-}
-
-
-double Pvt_Solution::get_VDOP() const
-{
- return d_VDOP;
-}
-
-
-double Pvt_Solution::get_TDOP() const
-{
- return d_TDOP;
-}
diff --git a/src/algorithms/PVT/libs/pvt_solution.h b/src/algorithms/PVT/libs/pvt_solution.h
index e036b1547..958bf4668 100644
--- a/src/algorithms/PVT/libs/pvt_solution.h
+++ b/src/algorithms/PVT/libs/pvt_solution.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -70,13 +70,6 @@ private:
boost::posix_time::ptime d_position_UTC_time;
int d_valid_observations;
- arma::mat d_Q;
- double d_GDOP;
- double d_PDOP;
- double d_HDOP;
- double d_VDOP;
- double d_TDOP;
-
int d_visible_satellites_IDs[PVT_MAX_CHANNELS] = {}; // Array with the IDs of the valid satellites
double d_visible_satellites_El[PVT_MAX_CHANNELS] = {}; // Array with the LOS Elevation of the valid satellites
double d_visible_satellites_Az[PVT_MAX_CHANNELS] = {}; // Array with the LOS Azimuth of the valid satellites
@@ -130,16 +123,6 @@ public:
bool is_averaging() const;
void set_averaging_flag(bool flag);
- // DOP estimations
- void set_Q(const arma::mat &Q);
- int compute_DOP(); //!< Compute Dilution Of Precision parameters
-
- double get_GDOP() const;
- double get_PDOP() const;
- double get_HDOP() const;
- double get_VDOP() const;
- double get_TDOP() const;
-
arma::vec rotateSatellite(double traveltime, const arma::vec &X_sat);
/*!
diff --git a/src/algorithms/PVT/libs/rinex_printer.cc b/src/algorithms/PVT/libs/rinex_printer.cc
index fa6b1296c..859239096 100644
--- a/src/algorithms/PVT/libs/rinex_printer.cc
+++ b/src/algorithms/PVT/libs/rinex_printer.cc
@@ -5,7 +5,7 @@
* \author Carles Fernandez Prades, 2011. cfernandez(at)cttc.es
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -415,7 +415,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Glonass_Gnav_Utc_M
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -524,7 +524,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_Iono& gps_iono
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -648,7 +648,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_CNAV_Iono& gps
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -774,7 +774,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Galileo_Iono& gali
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -881,7 +881,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Galileo_Iono& iono
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -987,7 +987,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_CNAV_Iono& ion
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -1116,7 +1116,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_Iono& iono, co
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -1280,7 +1280,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_Iono& gps_iono
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -1463,7 +1463,7 @@ void Rinex_Printer::rinex_sbs_header(std::fstream& out)
// -------- Line COMMENT 2
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -3277,7 +3277,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Glonass_Gnav_Ephem
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -3599,7 +3599,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& gps
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -3952,7 +3952,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -4270,7 +4270,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris&
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -4590,7 +4590,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& eph
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -4844,7 +4844,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -5056,7 +5056,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& eph
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -5282,7 +5282,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris&
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
@@ -5546,7 +5546,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& gps
// -------- Line COMMENT
line.clear();
- line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
+ line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60);
line += Rinex_Printer::leftJustify("COMMENT", 20);
Rinex_Printer::lengthCheck(line);
out << line << std::endl;
diff --git a/src/algorithms/PVT/libs/rinex_printer.h b/src/algorithms/PVT/libs/rinex_printer.h
index 794c98a3f..2cd961956 100644
--- a/src/algorithms/PVT/libs/rinex_printer.h
+++ b/src/algorithms/PVT/libs/rinex_printer.h
@@ -25,7 +25,7 @@
* \author Carles Fernandez Prades, 2011. cfernandez(at)cttc.es
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -43,7 +43,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/rtcm_printer.cc b/src/algorithms/PVT/libs/rtcm_printer.cc
index 5dd52ae38..cd400ed4b 100644
--- a/src/algorithms/PVT/libs/rtcm_printer.cc
+++ b/src/algorithms/PVT/libs/rtcm_printer.cc
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/rtcm_printer.h b/src/algorithms/PVT/libs/rtcm_printer.h
index 95809a73b..c0a926895 100644
--- a/src/algorithms/PVT/libs/rtcm_printer.h
+++ b/src/algorithms/PVT/libs/rtcm_printer.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/PVT/libs/rtklib_solver.cc b/src/algorithms/PVT/libs/rtklib_solver.cc
index 4dcee81a0..06332cc30 100644
--- a/src/algorithms/PVT/libs/rtklib_solver.cc
+++ b/src/algorithms/PVT/libs/rtklib_solver.cc
@@ -70,7 +70,7 @@ rtklib_solver::rtklib_solver(int nchannels, std::string dump_filename, bool flag
count_valid_position = 0;
this->set_averaging_flag(false);
rtk_ = rtk;
-
+ for (unsigned int i = 0; i < 4; i++) dop_[i] = 0.0;
pvt_sol = {{0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, '0', '0', '0', 0, 0, 0};
// ############# ENABLE DATA FILE LOG #################
@@ -109,6 +109,30 @@ rtklib_solver::~rtklib_solver()
}
+double rtklib_solver::get_gdop() const
+{
+ return dop_[0];
+}
+
+
+double rtklib_solver::get_pdop() const
+{
+ return dop_[1];
+}
+
+
+double rtklib_solver::get_hdop() const
+{
+ return dop_[2];
+}
+
+
+double rtklib_solver::get_vdop() const
+{
+ return dop_[3];
+}
+
+
bool rtklib_solver::get_PVT(const std::map& gnss_observables_map, double Rx_time, bool flag_averaging)
{
std::map::const_iterator gnss_observables_iter;
@@ -435,6 +459,26 @@ bool rtklib_solver::get_PVT(const std::map& gnss_observables_
{
this->set_num_valid_observations(rtk_.sol.ns); //record the number of valid satellites used by the PVT solver
pvt_sol = rtk_.sol;
+ // DOP computation
+ unsigned int used_sats = 0;
+ for (unsigned int i = 0; i < MAXSAT; i++)
+ {
+ if (rtk_.ssat[i].vsat[0] == 1) used_sats++;
+ }
+
+ double azel[used_sats * 2];
+ unsigned int index_aux = 0;
+ for (unsigned int i = 0; i < MAXSAT; i++)
+ {
+ if (rtk_.ssat[i].vsat[0] == 1)
+ {
+ azel[2 * index_aux] = rtk_.ssat[i].azel[0];
+ azel[2 * index_aux + 1] = rtk_.ssat[i].azel[1];
+ index_aux++;
+ }
+ }
+ if (index_aux > 0) dops(index_aux, azel, 0.0, dop_);
+
this->set_valid_position(true);
arma::vec rx_position_and_time(4);
rx_position_and_time(0) = pvt_sol.rr[0];
diff --git a/src/algorithms/PVT/libs/rtklib_solver.h b/src/algorithms/PVT/libs/rtklib_solver.h
index 3af8d2a76..ac180f617 100644
--- a/src/algorithms/PVT/libs/rtklib_solver.h
+++ b/src/algorithms/PVT/libs/rtklib_solver.h
@@ -79,12 +79,18 @@ private:
sol_t pvt_sol;
bool d_flag_dump_enabled;
int d_nchannels; // Number of available channels for positioning
+ double dop_[4];
+
public:
rtklib_solver(int nchannels, std::string dump_filename, bool flag_dump_to_file, rtk_t& rtk);
~rtklib_solver();
bool get_PVT(const std::map& gnss_observables_map, double Rx_time, bool flag_averaging);
-
+ double get_hdop() const;
+ double get_vdop() const;
+ double get_pdop() const;
+ double get_gdop() const;
+
std::map galileo_ephemeris_map; //!< Map storing new Galileo_Ephemeris
std::map gps_ephemeris_map; //!< Map storing new GPS_Ephemeris
std::map gps_cnav_ephemeris_map; //!< Map storing new GPS_CNAV_Ephemeris
diff --git a/src/algorithms/acquisition/CMakeLists.txt b/src/algorithms/acquisition/CMakeLists.txt
index 579bf4ba0..0dc31ec9b 100644
--- a/src/algorithms/acquisition/CMakeLists.txt
+++ b/src/algorithms/acquisition/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(adapters)
diff --git a/src/algorithms/acquisition/adapters/CMakeLists.txt b/src/algorithms/acquisition/adapters/CMakeLists.txt
index ff708f433..831601796 100644
--- a/src/algorithms/acquisition/adapters/CMakeLists.txt
+++ b/src/algorithms/acquisition/adapters/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
@@ -39,7 +39,7 @@ set(ACQ_ADAPTER_SOURCES
if(ENABLE_FPGA)
set(ACQ_ADAPTER_SOURCES ${ACQ_ADAPTER_SOURCES} gps_l1_ca_pcps_acquisition_fpga.cc)
endif(ENABLE_FPGA)
-
+
if(OPENCL_FOUND)
set(ACQ_ADAPTER_SOURCES ${ACQ_ADAPTER_SOURCES} gps_l1_ca_pcps_opencl_acquisition.cc)
endif(OPENCL_FOUND)
@@ -64,6 +64,5 @@ include_directories(
file(GLOB ACQ_ADAPTER_HEADERS "*.h")
list(SORT ACQ_ADAPTER_HEADERS)
add_library(acq_adapters ${ACQ_ADAPTER_SOURCES} ${ACQ_ADAPTER_HEADERS})
-source_group(Headers FILES ${ACQ_ADAPTER_HEADERS})
+source_group(Headers FILES ${ACQ_ADAPTER_HEADERS})
target_link_libraries(acq_adapters gnss_sp_libs gnss_sdr_flags acq_gr_blocks ${Boost_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES} ${GNURADIO_BLOCKS_LIBRARIES})
-
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc
index dcbc716ab..58848a9a7 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h
index e49f3b2a7..8cc3f3383 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc
index 7000a4066..c58b5b6f2 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h
index 8815ef4bd..9020cf15f 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc
index a567b3bea..12fe08849 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h
index ec0b6bd5d..01e63c256 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc
index 7eede9fa8..519dccc86 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h
index 98116a851..8c9f0b43a 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc
index 677a04fc9..757ed5bfc 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h
index c4ebebd17..675d79770 100644
--- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc
index 5b11f8e76..9f23a55f3 100644
--- a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc
@@ -12,7 +12,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -30,7 +30,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h
index 333fa3d0f..002744426 100644
--- a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h
+++ b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h
@@ -12,7 +12,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -30,7 +30,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc
index e903ec877..1367c0272 100644
--- a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h
index 8423ebf7c..807a307b2 100644
--- a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc
index 2ea0514d9..99d13e2db 100644
--- a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h
index 64fb5cfd3..8250f9d28 100644
--- a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc
index 821d61acb..ff61a0c2f 100644
--- a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h
index f86acdaff..bb4e0090f 100644
--- a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
index 5250619c4..01f3f7f62 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
@@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -28,7 +28,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h
index 590b228e6..edf79e42c 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h
@@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -28,7 +28,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc
index 99e04f021..05f987b0f 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc
@@ -9,7 +9,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -27,7 +27,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h
index 43734e918..e0bfcf14e 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc
index c1a037c11..3cbc81bfa 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc
@@ -1,14 +1,17 @@
/*!
* \file gps_l1_ca_pcps_acquisition_fpga.cc
- * \brief Adapts a PCPS acquisition block to an FPGA Acquisition Interface for
- * GPS L1 C/A signals. This file is based on the file gps_l1_ca_pcps_acquisition.cc
+ * \brief Adapts a PCPS acquisition block to an FPGA AcquisitionInterface
+ * for GPS L1 C/A signals
* \authors
- *
Marc Majoral, 2017. mmajoral(at)cttc.cat
+ *
Marc Majoral, 2018. mmajoral(at)cttc.es
+ *
Javier Arribas, 2011. jarribas(at)cttc.es
+ *
Luis Esteve, 2012. luis(at)epsilon-formacion.com
+ *
Marc Molina, 2013. marc.molina.pena(at)gmail.com
*
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,18 +29,21 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
#include "gps_l1_ca_pcps_acquisition_fpga.h"
-#include
-#include
-#include
-#include "GPS_L1_CA.h"
#include "configuration_interface.h"
#include "gnss_sdr_flags.h"
+#include "GPS_L1_CA.h"
+#include "gps_sdr_signal_processing.h"
+#include
+#include
+#include
+
+#define NUM_PRNs 32
using google::LogMessage;
@@ -45,87 +51,89 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
ConfigurationInterface* configuration, std::string role,
unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams)
{
- unsigned int code_length;
- bool bit_transition_flag;
- bool use_CFAR_algorithm_flag;
- unsigned int sampled_ms;
- long fs_in;
- long ifreq;
- bool dump;
- std::string dump_filename;
- unsigned int nsamples_total;
- unsigned int select_queue_Fpga;
- std::string device_name;
-
+ pcpsconf_fpga_t acq_parameters;
configuration_ = configuration;
-
- std::string default_item_type = "cshort";
- std::string default_dump_filename = "./data/acquisition.dat";
+ std::string default_item_type = "gr_complex";
DLOG(INFO) << "role " << role;
- item_type_ = configuration_->property(role + ".item_type", default_item_type);
-
long fs_in_deprecated = configuration_->property("GNSS-SDR.internal_fs_hz", 2048000);
- fs_in = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
- ifreq = configuration_->property(role + ".if", 0);
- dump = configuration_->property(role + ".dump", false);
+ long fs_in = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated);
+ acq_parameters.fs_in = fs_in;
+ long ifreq = configuration_->property(role + ".if", 0);
+ acq_parameters.freq = ifreq;
doppler_max_ = configuration_->property(role + ".doppler_max", 5000);
if (FLAGS_doppler_max != 0) doppler_max_ = FLAGS_doppler_max;
- sampled_ms = configuration_->property(role + ".coherent_integration_time_ms", 1);
-
- // note : the FPGA is implemented according to bit transition flag = 0. Setting bit transition flag to 1 has no effect.
- bit_transition_flag = configuration_->property(role + ".bit_transition_flag", false);
-
- // note : the FPGA is implemented according to use_CFAR_algorithm = 0. Setting use_CFAR_algorithm to 1 has no effect.
- use_CFAR_algorithm_flag = configuration_->property(role + ".use_CFAR_algorithm", false);
-
- // note : the FPGA does not use the max_dwells variable.
- max_dwells_ = configuration_->property(role + ".max_dwells", 1);
-
- dump_filename = configuration_->property(role + ".dump_filename", default_dump_filename);
-
- //--- Find number of samples per spreading code -------------------------
- code_length = round(
- fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
-
- // code length has the same value as d_fft_size
- float nbits;
- nbits = ceilf(log2f(code_length));
- nsamples_total = pow(2, nbits);
-
- //vector_length_ = code_length_ * sampled_ms_;
- vector_length_ = nsamples_total * sampled_ms;
-
- // if( bit_transition_flag_ )
- // {
- // vector_length_ *= 2;
- // }
-
- select_queue_Fpga = configuration_->property(role + ".select_queue_Fpga", 0);
+ acq_parameters.doppler_max = doppler_max_;
+ unsigned int sampled_ms = configuration_->property(role + ".coherent_integration_time_ms", 1);
+ acq_parameters.sampled_ms = sampled_ms;
+ unsigned int code_length = static_cast(std::round(static_cast(fs_in) / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS)));
+ // The FPGA can only use FFT lengths that are a power of two.
+ float nbits = ceilf(log2f((float)code_length));
+ unsigned int nsamples_total = pow(2, nbits);
+ unsigned int vector_length = nsamples_total * sampled_ms;
+ unsigned int select_queue_Fpga = configuration_->property(role + ".select_queue_Fpga", 0);
+ acq_parameters.select_queue_Fpga = select_queue_Fpga;
std::string default_device_name = "/dev/uio0";
- device_name = configuration_->property(role + ".devicename", default_device_name);
+ std::string device_name = configuration_->property(role + ".devicename", default_device_name);
+ acq_parameters.device_name = device_name;
+ acq_parameters.samples_per_ms = nsamples_total;
+ acq_parameters.samples_per_code = nsamples_total;
- if (item_type_.compare("cshort") == 0)
+ // compute all the GPS L1 PRN Codes (this is done only once upon the class constructor in order to avoid re-computing the PRN codes every time
+ // a channel is assigned)
+
+ gr::fft::fft_complex* fft_if = new gr::fft::fft_complex(vector_length, true); // Direct FFT
+ // allocate memory to compute all the PRNs and compute all the possible codes
+ std::complex* code = new std::complex[nsamples_total]; // buffer for the local code
+ gr_complex* fft_codes_padded = static_cast(volk_gnsssdr_malloc(nsamples_total * sizeof(gr_complex), volk_gnsssdr_get_alignment()));
+ d_all_fft_codes_ = new lv_16sc_t[nsamples_total * NUM_PRNs]; // memory containing all the possible fft codes for PRN 0 to 32
+ float max; // temporary maxima search
+
+ for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++)
{
- item_size_ = sizeof(lv_16sc_t);
- gps_acquisition_fpga_sc_ = gps_pcps_make_acquisition_fpga_sc(
- sampled_ms, max_dwells_, doppler_max_, ifreq, fs_in,
- code_length, code_length, vector_length_, nsamples_total,
- bit_transition_flag, use_CFAR_algorithm_flag,
- select_queue_Fpga, device_name, dump, dump_filename);
- DLOG(INFO) << "acquisition("
- << gps_acquisition_fpga_sc_->unique_id() << ")";
- }
- else
- {
- LOG(WARNING) << "item_type configured to " << item_type_ << "but FPGA implementation only accepts cshort";
- throw std::invalid_argument("Wrong input_type configuration. Should be cshort");
+ gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in, 0); // generate PRN code
+ // fill in zero padding
+ for (int s = code_length; s < nsamples_total; s++)
+ {
+ code[s] = 0;
+ }
+ int offset = 0;
+ memcpy(fft_if->get_inbuf() + offset, code, sizeof(gr_complex) * nsamples_total); // copy to FFT buffer
+ fft_if->execute(); // Run the FFT of local code
+ volk_32fc_conjugate_32fc(fft_codes_padded, fft_if->get_outbuf(), nsamples_total); // conjugate values
+ max = 0; // initialize maximum value
+ for (unsigned int i = 0; i < nsamples_total; i++) // search for maxima
+ {
+ if (std::abs(fft_codes_padded[i].real()) > max)
+ {
+ max = std::abs(fft_codes_padded[i].real());
+ }
+ if (std::abs(fft_codes_padded[i].imag()) > max)
+ {
+ max = std::abs(fft_codes_padded[i].imag());
+ }
+ }
+ for (unsigned int i = 0; i < nsamples_total; i++) // map the FFT to the dynamic range of the fixed point values an copy to buffer containing all FFTs
+ {
+ d_all_fft_codes_[i + nsamples_total * (PRN - 1)] = lv_16sc_t(static_cast(floor(fft_codes_padded[i].real() * (pow(2, 7) - 1) / max)),
+ static_cast(floor(fft_codes_padded[i].imag() * (pow(2, 7) - 1) / max)));
+ }
}
+ // acq_parameters
+ acq_parameters.all_fft_codes = d_all_fft_codes_;
+
+ // temporary buffers that we can delete
+ delete[] code;
+ delete fft_if;
+ delete[] fft_codes_padded;
+
+ acquisition_fpga_ = pcps_make_acquisition_fpga(acq_parameters);
+ DLOG(INFO) << "acquisition(" << acquisition_fpga_->unique_id() << ")";
+
channel_ = 0;
- threshold_ = 0.0;
doppler_step_ = 0;
gnss_synchro_ = 0;
}
@@ -133,125 +141,98 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga(
GpsL1CaPcpsAcquisitionFpga::~GpsL1CaPcpsAcquisitionFpga()
{
+ delete[] d_all_fft_codes_;
}
void GpsL1CaPcpsAcquisitionFpga::set_channel(unsigned int channel)
{
channel_ = channel;
- gps_acquisition_fpga_sc_->set_channel(channel_);
+ acquisition_fpga_->set_channel(channel_);
}
void GpsL1CaPcpsAcquisitionFpga::set_threshold(float threshold)
{
- float pfa = configuration_->property(role_ + ".pfa", 0.0);
-
- if (pfa == 0.0)
- {
- threshold_ = threshold;
- }
- else
- {
- threshold_ = calculate_threshold(pfa);
- }
-
- DLOG(INFO) << "Channel " << channel_ << " Threshold = " << threshold_;
- gps_acquisition_fpga_sc_->set_threshold(threshold_);
+ DLOG(INFO) << "Channel " << channel_ << " Threshold = " << threshold;
+ acquisition_fpga_->set_threshold(threshold);
}
void GpsL1CaPcpsAcquisitionFpga::set_doppler_max(unsigned int doppler_max)
{
doppler_max_ = doppler_max;
- gps_acquisition_fpga_sc_->set_doppler_max(doppler_max_);
+ acquisition_fpga_->set_doppler_max(doppler_max_);
}
void GpsL1CaPcpsAcquisitionFpga::set_doppler_step(unsigned int doppler_step)
{
doppler_step_ = doppler_step;
- gps_acquisition_fpga_sc_->set_doppler_step(doppler_step_);
+ acquisition_fpga_->set_doppler_step(doppler_step_);
}
void GpsL1CaPcpsAcquisitionFpga::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
{
gnss_synchro_ = gnss_synchro;
- gps_acquisition_fpga_sc_->set_gnss_synchro(gnss_synchro_);
+ acquisition_fpga_->set_gnss_synchro(gnss_synchro_);
}
signed int GpsL1CaPcpsAcquisitionFpga::mag()
{
- return gps_acquisition_fpga_sc_->mag();
+ return acquisition_fpga_->mag();
}
void GpsL1CaPcpsAcquisitionFpga::init()
{
- gps_acquisition_fpga_sc_->init();
- set_local_code();
+ acquisition_fpga_->init();
}
void GpsL1CaPcpsAcquisitionFpga::set_local_code()
{
- gps_acquisition_fpga_sc_->set_local_code();
+ acquisition_fpga_->set_local_code();
}
void GpsL1CaPcpsAcquisitionFpga::reset()
{
- gps_acquisition_fpga_sc_->set_active(true);
+ acquisition_fpga_->set_active(true);
}
void GpsL1CaPcpsAcquisitionFpga::set_state(int state)
{
- gps_acquisition_fpga_sc_->set_state(state);
+ acquisition_fpga_->set_state(state);
}
-float GpsL1CaPcpsAcquisitionFpga::calculate_threshold(float pfa)
-{
- //Calculate the threshold
- unsigned int frequency_bins = 0;
- for (int doppler = static_cast(-doppler_max_); doppler <= static_cast(doppler_max_);
- doppler += doppler_step_)
- {
- frequency_bins++;
- }
- DLOG(INFO) << "Channel " << channel_ << " Pfa = " << pfa;
- unsigned int ncells = vector_length_ * frequency_bins;
- double exponent = 1 / static_cast(ncells);
- double val = pow(1.0 - pfa, exponent);
- double lambda = double(vector_length_);
- boost::math::exponential_distribution mydist(lambda);
- float threshold = static_cast(quantile(mydist, val));
-
- return threshold;
-}
-
void GpsL1CaPcpsAcquisitionFpga::connect(gr::top_block_sptr top_block)
{
- //nothing to connect
+ if (top_block)
+ { // nothing to disconnect
+ }
}
void GpsL1CaPcpsAcquisitionFpga::disconnect(gr::top_block_sptr top_block)
{
- //nothing to disconnect
+ if (top_block)
+ { // nothing to disconnect
+ }
}
gr::basic_block_sptr GpsL1CaPcpsAcquisitionFpga::get_left_block()
{
- return gps_acquisition_fpga_sc_;
+ return acquisition_fpga_;
}
gr::basic_block_sptr GpsL1CaPcpsAcquisitionFpga::get_right_block()
{
- return gps_acquisition_fpga_sc_;
+ return acquisition_fpga_;
}
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h
index 2c8f9eed4..b658942d5 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h
@@ -1,14 +1,17 @@
/*!
* \file gps_l1_ca_pcps_acquisition_fpga.h
- * \brief Adapts a PCPS acquisition block to an AcquisitionInterface for
- * GPS L1 C/A signals. This file is based on the file gps_l1_ca_pcps_acquisition.h
+ * \brief Adapts a PCPS acquisition block that uses the FPGA to
+ * an AcquisitionInterface for GPS L1 C/A signals
* \authors
- *
Marc Majoral, 2017. mmajoral(at)cttc.cat
+ *
Marc Majoral, 2018. mmajoral(at)cttc.es
+ *
Javier Arribas, 2011. jarribas(at)cttc.es
+ *
Luis Esteve, 2012. luis(at)epsilon-formacion.com
+ *
Marc Molina, 2013. marc.molina.pena(at)gmail.com
*
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +29,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -34,14 +37,11 @@
#ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_
#define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_
-#include
-#include
-#include
-#include "gnss_synchro.h"
#include "acquisition_interface.h"
-#include "gps_pcps_acquisition_fpga_sc.h"
-#include "complex_byte_to_float_x2.h"
+#include "gnss_synchro.h"
+#include "pcps_acquisition_fpga.h"
#include
+#include
class ConfigurationInterface;
@@ -68,12 +68,13 @@ public:
*/
inline std::string implementation() override
{
- return "GPS_L1_CA_PCPS_Acquisition_Fpga";
+ return "GPS_L1_CA_PCPS_Acquisition";
}
inline size_t item_size() override
{
- return item_size_;
+ size_t item_size = sizeof(lv_16sc_t);
+ return item_size;
}
void connect(gr::top_block_sptr top_block) override;
@@ -135,21 +136,15 @@ public:
private:
ConfigurationInterface* configuration_;
- gps_pcps_acquisition_fpga_sc_sptr gps_acquisition_fpga_sc_;
- size_t item_size_;
- std::string item_type_;
- unsigned int vector_length_;
+ pcps_acquisition_fpga_sptr acquisition_fpga_;
unsigned int channel_;
- float threshold_;
unsigned int doppler_max_;
unsigned int doppler_step_;
- unsigned int max_dwells_;
Gnss_Synchro* gnss_synchro_;
std::string role_;
unsigned int in_streams_;
unsigned int out_streams_;
-
- float calculate_threshold(float pfa);
+ lv_16sc_t* d_all_fft_codes_; // memory that contains all the code ffts
};
-#endif /* GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_H_ */
+#endif /* GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_ */
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc
index 61eb6ed08..513497946 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc
@@ -9,7 +9,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -27,7 +27,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h
index 1997d03c4..06c7728df 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc
index 88d9e4a65..eb2da7bea 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h
index 7c4380287..ab7e19c94 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc
index f591a64cb..9fa165513 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h
index 6ef2977da..17e3da109 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc
index d5a43e3f4..07dfecfd3 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h
index 24fe9ba30..2514a532e 100644
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc
index dbcea69e5..bb5f27bc7 100644
--- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h
index 22babe4d4..c6ad236cf 100644
--- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc
index cedc08d70..78030bfbc 100644
--- a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h
index ee9fb5d70..41b0e347b 100644
--- a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h
+++ b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
index ca02bb952..fbc33410e 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
@@ -29,7 +29,7 @@ set(ACQ_GR_BLOCKS_SOURCES
)
if(ENABLE_FPGA)
- set(ACQ_GR_BLOCKS_SOURCES ${ACQ_GR_BLOCKS_SOURCES} gps_pcps_acquisition_fpga_sc.cc)
+ set(ACQ_GR_BLOCKS_SOURCES ${ACQ_GR_BLOCKS_SOURCES} pcps_acquisition_fpga.cc)
endif(ENABLE_FPGA)
if(OPENCL_FOUND)
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc
index 7144a219b..568ca22f0 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc
@@ -12,7 +12,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -30,18 +30,18 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
#include "galileo_e5a_noncoherent_iq_acquisition_caf_cc.h"
-#include
-#include
+#include "control_message_factory.h"
#include
+#include
#include
#include
-#include "control_message_factory.h"
+#include
using google::LogMessage;
@@ -62,11 +62,15 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr galileo_e5a_noncoherentIQ_make
samples_per_code, bit_transition_flag, dump, dump_filename, both_signal_components_, CAF_window_hz_, Zero_padding_));
}
+
galileo_e5a_noncoherentIQ_acquisition_caf_cc::galileo_e5a_noncoherentIQ_acquisition_caf_cc(
unsigned int sampled_ms,
unsigned int max_dwells,
- unsigned int doppler_max, long freq, long fs_in,
- int samples_per_ms, int samples_per_code,
+ unsigned int doppler_max,
+ long freq,
+ long fs_in,
+ int samples_per_ms,
+ int samples_per_code,
bool bit_transition_flag,
bool dump,
std::string dump_filename,
@@ -167,6 +171,7 @@ galileo_e5a_noncoherentIQ_acquisition_caf_cc::galileo_e5a_noncoherentIQ_acquisit
d_gr_stream_buffer = 0;
}
+
galileo_e5a_noncoherentIQ_acquisition_caf_cc::~galileo_e5a_noncoherentIQ_acquisition_caf_cc()
{
if (d_num_doppler_bins > 0)
@@ -267,6 +272,7 @@ void galileo_e5a_noncoherentIQ_acquisition_caf_cc::set_local_code(std::complexFlag_valid_acquisition = false;
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h
index 4d4cf61c0..58cc608b0 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h
@@ -12,7 +12,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -30,7 +30,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc
index c1c6c21dc..a86b27c04 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h
index 7c020246b..62778ca06 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc b/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc
deleted file mode 100644
index d0f2baaf1..000000000
--- a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc
+++ /dev/null
@@ -1,315 +0,0 @@
-/*!
- * \file gps_pcps_acquisition_fpga_sc.cc
- * \brief This class implements a Parallel Code Phase Search Acquisition in the FPGA.
- * This file is based on the file gps_pcps_acquisition_sc.cc
- * \authors
- *
Marc Majoral, 2017. mmajoral(at)cttc.cat
- *
- *
- * -------------------------------------------------------------------------
- *
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
- *
- * GNSS-SDR is a software defined Global Navigation
- * Satellite Systems receiver
- *
- * This file is part of GNSS-SDR.
- *
- * GNSS-SDR is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GNSS-SDR is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
- *
- * -------------------------------------------------------------------------
- */
-
-#include "gps_pcps_acquisition_fpga_sc.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include "control_message_factory.h"
-#include "GPS_L1_CA.h" //GPS_TWO_PI
-using google::LogMessage;
-
-void wait3(int seconds)
-{
- boost::this_thread::sleep_for(boost::chrono::seconds{seconds});
-}
-
-
-gps_pcps_acquisition_fpga_sc_sptr gps_pcps_make_acquisition_fpga_sc(
- unsigned int sampled_ms, unsigned int max_dwells,
- unsigned int doppler_max, long freq, long fs_in, int samples_per_ms,
- int samples_per_code, int vector_length, unsigned int nsamples_total,
- bool bit_transition_flag, bool use_CFAR_algorithm_flag,
- unsigned int select_queue_Fpga, std::string device_name, bool dump,
- std::string dump_filename)
-{
- return gps_pcps_acquisition_fpga_sc_sptr(
- new gps_pcps_acquisition_fpga_sc(sampled_ms, max_dwells,
- doppler_max, freq, fs_in, samples_per_ms, samples_per_code,
- vector_length, nsamples_total, bit_transition_flag,
- use_CFAR_algorithm_flag, select_queue_Fpga, device_name,
- dump, dump_filename));
-}
-
-
-gps_pcps_acquisition_fpga_sc::gps_pcps_acquisition_fpga_sc(
- unsigned int sampled_ms, unsigned int max_dwells,
- unsigned int doppler_max, long freq, long fs_in, int samples_per_ms,
- int samples_per_code, int vector_length, unsigned int nsamples_total,
- bool bit_transition_flag, bool use_CFAR_algorithm_flag,
- unsigned int select_queue_Fpga, std::string device_name, bool dump,
- std::string dump_filename) : gr::block("pcps_acquisition_fpga_sc",
- gr::io_signature::make(0, 0, sizeof(lv_16sc_t)),
- gr::io_signature::make(0, 0, 0))
-{
- this->message_port_register_out(pmt::mp("events"));
- d_sample_counter = 0; // SAMPLE COUNTER
- d_active = false;
- d_state = 0;
- d_samples_per_code = samples_per_code;
- d_max_dwells = max_dwells; // Note : d_max_dwells is not used in the FPGA implementation
- d_well_count = 0;
- d_doppler_max = doppler_max;
- d_fft_size = sampled_ms * samples_per_ms;
- d_mag = 0;
- d_num_doppler_bins = 0;
- d_bit_transition_flag = bit_transition_flag; // Note : bit transition flag is ignored and assumed 0 in the FPGA implementation
- d_use_CFAR_algorithm_flag = use_CFAR_algorithm_flag; // Note : user CFAR algorithm flag is ignored and assumed 0 in the FPGA implementation
- d_threshold = 0.0;
- d_doppler_step = 250;
- d_channel = 0;
-
- // For dumping samples into a file
- d_dump = dump;
- d_dump_filename = dump_filename;
-
- d_gnss_synchro = 0;
-
- // instantiate HW accelerator class
- acquisition_fpga_8sc = std::make_shared(device_name, vector_length, d_fft_size, nsamples_total, fs_in, freq, sampled_ms, select_queue_Fpga);
-}
-
-
-gps_pcps_acquisition_fpga_sc::~gps_pcps_acquisition_fpga_sc()
-{
- if (d_dump)
- {
- d_dump_file.close();
- }
-
- acquisition_fpga_8sc->free();
-}
-
-
-void gps_pcps_acquisition_fpga_sc::set_local_code()
-{
- acquisition_fpga_8sc->set_local_code(d_gnss_synchro->PRN);
-}
-
-
-void gps_pcps_acquisition_fpga_sc::init()
-{
- d_gnss_synchro->Flag_valid_acquisition = false;
- d_gnss_synchro->Flag_valid_symbol_output = false;
- d_gnss_synchro->Flag_valid_pseudorange = false;
- d_gnss_synchro->Flag_valid_word = false;
- d_gnss_synchro->Acq_delay_samples = 0.0;
- d_gnss_synchro->Acq_doppler_hz = 0.0;
- d_gnss_synchro->Acq_samplestamp_samples = 0;
- d_mag = 0.0;
-
- d_num_doppler_bins = ceil(
- static_cast(static_cast(d_doppler_max) - static_cast(-d_doppler_max)) / static_cast(d_doppler_step));
-
- acquisition_fpga_8sc->open_device();
-
- acquisition_fpga_8sc->init();
-}
-
-
-void gps_pcps_acquisition_fpga_sc::set_state(int state)
-{
- d_state = state;
- if (d_state == 1)
- {
- d_gnss_synchro->Acq_delay_samples = 0.0;
- d_gnss_synchro->Acq_doppler_hz = 0.0;
- d_gnss_synchro->Acq_samplestamp_samples = 0;
- d_well_count = 0;
- d_mag = 0.0;
- }
- else if (d_state == 0)
- {
- }
- else
- {
- LOG(ERROR) << "State can only be set to 0 or 1";
- }
-}
-
-
-void gps_pcps_acquisition_fpga_sc::set_active(bool active)
-{
- float temp_peak_to_noise_level = 0.0;
- float peak_to_noise_level = 0.0;
- float input_power;
- float test_statistics = 0.0;
- acquisition_fpga_8sc->block_samples(); // block the samples to run the acquisition this is only necessary for the tests
-
- d_active = active;
-
- int acquisition_message = -1; //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
-
- d_state = 1;
-
- // initialize acquisition algorithm
- int doppler;
- uint32_t indext = 0;
- float magt = 0.0;
- //int effective_fft_size = ( d_bit_transition_flag ? d_fft_size/2 : d_fft_size );
- int effective_fft_size = d_fft_size;
- //float fft_normalization_factor = static_cast(d_fft_size) * static_cast(d_fft_size);
-
- d_mag = 0.0;
-
- unsigned int initial_sample;
-
- d_well_count++;
-
- DLOG(INFO) << "Channel: " << d_channel
- << " , doing acquisition of satellite: " << d_gnss_synchro->System
- << " " << d_gnss_synchro->PRN << " ,sample stamp: "
- << d_sample_counter << ", threshold: "
- << ", threshold: "
- << d_threshold << ", doppler_max: " << d_doppler_max
- << ", doppler_step: " << d_doppler_step;
-
- // Doppler frequency search loop
- for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins;
- doppler_index++)
- {
- doppler = -static_cast(d_doppler_max) + d_doppler_step * doppler_index;
-
- acquisition_fpga_8sc->set_phase_step(doppler_index);
- acquisition_fpga_8sc->run_acquisition(); // runs acquisition and waits until it is finished
-
- acquisition_fpga_8sc->read_acquisition_results(&indext, &magt,
- &initial_sample, &input_power);
-
- d_sample_counter = initial_sample;
-
- temp_peak_to_noise_level = static_cast(magt) / static_cast(input_power);
- if (peak_to_noise_level < temp_peak_to_noise_level)
- {
- peak_to_noise_level = temp_peak_to_noise_level;
- d_mag = magt;
-
- input_power = (input_power - d_mag) / (effective_fft_size - 1);
-
- d_gnss_synchro->Acq_delay_samples =
- static_cast(indext % d_samples_per_code);
- d_gnss_synchro->Acq_doppler_hz =
- static_cast(doppler);
- d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter;
- test_statistics = d_mag / input_power;
- }
-
- // Record results to file if required
- if (d_dump)
- {
- std::stringstream filename;
- //std::streamsize n = 2 * sizeof(float) * (d_fft_size); // complex file write
- filename.str("");
-
- boost::filesystem::path p = d_dump_filename;
- filename << p.parent_path().string()
- << boost::filesystem::path::preferred_separator
- << p.stem().string() << "_"
- << d_gnss_synchro->System << "_"
- << d_gnss_synchro->Signal << "_sat_"
- << d_gnss_synchro->PRN << "_doppler_" << doppler
- << p.extension().string();
-
- DLOG(INFO) << "Writing ACQ out to " << filename.str();
-
- d_dump_file.open(filename.str().c_str(),
- std::ios::out | std::ios::binary);
- d_dump_file.close();
- }
- }
-
- if (test_statistics > d_threshold)
- {
- d_state = 2; // Positive acquisition
-
- // 6.1- Declare positive acquisition using a message port
- DLOG(INFO) << "positive acquisition";
- DLOG(INFO) << "satellite " << d_gnss_synchro->System << " "
- << d_gnss_synchro->PRN;
- DLOG(INFO) << "sample_stamp " << d_sample_counter;
- DLOG(INFO) << "test statistics value " << test_statistics;
- DLOG(INFO) << "test statistics threshold " << d_threshold;
- DLOG(INFO) << "code phase " << d_gnss_synchro->Acq_delay_samples;
- DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz;
- DLOG(INFO) << "magnitude " << d_mag;
- DLOG(INFO) << "input signal power " << input_power;
-
- d_active = false;
- d_state = 0;
-
- acquisition_message = 1;
- this->message_port_pub(pmt::mp("events"),
- pmt::from_long(acquisition_message));
- }
- else
- {
- d_state = 3; // Negative acquisition
-
- // 6.2- Declare negative acquisition using a message port
- DLOG(INFO) << "negative acquisition";
- DLOG(INFO) << "satellite " << d_gnss_synchro->System << " "
- << d_gnss_synchro->PRN;
- DLOG(INFO) << "sample_stamp " << d_sample_counter;
- DLOG(INFO) << "test statistics value " << test_statistics;
- DLOG(INFO) << "test statistics threshold " << d_threshold;
- DLOG(INFO) << "code phase " << d_gnss_synchro->Acq_delay_samples;
- DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz;
- DLOG(INFO) << "magnitude " << d_mag;
- DLOG(INFO) << "input signal power " << input_power;
-
- d_active = false;
- d_state = 0;
-
- acquisition_message = 2;
- this->message_port_pub(pmt::mp("events"),
- pmt::from_long(acquisition_message));
- }
-
- acquisition_fpga_8sc->unblock_samples();
-
- acquisition_fpga_8sc->close_device();
-
- DLOG(INFO) << "Done. Consumed 1 item.";
-}
-
-
-int gps_pcps_acquisition_fpga_sc::general_work(int noutput_items,
- gr_vector_int &ninput_items, gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items __attribute__((unused)))
-{
- // general work not used with the acquisition
- return noutput_items;
-}
diff --git a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h b/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h
deleted file mode 100644
index c5de39c69..000000000
--- a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*!
- * \file gps_pcps_acquisition_fpga_sc.h
- * \brief This class implements a Parallel Code Phase Search Acquisition in the FPGA.
- * This file is based on the file gps_pcps_acquisition_sc.h
- *
- * Acquisition strategy (Kay Borre book + CFAR threshold).
- *
- *
Compute the input signal power estimation
- *
Doppler serial search loop
- *
Perform the FFT-based circular convolution (parallel time search)
- *
Record the maximum peak and the associated synchronization parameters
- *
Compute the test statistics and compare to the threshold
- *
Declare positive or negative acquisition using a message port
- *
- *
- * Kay Borre book: K.Borre, D.M.Akos, N.Bertelsen, P.Rinder, and S.H.Jensen,
- * "A Software-Defined GPS and Galileo Receiver. A Single-Frequency
- * Approach", Birkhauser, 2007. pp 81-84
- *
- * \authors
- *
Marc Majoral, 2017. mmajoral(at)cttc.cat
- *
- *
- * -------------------------------------------------------------------------
- *
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
- *
- * GNSS-SDR is a software defined Global Navigation
- * Satellite Systems receiver
- *
- * This file is part of GNSS-SDR.
- *
- * GNSS-SDR is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GNSS-SDR is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
- *
- * -------------------------------------------------------------------------
- */
-
-#ifndef GNSS_SDR_PCPS_ACQUISITION_FPGA_SC_H_
-#define GNSS_SDR_PCPS_ACQUISITION_FPGA_SC_H_
-
-#include
-#include
-#include
-#include
-#include
-#include "gnss_synchro.h"
-#include "gps_fpga_acquisition_8sc.h"
-
-class gps_pcps_acquisition_fpga_sc;
-
-typedef boost::shared_ptr gps_pcps_acquisition_fpga_sc_sptr;
-
-gps_pcps_acquisition_fpga_sc_sptr
-gps_pcps_make_acquisition_fpga_sc(unsigned int sampled_ms,
- unsigned int max_dwells, unsigned int doppler_max, long freq,
- long fs_in, int samples_per_ms, int samples_per_code,
- int vector_length_, unsigned int nsamples_total_,
- bool bit_transition_flag, bool use_CFAR_algorithm_flag,
- unsigned int select_queue_Fpga, std::string device_name, bool dump,
- std::string dump_filename);
-
-/*!
- * \brief This class implements a Parallel Code Phase Search Acquisition.
- *
- * Check \ref Navitec2012 "An Open Source Galileo E1 Software Receiver",
- * Algorithm 1, for a pseudocode description of this implementation.
- */
-class gps_pcps_acquisition_fpga_sc : public gr::block
-{
-private:
- friend gps_pcps_acquisition_fpga_sc_sptr
- gps_pcps_make_acquisition_fpga_sc(unsigned int sampled_ms,
- unsigned int max_dwells, unsigned int doppler_max, long freq,
- long fs_in, int samples_per_ms, int samples_per_code,
- int vector_length, unsigned int nsamples_total,
- bool bit_transition_flag, bool use_CFAR_algorithm_flag,
- unsigned int select_queue_Fpga, std::string device_name, bool dump,
- std::string dump_filename);
-
- gps_pcps_acquisition_fpga_sc(unsigned int sampled_ms,
- unsigned int max_dwells, unsigned int doppler_max, long freq,
- long fs_in, int samples_per_ms, int samples_per_code,
- int vector_length, unsigned int nsamples_total,
- bool bit_transition_flag, bool use_CFAR_algorithm_flag,
- unsigned int select_queue_Fpga, std::string device_name, bool dump,
- std::string dump_filename);
-
- int d_samples_per_code;
- float d_threshold;
- unsigned int d_doppler_max;
- unsigned int d_doppler_step;
- unsigned int d_max_dwells;
- unsigned int d_well_count;
- unsigned int d_fft_size;
- unsigned long int d_sample_counter;
- unsigned int d_num_doppler_bins;
-
- Gnss_Synchro *d_gnss_synchro;
- float d_mag;
- bool d_bit_transition_flag;
- bool d_use_CFAR_algorithm_flag;
- std::ofstream d_dump_file;
- bool d_active;
- int d_state;
- bool d_dump;
- unsigned int d_channel;
- std::string d_dump_filename;
-
- std::shared_ptr acquisition_fpga_8sc;
-
-public:
- /*!
- * \brief Default destructor.
- */
- ~gps_pcps_acquisition_fpga_sc();
-
- /*!
- * \brief Set acquisition/tracking common Gnss_Synchro object pointer
- * to exchange synchronization data between acquisition and tracking blocks.
- * \param p_gnss_synchro Satellite information shared by the processing blocks.
- */
- inline void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro)
- {
- d_gnss_synchro = p_gnss_synchro;
- }
-
- /*!
- * \brief Returns the maximum peak of grid search.
- */
- inline unsigned int mag() const
- {
- return d_mag;
- }
-
- /*!
- * \brief Initializes acquisition algorithm.
- */
- void init();
-
- /*!
- * \brief Sets local code for PCPS acquisition algorithm.
- * \param code - Pointer to the PRN code.
- */
- void set_local_code();
-
- /*!
- * \brief Starts acquisition algorithm, turning from standby mode to
- * active mode
- * \param active - bool that activates/deactivates the block.
- */
- void set_active(bool active);
-
- /*!
- * \brief If set to 1, ensures that acquisition starts at the
- * first available sample.
- * \param state - int=1 forces start of acquisition
- */
- void set_state(int state);
-
- /*!
- * \brief Set acquisition channel unique ID
- * \param channel - receiver channel.
- */
- inline void set_channel(unsigned int channel)
- {
- d_channel = channel;
- }
-
- /*!
- * \brief Set statistics threshold of PCPS algorithm.
- * \param threshold - Threshold for signal detection (check \ref Navitec2012,
- * Algorithm 1, for a definition of this threshold).
- */
- inline void set_threshold(float threshold)
- {
- d_threshold = threshold;
- }
-
- /*!
- * \brief Set maximum Doppler grid search
- * \param doppler_max - Maximum Doppler shift considered in the grid search [Hz].
- */
- inline void set_doppler_max(unsigned int doppler_max)
- {
- d_doppler_max = doppler_max;
- acquisition_fpga_8sc->set_doppler_max(doppler_max);
- }
-
- /*!
- * \brief Set Doppler steps for the grid search
- * \param doppler_step - Frequency bin of the search grid [Hz].
- */
- inline void set_doppler_step(unsigned int doppler_step)
- {
- d_doppler_step = doppler_step;
- acquisition_fpga_8sc->set_doppler_step(doppler_step);
- }
-
- /*!
- * \brief Parallel Code Phase Search Acquisition signal processing.
- */
- int general_work(int noutput_items, gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-#endif /* GNSS_SDR_PCPS_ACQUISITION_SC_H_*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
index 62e55dd31..3513a41da 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
@@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -28,7 +28,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -39,7 +39,7 @@
#include
#include
#include
-#include
+#include
#include
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h
index 97e314fdb..e16edd83f 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h
@@ -26,7 +26,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -44,7 +44,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -56,7 +56,7 @@
#include
#include
#include
-#include
+#include
#include
typedef struct
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc
index 860d96e49..90b96acbb 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h
index fe7810daa..652250cac 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h
@@ -22,7 +22,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -40,7 +40,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc
new file mode 100644
index 000000000..66d23ba16
--- /dev/null
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc
@@ -0,0 +1,242 @@
+/*!
+ * \file pcps_acquisition_fpga.cc
+ * \brief This class implements a Parallel Code Phase Search Acquisition in the FPGA
+ *
+ * Note: The CFAR algorithm is not implemented in the FPGA.
+ * Note 2: The bit transition flag is not implemented in the FPGA
+ *
+ * \authors
+ *
Marc Majoral, 2017. mmajoral(at)cttc.cat
+ *
Javier Arribas, 2011. jarribas(at)cttc.es
+ *
Luis Esteve, 2012. luis(at)epsilon-formacion.com
+ *
Marc Molina, 2013. marc.molina.pena@gmail.com
+ *
Cillian O'Driscoll, 2017. cillian(at)ieee.org
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#include "pcps_acquisition_fpga.h"
+#include
+#include
+
+
+using google::LogMessage;
+
+pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_)
+{
+ return pcps_acquisition_fpga_sptr(new pcps_acquisition_fpga(conf_));
+}
+
+
+pcps_acquisition_fpga::pcps_acquisition_fpga(pcpsconf_fpga_t conf_) : gr::block("pcps_acquisition_fpga",
+ gr::io_signature::make(0, 0, 0),
+ gr::io_signature::make(0, 0, 0))
+{
+ this->message_port_register_out(pmt::mp("events"));
+
+ acq_parameters = conf_;
+ d_sample_counter = 0; // SAMPLE COUNTER
+ d_active = false;
+ d_state = 0;
+ d_fft_size = acq_parameters.sampled_ms * acq_parameters.samples_per_ms;
+ d_mag = 0;
+ d_input_power = 0.0;
+ d_num_doppler_bins = 0;
+ d_threshold = 0.0;
+ d_doppler_step = 0;
+ d_test_statistics = 0.0;
+ d_channel = 0;
+ d_gnss_synchro = 0;
+
+ acquisition_fpga = std::make_shared(acq_parameters.device_name, d_fft_size, acq_parameters.doppler_max, acq_parameters.samples_per_ms,
+ acq_parameters.fs_in, acq_parameters.freq, acq_parameters.sampled_ms, acq_parameters.select_queue_Fpga, acq_parameters.all_fft_codes);
+}
+
+
+pcps_acquisition_fpga::~pcps_acquisition_fpga()
+{
+ acquisition_fpga->free();
+}
+
+
+void pcps_acquisition_fpga::set_local_code()
+{
+ acquisition_fpga->set_local_code(d_gnss_synchro->PRN);
+}
+
+
+void pcps_acquisition_fpga::init()
+{
+ d_gnss_synchro->Flag_valid_acquisition = false;
+ d_gnss_synchro->Flag_valid_symbol_output = false;
+ d_gnss_synchro->Flag_valid_pseudorange = false;
+ d_gnss_synchro->Flag_valid_word = false;
+ d_gnss_synchro->Acq_delay_samples = 0.0;
+ d_gnss_synchro->Acq_doppler_hz = 0.0;
+ d_gnss_synchro->Acq_samplestamp_samples = 0;
+ d_mag = 0.0;
+ d_input_power = 0.0;
+ d_num_doppler_bins = static_cast(std::ceil(static_cast(static_cast(acq_parameters.doppler_max) - static_cast(-acq_parameters.doppler_max)) / static_cast(d_doppler_step)));
+
+ acquisition_fpga->init();
+}
+
+
+void pcps_acquisition_fpga::set_state(int state)
+{
+ d_state = state;
+ if (d_state == 1)
+ {
+ d_gnss_synchro->Acq_delay_samples = 0.0;
+ d_gnss_synchro->Acq_doppler_hz = 0.0;
+ d_gnss_synchro->Acq_samplestamp_samples = 0;
+ //d_well_count = 0;
+ d_mag = 0.0;
+ d_input_power = 0.0;
+ d_test_statistics = 0.0;
+ d_active = true;
+ }
+ else if (d_state == 0)
+ {
+ }
+ else
+ {
+ LOG(ERROR) << "State can only be set to 0 or 1";
+ }
+}
+
+
+void pcps_acquisition_fpga::send_positive_acquisition()
+{
+ // 6.1- Declare positive acquisition using a message port
+ //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
+ DLOG(INFO) << "positive acquisition"
+ << ", satellite " << d_gnss_synchro->System << " " << d_gnss_synchro->PRN
+ << ", sample_stamp " << d_sample_counter
+ << ", test statistics value " << d_test_statistics
+ << ", test statistics threshold " << d_threshold
+ << ", code phase " << d_gnss_synchro->Acq_delay_samples
+ << ", doppler " << d_gnss_synchro->Acq_doppler_hz
+ << ", magnitude " << d_mag
+ << ", input signal power " << d_input_power;
+
+ this->message_port_pub(pmt::mp("events"), pmt::from_long(1));
+}
+
+
+void pcps_acquisition_fpga::send_negative_acquisition()
+{
+ // 6.2- Declare negative acquisition using a message port
+ //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL
+ DLOG(INFO) << "negative acquisition"
+ << ", satellite " << d_gnss_synchro->System << " " << d_gnss_synchro->PRN
+ << ", sample_stamp " << d_sample_counter
+ << ", test statistics value " << d_test_statistics
+ << ", test statistics threshold " << d_threshold
+ << ", code phase " << d_gnss_synchro->Acq_delay_samples
+ << ", doppler " << d_gnss_synchro->Acq_doppler_hz
+ << ", magnitude " << d_mag
+ << ", input signal power " << d_input_power;
+
+ this->message_port_pub(pmt::mp("events"), pmt::from_long(2));
+}
+
+
+void pcps_acquisition_fpga::set_active(bool active)
+{
+ d_active = active;
+
+ // initialize acquisition algorithm
+ uint32_t indext = 0;
+ float magt = 0.0;
+ float fft_normalization_factor = static_cast(d_fft_size) * static_cast(d_fft_size);
+
+ d_input_power = 0.0;
+ d_mag = 0.0;
+
+ DLOG(INFO) << "Channel: " << d_channel
+ << " , doing acquisition of satellite: " << d_gnss_synchro->System << " " << d_gnss_synchro->PRN
+ << " ,sample stamp: " << d_sample_counter << ", threshold: "
+ << d_threshold << ", doppler_max: " << acq_parameters.doppler_max
+ << ", doppler_step: " << d_doppler_step
+ // no CFAR algorithm in the FPGA
+ << ", use_CFAR_algorithm_flag: false";
+
+ unsigned int initial_sample;
+ float input_power_all = 0.0;
+ float input_power_computed = 0.0;
+ for (unsigned int doppler_index = 0; doppler_index < d_num_doppler_bins; doppler_index++)
+ {
+ // doppler search steps
+ int doppler = -static_cast(acq_parameters.doppler_max) + d_doppler_step * doppler_index;
+
+ acquisition_fpga->set_phase_step(doppler_index);
+ acquisition_fpga->run_acquisition(); // runs acquisition and waits until it is finished
+ acquisition_fpga->read_acquisition_results(&indext, &magt,
+ &initial_sample, &d_input_power);
+ d_sample_counter = initial_sample;
+
+ if (d_mag < magt)
+ {
+ d_mag = magt;
+
+ input_power_all = d_input_power / (d_fft_size - 1);
+ input_power_computed = (d_input_power - d_mag) / (d_fft_size - 1);
+ d_input_power = (d_input_power - d_mag) / (d_fft_size - 1);
+
+ d_gnss_synchro->Acq_delay_samples = static_cast(indext % acq_parameters.samples_per_code);
+ d_gnss_synchro->Acq_doppler_hz = static_cast(doppler);
+ d_gnss_synchro->Acq_samplestamp_samples = d_sample_counter;
+
+ d_test_statistics = (d_mag / d_input_power); //* correction_factor;
+ }
+
+ // In the case of the FPGA the option of dumping the results of the acquisition to a file is not available
+ // because the IFFT vector is not available
+ }
+
+ if (d_test_statistics > d_threshold)
+ {
+ d_active = false;
+ send_positive_acquisition();
+ d_state = 0; // Positive acquisition
+ }
+ else
+ {
+ d_state = 0;
+ d_active = false;
+ send_negative_acquisition();
+ }
+}
+
+
+int pcps_acquisition_fpga::general_work(int noutput_items __attribute__((unused)),
+ gr_vector_int& ninput_items, gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items __attribute__((unused)))
+{
+ // the general work is not used with the acquisition that uses the FPGA
+ return noutput_items;
+}
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h
new file mode 100644
index 000000000..1ee9a773a
--- /dev/null
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h
@@ -0,0 +1,213 @@
+/*!
+ * \file pcps_acquisition_fpga.h
+ * \brief This class implements a Parallel Code Phase Search Acquisition in the FPGA.
+ *
+ * Note: The CFAR algorithm is not implemented in the FPGA.
+ * Note 2: The bit transition flag is not implemented in the FPGA
+ *
+ * Acquisition strategy (Kay Borre book + CFAR threshold).
+ *
+ *
Compute the input signal power estimation
+ *
Doppler serial search loop
+ *
Perform the FFT-based circular convolution (parallel time search)
+ *
Record the maximum peak and the associated synchronization parameters
+ *
Compute the test statistics and compare to the threshold
+ *
Declare positive or negative acquisition using a message queue
+ *
+ *
+ * Kay Borre book: K.Borre, D.M.Akos, N.Bertelsen, P.Rinder, and S.H.Jensen,
+ * "A Software-Defined GPS and Galileo Receiver. A Single-Frequency
+ * Approach", Birkhauser, 2007. pp 81-84
+ *
+ * \authors
+ *
Marc Majoral, 2017. mmajoral(at)cttc.cat
+ *
Javier Arribas, 2011. jarribas(at)cttc.es
+ *
Luis Esteve, 2012. luis(at)epsilon-formacion.com
+ *
Marc Molina, 2013. marc.molina.pena@gmail.com
+ *
Cillian O'Driscoll, 2017. cillian(at)ieee.org
+ *
Antonio Ramos, 2017. antonio.ramos@cttc.es
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#ifndef GNSS_SDR_PCPS_ACQUISITION_FPGA_H_
+#define GNSS_SDR_PCPS_ACQUISITION_FPGA_H_
+
+
+#include "fpga_acquisition.h"
+#include "gnss_synchro.h"
+#include
+
+typedef struct
+{
+ /* pcps acquisition configuration */
+ unsigned int sampled_ms;
+ unsigned int doppler_max;
+ long freq;
+ long fs_in;
+ int samples_per_ms;
+ int samples_per_code;
+ unsigned int select_queue_Fpga;
+ std::string device_name;
+ lv_16sc_t* all_fft_codes; // memory that contains all the code ffts
+
+} pcpsconf_fpga_t;
+
+class pcps_acquisition_fpga;
+
+typedef boost::shared_ptr pcps_acquisition_fpga_sptr;
+
+pcps_acquisition_fpga_sptr
+pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_);
+
+/*!
+ * \brief This class implements a Parallel Code Phase Search Acquisition that uses the FPGA.
+ *
+ * Check \ref Navitec2012 "An Open Source Galileo E1 Software Receiver",
+ * Algorithm 1, for a pseudocode description of this implementation.
+ */
+class pcps_acquisition_fpga : public gr::block
+{
+private:
+ friend pcps_acquisition_fpga_sptr
+
+ pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_);
+
+ pcps_acquisition_fpga(pcpsconf_fpga_t conf_);
+
+ void send_negative_acquisition();
+
+ void send_positive_acquisition();
+
+ pcpsconf_fpga_t acq_parameters;
+ bool d_active;
+ float d_threshold;
+ float d_mag;
+ float d_input_power;
+ float d_test_statistics;
+ int d_state;
+ unsigned int d_channel;
+ unsigned int d_doppler_step;
+ unsigned int d_fft_size;
+ unsigned int d_num_doppler_bins;
+ unsigned long int d_sample_counter;
+ Gnss_Synchro* d_gnss_synchro;
+ std::shared_ptr acquisition_fpga;
+
+public:
+ ~pcps_acquisition_fpga();
+
+ /*!
+ * \brief Set acquisition/tracking common Gnss_Synchro object pointer
+ * to exchange synchronization data between acquisition and tracking blocks.
+ * \param p_gnss_synchro Satellite information shared by the processing blocks.
+ */
+ inline void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro)
+ {
+ d_gnss_synchro = p_gnss_synchro;
+ }
+
+ /*!
+ * \brief Returns the maximum peak of grid search.
+ */
+ inline unsigned int mag() const
+ {
+ return d_mag;
+ }
+
+ /*!
+ * \brief Initializes acquisition algorithm.
+ */
+ void init();
+
+ /*!
+ * \brief Sets local code for PCPS acquisition algorithm.
+ * \param code - Pointer to the PRN code.
+ */
+ void set_local_code();
+
+ /*!
+ * \brief If set to 1, ensures that acquisition starts at the
+ * first available sample.
+ * \param state - int=1 forces start of acquisition
+ */
+ void set_state(int state);
+
+ /*!
+ * \brief Starts acquisition algorithm, turning from standby mode to
+ * active mode
+ * \param active - bool that activates/deactivates the block.
+ */
+ void set_active(bool active);
+
+ /*!
+ * \brief Set acquisition channel unique ID
+ * \param channel - receiver channel.
+ */
+ inline void set_channel(unsigned int channel)
+ {
+ d_channel = channel;
+ }
+
+ /*!
+ * \brief Set statistics threshold of PCPS algorithm.
+ * \param threshold - Threshold for signal detection (check \ref Navitec2012,
+ * Algorithm 1, for a definition of this threshold).
+ */
+ inline void set_threshold(float threshold)
+ {
+ d_threshold = threshold;
+ }
+
+ /*!
+ * \brief Set maximum Doppler grid search
+ * \param doppler_max - Maximum Doppler shift considered in the grid search [Hz].
+ */
+ inline void set_doppler_max(unsigned int doppler_max)
+ {
+ acq_parameters.doppler_max = doppler_max;
+ acquisition_fpga->set_doppler_max(doppler_max);
+ }
+
+ /*!
+ * \brief Set Doppler steps for the grid search
+ * \param doppler_step - Frequency bin of the search grid [Hz].
+ */
+ inline void set_doppler_step(unsigned int doppler_step)
+ {
+ d_doppler_step = doppler_step;
+ acquisition_fpga->set_doppler_step(doppler_step);
+ }
+
+ /*!
+ * \brief Parallel Code Phase Search Acquisition signal processing.
+ */
+ int general_work(int noutput_items, gr_vector_int& ninput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items);
+};
+
+#endif /* GNSS_SDR_PCPS_ACQUISITION_FPGA_H_*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
index 17866975b..78a82fd8c 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h
index c4a03a3a7..1b312980e 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h
@@ -22,7 +22,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -40,7 +40,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
index 9fb67a398..8b7250e67 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc
@@ -11,7 +11,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -29,7 +29,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h
index 22ad06d72..46954e5ca 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h
@@ -11,7 +11,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -29,7 +29,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
index 17d3628d5..af9413158 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
@@ -25,7 +25,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -43,24 +43,24 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
#include "pcps_opencl_acquisition_cc.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
#include "control_message_factory.h"
#include "opencl/fft_base_kernels.h"
#include "opencl/fft_internal.h"
#include "GPS_L1_CA.h" //GPS_TWO_PI
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
using google::LogMessage;
@@ -78,10 +78,15 @@ pcps_opencl_acquisition_cc_sptr pcps_make_opencl_acquisition_cc(
samples_per_code, bit_transition_flag, dump, dump_filename));
}
+
pcps_opencl_acquisition_cc::pcps_opencl_acquisition_cc(
- unsigned int sampled_ms, unsigned int max_dwells,
- unsigned int doppler_max, long freq, long fs_in,
- int samples_per_ms, int samples_per_code,
+ unsigned int sampled_ms,
+ unsigned int max_dwells,
+ unsigned int doppler_max,
+ long freq,
+ long fs_in,
+ int samples_per_ms,
+ int samples_per_code,
bool bit_transition_flag,
bool dump,
std::string dump_filename) : gr::block("pcps_opencl_acquisition_cc",
@@ -339,6 +344,7 @@ void pcps_opencl_acquisition_cc::init()
}
}
+
void pcps_opencl_acquisition_cc::set_local_code(std::complex *code)
{
if (d_opencl == 0)
@@ -374,6 +380,7 @@ void pcps_opencl_acquisition_cc::set_local_code(std::complex *code)
}
}
+
void pcps_opencl_acquisition_cc::acquisition_core_volk()
{
// initialize acquisition algorithm
@@ -496,6 +503,7 @@ void pcps_opencl_acquisition_cc::acquisition_core_volk()
d_core_working = false;
}
+
void pcps_opencl_acquisition_cc::acquisition_core_opencl()
{
// initialize acquisition algorithm
@@ -687,6 +695,7 @@ void pcps_opencl_acquisition_cc::set_state(int state)
}
}
+
int pcps_opencl_acquisition_cc::general_work(int noutput_items,
gr_vector_int &ninput_items, gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items __attribute__((unused)))
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
index aebc73ef8..c4ce11707 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
@@ -25,7 +25,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -43,7 +43,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -51,14 +51,14 @@
#ifndef GNSS_SDR_PCPS_OPENCL_ACQUISITION_CC_H_
#define GNSS_SDR_PCPS_OPENCL_ACQUISITION_CC_H_
-#include
-#include
-#include
+#include "gnss_synchro.h"
+#include "opencl/fft_internal.h"
#include
#include
#include
-#include "opencl/fft_internal.h"
-#include "gnss_synchro.h"
+#include
+#include
+#include
#ifdef __APPLE__
#include "opencl/cl.hpp"
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
index d97385f49..17d06f62b 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h
index 01fc094c8..6352cc3bd 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h
@@ -25,7 +25,7 @@
*
* -------------------------------------------------------------------------
*
-* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -43,7 +43,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
-* along with GNSS-SDR. If not, see .
+* along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
index 26d3b67f2..44d09b134 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc
@@ -25,7 +25,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -43,7 +43,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h
index 6f49aa91f..00eba93f5 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h
@@ -25,7 +25,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -43,7 +43,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/acquisition/libs/CMakeLists.txt b/src/algorithms/acquisition/libs/CMakeLists.txt
index 53feb9366..332d83723 100644
--- a/src/algorithms/acquisition/libs/CMakeLists.txt
+++ b/src/algorithms/acquisition/libs/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,12 +13,12 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
set(ACQUISITION_LIB_SOURCES
- gps_fpga_acquisition_8sc.cc
+ fpga_acquisition.cc
)
include_directories(
diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.cc b/src/algorithms/acquisition/libs/fpga_acquisition.cc
new file mode 100644
index 000000000..c14452d93
--- /dev/null
+++ b/src/algorithms/acquisition/libs/fpga_acquisition.cc
@@ -0,0 +1,265 @@
+/*!
+ * \file fpga_acquisition.cc
+ * \brief High optimized FPGA vector correlator class
+ * \authors
+ *
Marc Majoral, 2018. mmajoral(at)cttc.cat
+ *
+ *
+ * Class that controls and executes a high optimized acquisition HW
+ * accelerator in the FPGA
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#include "fpga_acquisition.h"
+#include "GPS_L1_CA.h"
+#include "gps_sdr_signal_processing.h"
+#include
+#include // libraries used by the GIPO
+#include // libraries used by the GIPO
+
+
+#define PAGE_SIZE 0x10000 // default page size for the multicorrelator memory map
+#define MAX_PHASE_STEP_RAD 0.999999999534339 // 1 - pow(2,-31);
+#define RESET_ACQUISITION 2 // command to reset the multicorrelator
+#define LAUNCH_ACQUISITION 1 // command to launch the multicorrelator
+#define TEST_REG_SANITY_CHECK 0x55AA // value to check the presence of the test register (to detect the hw)
+#define LOCAL_CODE_CLEAR_MEM 0x10000000 // command to clear the internal memory of the multicorrelator
+#define MEM_LOCAL_CODE_WR_ENABLE 0x0C000000 // command to enable the ENA and WR pins of the internal memory of the multicorrelator
+#define POW_2_2 4 // 2^2 (used for the conversion of floating point numbers to integers)
+#define POW_2_29 536870912 // 2^29 (used for the conversion of floating point numbers to integers)
+#define SELECT_LSB 0x00FF // value to select the least significant byte
+#define SELECT_MSB 0XFF00 // value to select the most significant byte
+#define SELECT_16_BITS 0xFFFF // value to select 16 bits
+#define SHL_8_BITS 256 // value used to shift a value 8 bits to the left
+
+
+bool fpga_acquisition::init()
+{
+ // configure the acquisition with the main initialization values
+ fpga_acquisition::configure_acquisition();
+ return true;
+}
+
+
+bool fpga_acquisition::set_local_code(unsigned int PRN)
+{
+ // select the code with the chosen PRN
+ fpga_acquisition::fpga_configure_acquisition_local_code(
+ &d_all_fft_codes[d_nsamples_total * (PRN - 1)]);
+ return true;
+}
+
+
+fpga_acquisition::fpga_acquisition(std::string device_name,
+ unsigned int nsamples,
+ unsigned int doppler_max,
+ unsigned int nsamples_total, long fs_in, long freq,
+ unsigned int sampled_ms, unsigned select_queue,
+ lv_16sc_t *all_fft_codes)
+{
+ unsigned int vector_length = nsamples_total * sampled_ms;
+ // initial values
+ d_device_name = device_name;
+ d_freq = freq;
+ d_fs_in = fs_in;
+ d_vector_length = vector_length;
+ d_nsamples = nsamples; // number of samples not including padding
+ d_select_queue = select_queue;
+ d_nsamples_total = nsamples_total;
+ d_doppler_max = doppler_max;
+ d_doppler_step = 0;
+ d_fd = 0; // driver descriptor
+ d_map_base = nullptr; // driver memory map
+ d_all_fft_codes = all_fft_codes;
+
+ // open communication with HW accelerator
+ if ((d_fd = open(d_device_name.c_str(), O_RDWR | O_SYNC)) == -1)
+ {
+ LOG(WARNING) << "Cannot open deviceio" << d_device_name;
+ }
+ d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE,
+ PROT_READ | PROT_WRITE, MAP_SHARED, d_fd, 0));
+
+ if (d_map_base == reinterpret_cast(-1))
+ {
+ LOG(WARNING) << "Cannot map the FPGA acquisition module into user memory";
+ }
+
+ // sanity check : check test register
+ unsigned writeval = TEST_REG_SANITY_CHECK;
+ unsigned readval;
+ readval = fpga_acquisition::fpga_acquisition_test_register(writeval);
+ if (writeval != readval)
+ {
+ LOG(WARNING) << "Acquisition test register sanity check failed";
+ }
+ else
+ {
+ LOG(INFO) << "Acquisition test register sanity check success!";
+ }
+ fpga_acquisition::reset_acquisition();
+ DLOG(INFO) << "Acquisition FPGA class created";
+}
+
+
+fpga_acquisition::~fpga_acquisition()
+{
+ close_device();
+}
+
+
+bool fpga_acquisition::free()
+{
+ return true;
+}
+
+
+unsigned fpga_acquisition::fpga_acquisition_test_register(unsigned writeval)
+{
+ unsigned readval;
+ // write value to test register
+ d_map_base[15] = writeval;
+ // read value from test register
+ readval = d_map_base[15];
+ // return read value
+ return readval;
+}
+
+
+void fpga_acquisition::fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[])
+{
+ unsigned short local_code;
+ unsigned int k, tmp, tmp2;
+ unsigned int fft_data;
+ // clear memory address counter
+ d_map_base[4] = LOCAL_CODE_CLEAR_MEM;
+ // write local code
+ for (k = 0; k < d_vector_length; k++)
+ {
+ tmp = fft_local_code[k].real();
+ tmp2 = fft_local_code[k].imag();
+ local_code = (tmp & SELECT_LSB) | ((tmp2 * SHL_8_BITS) & SELECT_MSB); // put together the real part and the imaginary part
+ fft_data = MEM_LOCAL_CODE_WR_ENABLE | (local_code & SELECT_16_BITS);
+ d_map_base[4] = fft_data;
+ }
+}
+
+
+void fpga_acquisition::run_acquisition(void)
+{
+ // enable interrupts
+ int reenable = 1;
+ write(d_fd, reinterpret_cast(&reenable), sizeof(int));
+ // launch the acquisition process
+ d_map_base[6] = LAUNCH_ACQUISITION; // writing anything to reg 6 launches the acquisition process
+
+ int irq_count;
+ ssize_t nb;
+ // wait for interrupt
+ nb = read(d_fd, &irq_count, sizeof(irq_count));
+ if (nb != sizeof(irq_count))
+ {
+ printf("acquisition module Read failed to retrieve 4 bytes!\n");
+ printf("acquisition module Interrupt number %d\n", irq_count);
+ }
+}
+
+
+void fpga_acquisition::configure_acquisition()
+{
+ d_map_base[0] = d_select_queue;
+ d_map_base[1] = d_vector_length;
+ d_map_base[2] = d_nsamples;
+ d_map_base[5] = (int)log2((float)d_vector_length); // log2 FFTlength
+}
+
+
+void fpga_acquisition::set_phase_step(unsigned int doppler_index)
+{
+ float phase_step_rad_real;
+ float phase_step_rad_int_temp;
+ int32_t phase_step_rad_int;
+ int doppler = static_cast(-d_doppler_max) + d_doppler_step * doppler_index;
+ float phase_step_rad = GPS_TWO_PI * (d_freq + doppler) / static_cast(d_fs_in);
+ // The doppler step can never be outside the range -pi to +pi, otherwise there would be aliasing
+ // The FPGA expects phase_step_rad between -1 (-pi) to +1 (+pi)
+ // The FPGA also expects the phase to be negative since it produces cos(x) -j*sin(x)
+ // while the gnss-sdr software (volk_gnsssdr_s32f_sincos_32fc) generates cos(x) + j*sin(x)
+ phase_step_rad_real = phase_step_rad / (GPS_TWO_PI / 2);
+ // avoid saturation of the fixed point representation in the fpga
+ // (only the positive value can saturate due to the 2's complement representation)
+ if (phase_step_rad_real >= 1.0)
+ {
+ phase_step_rad_real = MAX_PHASE_STEP_RAD;
+ }
+ phase_step_rad_int_temp = phase_step_rad_real * POW_2_2; // * 2^2
+ phase_step_rad_int = (int32_t)(phase_step_rad_int_temp * (POW_2_29)); // * 2^29 (in total it makes x2^31 in two steps to avoid the warnings
+ d_map_base[3] = phase_step_rad_int;
+}
+
+
+void fpga_acquisition::read_acquisition_results(uint32_t *max_index,
+ float *max_magnitude, unsigned *initial_sample, float *power_sum)
+{
+ unsigned readval = 0;
+ readval = d_map_base[1];
+ *initial_sample = readval;
+ readval = d_map_base[2];
+ *max_magnitude = static_cast(readval);
+ readval = d_map_base[4];
+ *power_sum = static_cast(readval);
+ readval = d_map_base[3];
+ *max_index = readval;
+}
+
+
+void fpga_acquisition::block_samples()
+{
+ d_map_base[14] = 1; // block the samples
+}
+
+
+void fpga_acquisition::unblock_samples()
+{
+ d_map_base[14] = 0; // unblock the samples
+}
+
+
+void fpga_acquisition::close_device()
+{
+ unsigned *aux = const_cast(d_map_base);
+ if (munmap(static_cast(aux), PAGE_SIZE) == -1)
+ {
+ printf("Failed to unmap memory uio\n");
+ }
+ close(d_fd);
+}
+
+
+void fpga_acquisition::reset_acquisition(void)
+{
+ d_map_base[6] = RESET_ACQUISITION; // writing a 2 to d_map_base[6] resets the multicorrelator
+}
diff --git a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h b/src/algorithms/acquisition/libs/fpga_acquisition.h
similarity index 72%
rename from src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h
rename to src/algorithms/acquisition/libs/fpga_acquisition.h
index 40f8f37f2..88e6802b6 100644
--- a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h
+++ b/src/algorithms/acquisition/libs/fpga_acquisition.h
@@ -1,16 +1,16 @@
/*!
- * \file fpga_acquisition_8sc.h
- * \brief High optimized FPGA vector correlator class for lv_16sc_t (short int complex).
+ * \file fpga_acquisition.h
+ * \brief High optimized FPGA vector correlator class
* \authors
- *
Marc Majoral, 2017. mmajoral(at)cttc.cat
+ *
Marc Majoral, 2018. mmajoral(at)cttc.cat
*
*
- * Class that controls and executes a high optimized vector correlator
- * class in the FPGA
+ * Class that controls and executes a high optimized acquisition HW
+ * accelerator in the FPGA
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -28,33 +28,33 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
-#ifndef GNSS_SDR_FPGA_ACQUISITION_8SC_H_
-#define GNSS_SDR_FPGA_ACQUISITION_8SC_H_
+#ifndef GNSS_SDR_FPGA_ACQUISITION_H_
+#define GNSS_SDR_FPGA_ACQUISITION_H_
-#include
-
-#include
#include
+#include
/*!
* \brief Class that implements carrier wipe-off and correlators.
*/
-class gps_fpga_acquisition_8sc
+class fpga_acquisition
{
public:
- gps_fpga_acquisition_8sc(std::string device_name,
- unsigned int vector_length, unsigned int nsamples,
+ fpga_acquisition(std::string device_name,
+ unsigned int nsamples,
+ unsigned int doppler_max,
unsigned int nsamples_total, long fs_in, long freq,
- unsigned int sampled_ms, unsigned select_queue);
- ~gps_fpga_acquisition_8sc();
+ unsigned int sampled_ms, unsigned select_queue,
+ lv_16sc_t *all_fft_codes);
+ ~fpga_acquisition();
bool init();
bool set_local_code(
- unsigned int PRN); //int code_length_chips, const lv_16sc_t* local_code_in, float *shifts_chips);
+ unsigned int PRN);
bool free();
void run_acquisition(void);
void set_phase_step(unsigned int doppler_index);
@@ -62,8 +62,6 @@ public:
unsigned *initial_sample, float *power_sum);
void block_samples();
void unblock_samples();
- void open_device();
- void close_device();
/*!
* \brief Set maximum Doppler grid search
@@ -87,22 +85,23 @@ private:
long d_freq;
long d_fs_in;
gr::fft::fft_complex *d_fft_if; // function used to run the fft of the local codes
-
// data related to the hardware module and the driver
int d_fd; // driver descriptor
volatile unsigned *d_map_base; // driver memory map
lv_16sc_t *d_all_fft_codes; // memory that contains all the code ffts
- unsigned int d_vector_length; // number of samples including padding and number of ms
+ unsigned int d_vector_length; // number of samples incluing padding and number of ms
+ unsigned int d_nsamples_total; // number of samples including padding
unsigned int d_nsamples; // number of samples not including padding
unsigned int d_select_queue; // queue selection
std::string d_device_name; // HW device name
unsigned int d_doppler_max; // max doppler
unsigned int d_doppler_step; // doppler step
-
// FPGA private functions
unsigned fpga_acquisition_test_register(unsigned writeval);
void fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[]);
void configure_acquisition();
+ void reset_acquisition(void);
+ void close_device();
};
-#endif /* GNSS_SDR_FPGA_MULTICORRELATOR_H_ */
+#endif /* GNSS_SDR_FPGA_ACQUISITION_H_ */
diff --git a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc b/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc
deleted file mode 100644
index b1a855a11..000000000
--- a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc
+++ /dev/null
@@ -1,332 +0,0 @@
-/*!
- * \file gps_fpga_acquisition_8sc.cc
- * \brief High optimized FPGA vector correlator class
- * \authors
- *
Marc Majoral, 2017. mmajoral(at)cttc.cat
- *
- *
- * Class that controls and executes a high optimized vector correlator
- * class in the FPGA
- *
- * -------------------------------------------------------------------------
- *
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
- *
- * GNSS-SDR is a software defined Global Navigation
- * Satellite Systems receiver
- *
- * This file is part of GNSS-SDR.
- *
- * GNSS-SDR is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GNSS-SDR is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
- *
- * -------------------------------------------------------------------------
- */
-
-#include "gps_fpga_acquisition_8sc.h"
-#include "gps_sdr_signal_processing.h"
-#include "GPS_L1_CA.h"
-#include
-#include
-
-// allocate memory dynamically
-#include
-
-// libraries used by DMA test code and GIPO test code
-#include
-#include
-#include
-#include
-
-// libraries used by DMA test code
-#include
-#include
-#include
-
-// libraries used by GPIO test code
-#include
-#include
-#include
-
-// logging
-#include
-
-
-#define PAGE_SIZE 0x10000
-#define MAX_PHASE_STEP_RAD 0.999999999534339 // 1 - pow(2,-31);
-#define NUM_PRNs 32
-#define TEST_REGISTER_ACQ_WRITEVAL 0x55AA
-
-bool gps_fpga_acquisition_8sc::init()
-{
- // configure the acquisition with the main initialization values
- gps_fpga_acquisition_8sc::configure_acquisition();
- return true;
-}
-
-bool gps_fpga_acquisition_8sc::set_local_code(unsigned int PRN)
-{
- // select the code with the chosen PRN
- gps_fpga_acquisition_8sc::fpga_configure_acquisition_local_code(
- &d_all_fft_codes[d_vector_length * PRN]);
- return true;
-}
-
-gps_fpga_acquisition_8sc::gps_fpga_acquisition_8sc(std::string device_name,
- unsigned int vector_length, unsigned int nsamples,
- unsigned int nsamples_total, long fs_in, long freq,
- unsigned int sampled_ms, unsigned select_queue)
-{
- // initial values
- d_device_name = device_name;
- d_freq = freq;
- d_fs_in = fs_in;
- d_vector_length = vector_length;
- d_nsamples = nsamples; // number of samples not including padding
- d_select_queue = select_queue;
-
- d_doppler_max = 0;
- d_doppler_step = 0;
- d_fd = 0; // driver descriptor
- d_map_base = nullptr; // driver memory map
-
- // compute all the possible code ffts
-
- // Direct FFT
- d_fft_if = new gr::fft::fft_complex(vector_length, true);
-
- // allocate memory to compute all the PRNs
- // and compute all the possible codes
- std::complex* code = new std::complex[nsamples_total]; // buffer for the local code
- std::complex* code_total = new gr_complex[vector_length]; // buffer for the local code repeat every number of ms
-
- gr_complex* d_fft_codes_padded = static_cast(volk_gnsssdr_malloc(vector_length * sizeof(gr_complex), volk_gnsssdr_get_alignment()));
-
- d_all_fft_codes = new lv_16sc_t[vector_length * NUM_PRNs]; // memory containing all the possible fft codes for PRN 0 to 32
-
- float max; // temporary maxima search
-
- for (unsigned int PRN = 0; PRN < NUM_PRNs; PRN++)
- {
- gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in, 0); // generate PRN code
-
- for (unsigned int i = 0; i < sampled_ms; i++)
- {
- memcpy(&(code_total[i * nsamples_total]), code, sizeof(gr_complex) * nsamples_total); // repeat for each ms
- }
-
- int offset = 0;
-
- memcpy(d_fft_if->get_inbuf() + offset, code_total, sizeof(gr_complex) * vector_length); // copy to FFT buffer
-
- d_fft_if->execute(); // Run the FFT of local code
-
- volk_32fc_conjugate_32fc(d_fft_codes_padded, d_fft_if->get_outbuf(), vector_length); // conjugate values
-
- max = 0; // initialize maximum value
-
- for (unsigned int i = 0; i < vector_length; i++) // search for maxima
- {
- if (std::abs(d_fft_codes_padded[i].real()) > max)
- {
- max = std::abs(d_fft_codes_padded[i].real());
- }
- if (std::abs(d_fft_codes_padded[i].imag()) > max)
- {
- max = std::abs(d_fft_codes_padded[i].imag());
- }
- }
-
- for (unsigned int i = 0; i < vector_length; i++) // map the FFT to the dynamic range of the fixed point values an copy to buffer containing all FFTs
- {
- d_all_fft_codes[i + vector_length * PRN] = lv_16sc_t(static_cast(d_fft_codes_padded[i].real() * (pow(2, 7) - 1) / max),
- static_cast(d_fft_codes_padded[i].imag() * (pow(2, 7) - 1) / max));
- }
- }
-
- // temporary buffers that we can delete
- delete[] code;
- delete[] code_total;
- delete d_fft_if;
- delete[] d_fft_codes_padded;
-}
-
-
-gps_fpga_acquisition_8sc::~gps_fpga_acquisition_8sc()
-{
- delete[] d_all_fft_codes;
-}
-
-
-bool gps_fpga_acquisition_8sc::free()
-{
- return true;
-}
-
-
-unsigned gps_fpga_acquisition_8sc::fpga_acquisition_test_register(unsigned writeval)
-{
- unsigned readval;
- // write value to test register
- d_map_base[15] = writeval;
- // read value from test register
- readval = d_map_base[15];
- // return read value
- return readval;
-}
-
-
-void gps_fpga_acquisition_8sc::fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[])
-{
- short int local_code;
- unsigned int k, tmp, tmp2;
-
- // clear memory address counter
- d_map_base[4] = 0x10000000;
- for (k = 0; k < d_vector_length; k++)
- {
- tmp = fft_local_code[k].real();
- tmp2 = fft_local_code[k].imag();
- local_code = (tmp & 0xFF) | ((tmp2 * 256) & 0xFF00); // put together the real part and the imaginary part
- d_map_base[4] = 0x0C000000 | (local_code & 0xFFFF);
- }
-}
-
-
-void gps_fpga_acquisition_8sc::run_acquisition(void)
-{
- // enable interrupts
- int reenable = 1;
- write(d_fd, reinterpret_cast(&reenable), sizeof(int));
-
- d_map_base[5] = 0; // writing anything to reg 4 launches the acquisition process
-
- int irq_count;
- ssize_t nb;
- // wait for interrupt
- nb = read(d_fd, &irq_count, sizeof(irq_count));
- if (nb != sizeof(irq_count))
- {
- printf("Tracking_module Read failed to retrieve 4 bytes!\n");
- printf("Tracking_module Interrupt number %d\n", irq_count);
- }
-}
-
-
-void gps_fpga_acquisition_8sc::configure_acquisition()
-{
- d_map_base[0] = d_select_queue;
- d_map_base[1] = d_vector_length;
- d_map_base[2] = d_nsamples;
-}
-
-
-void gps_fpga_acquisition_8sc::set_phase_step(unsigned int doppler_index)
-{
- float phase_step_rad_real;
- float phase_step_rad_int_temp;
- int32_t phase_step_rad_int;
-
- int doppler = static_cast(-d_doppler_max) + d_doppler_step * doppler_index;
- float phase_step_rad = GPS_TWO_PI * (d_freq + doppler) / static_cast(d_fs_in);
- // The doppler step can never be outside the range -pi to +pi, otherwise there would be aliasing
- // The FPGA expects phase_step_rad between -1 (-pi) to +1 (+pi)
- // The FPGA also expects the phase to be negative since it produces cos(x) -j*sin(x)
- // while the gnss-sdr software (volk_gnsssdr_s32f_sincos_32fc) generates cos(x) + j*sin(x)
- phase_step_rad_real = phase_step_rad / (GPS_TWO_PI / 2);
- // avoid saturation of the fixed point representation in the fpga
- // (only the positive value can saturate due to the 2's complement representation)
- if (phase_step_rad_real == 1.0)
- {
- phase_step_rad_real = MAX_PHASE_STEP_RAD;
- }
- phase_step_rad_int_temp = phase_step_rad_real * 4; // * 2^2
- phase_step_rad_int = static_cast(phase_step_rad_int_temp * (536870912)); // * 2^29 (in total it makes x2^31 in two steps to avoid the warnings
-
- d_map_base[3] = phase_step_rad_int;
-}
-
-
-void gps_fpga_acquisition_8sc::read_acquisition_results(uint32_t* max_index,
- float* max_magnitude, unsigned* initial_sample, float* power_sum)
-{
- unsigned readval = 0;
- readval = d_map_base[0];
- readval = d_map_base[1];
- *initial_sample = readval;
- readval = d_map_base[2];
- *max_magnitude = static_cast(readval);
- readval = d_map_base[4];
- *power_sum = static_cast(readval);
- readval = d_map_base[3];
- *max_index = readval;
-}
-
-
-void gps_fpga_acquisition_8sc::block_samples()
-{
- d_map_base[14] = 1; // block the samples
-}
-
-
-void gps_fpga_acquisition_8sc::unblock_samples()
-{
- d_map_base[14] = 0; // unblock the samples
-}
-
-
-void gps_fpga_acquisition_8sc::open_device()
-{
- if ((d_fd = open(d_device_name.c_str(), O_RDWR | O_SYNC)) == -1)
- {
- LOG(WARNING) << "Cannot open deviceio" << d_device_name;
- }
-
- d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE,
- PROT_READ | PROT_WRITE, MAP_SHARED, d_fd, 0));
-
- if (d_map_base == reinterpret_cast(-1))
- {
- LOG(WARNING) << "Cannot map the FPGA acquisition module into user memory";
- }
-
- // sanity check : check test register
- // we only nee to do this when the class is created
- // but the device is not opened yet when the class is create
- // because we need to open and close the device every time we run an acquisition
- // since the same device may be used by more than one class (gps acquisition, galileo
- // acquisition, etc ..)
- unsigned writeval = TEST_REGISTER_ACQ_WRITEVAL;
- unsigned readval;
- readval = gps_fpga_acquisition_8sc::fpga_acquisition_test_register(writeval);
-
- if (writeval != readval)
- {
- LOG(WARNING) << "Acquisition test register sanity check failed";
- }
- else
- {
- LOG(INFO) << "Acquisition test register sanity check success !";
- }
-}
-
-
-void gps_fpga_acquisition_8sc::close_device()
-{
- unsigned* aux = const_cast(d_map_base);
- if (munmap(static_cast(aux), PAGE_SIZE) == -1)
- {
- printf("Failed to unmap memory uio\n");
- }
- close(d_fd);
-}
diff --git a/src/algorithms/channel/CMakeLists.txt b/src/algorithms/channel/CMakeLists.txt
index 053a2b67f..077b74808 100644
--- a/src/algorithms/channel/CMakeLists.txt
+++ b/src/algorithms/channel/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(adapters)
diff --git a/src/algorithms/channel/adapters/CMakeLists.txt b/src/algorithms/channel/adapters/CMakeLists.txt
index b2d74748e..a6d5245cd 100644
--- a/src/algorithms/channel/adapters/CMakeLists.txt
+++ b/src/algorithms/channel/adapters/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
set(CHANNEL_ADAPTER_SOURCES channel.cc)
diff --git a/src/algorithms/channel/adapters/channel.cc b/src/algorithms/channel/adapters/channel.cc
index f7cec1949..480212e3a 100644
--- a/src/algorithms/channel/adapters/channel.cc
+++ b/src/algorithms/channel/adapters/channel.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/channel/adapters/channel.h b/src/algorithms/channel/adapters/channel.h
index aeec00925..d82ad0870 100644
--- a/src/algorithms/channel/adapters/channel.h
+++ b/src/algorithms/channel/adapters/channel.h
@@ -9,7 +9,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -27,7 +27,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/channel/libs/CMakeLists.txt b/src/algorithms/channel/libs/CMakeLists.txt
index 7dddaa5e3..ffbc21a42 100644
--- a/src/algorithms/channel/libs/CMakeLists.txt
+++ b/src/algorithms/channel/libs/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
set(CHANNEL_FSM_SOURCES
diff --git a/src/algorithms/channel/libs/channel_fsm.cc b/src/algorithms/channel/libs/channel_fsm.cc
index 310a784ef..5ac015f2d 100644
--- a/src/algorithms/channel/libs/channel_fsm.cc
+++ b/src/algorithms/channel/libs/channel_fsm.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -33,6 +33,7 @@
#include "control_message_factory.h"
#include
+using google::LogMessage;
ChannelFsm::ChannelFsm()
{
@@ -135,35 +136,41 @@ bool ChannelFsm::Event_failed_tracking_standby()
}
}
+
void ChannelFsm::set_acquisition(std::shared_ptr acquisition)
{
std::lock_guard lk(mx);
acq_ = acquisition;
}
+
void ChannelFsm::set_tracking(std::shared_ptr tracking)
{
std::lock_guard lk(mx);
trk_ = tracking;
}
+
void ChannelFsm::set_queue(gr::msg_queue::sptr queue)
{
std::lock_guard lk(mx);
queue_ = queue;
}
+
void ChannelFsm::set_channel(unsigned int channel)
{
std::lock_guard lk(mx);
channel_ = channel;
}
+
void ChannelFsm::start_acquisition()
{
acq_->reset();
}
+
void ChannelFsm::start_tracking()
{
trk_->start_tracking();
@@ -174,6 +181,7 @@ void ChannelFsm::start_tracking()
}
}
+
void ChannelFsm::request_satellite()
{
std::unique_ptr cmf(new ControlMessageFactory());
@@ -183,6 +191,7 @@ void ChannelFsm::request_satellite()
}
}
+
void ChannelFsm::notify_stop_tracking()
{
std::unique_ptr cmf(new ControlMessageFactory());
diff --git a/src/algorithms/channel/libs/channel_fsm.h b/src/algorithms/channel/libs/channel_fsm.h
index bb75ad762..7489ca171 100644
--- a/src/algorithms/channel/libs/channel_fsm.h
+++ b/src/algorithms/channel/libs/channel_fsm.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/channel/libs/channel_msg_receiver_cc.cc b/src/algorithms/channel/libs/channel_msg_receiver_cc.cc
index 9b1056bd6..ca4105f8e 100644
--- a/src/algorithms/channel/libs/channel_msg_receiver_cc.cc
+++ b/src/algorithms/channel/libs/channel_msg_receiver_cc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -42,6 +42,7 @@ channel_msg_receiver_cc_sptr channel_msg_receiver_make_cc(std::shared_ptrEvent_valid_acquisition();
break;
- case 2: //negative acquisition
+ case 2: // negative acquisition
if (d_repeat == true)
{
result = d_channel_fsm->Event_failed_acquisition_repeat();
diff --git a/src/algorithms/channel/libs/channel_msg_receiver_cc.h b/src/algorithms/channel/libs/channel_msg_receiver_cc.h
index 63da6efb9..7fc172923 100644
--- a/src/algorithms/channel/libs/channel_msg_receiver_cc.h
+++ b/src/algorithms/channel/libs/channel_msg_receiver_cc.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/conditioner/CMakeLists.txt b/src/algorithms/conditioner/CMakeLists.txt
index c0a4a7a48..de941b536 100644
--- a/src/algorithms/conditioner/CMakeLists.txt
+++ b/src/algorithms/conditioner/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(adapters)
diff --git a/src/algorithms/conditioner/adapters/CMakeLists.txt b/src/algorithms/conditioner/adapters/CMakeLists.txt
index f23f3b4f2..cb83608aa 100644
--- a/src/algorithms/conditioner/adapters/CMakeLists.txt
+++ b/src/algorithms/conditioner/adapters/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
diff --git a/src/algorithms/conditioner/adapters/array_signal_conditioner.cc b/src/algorithms/conditioner/adapters/array_signal_conditioner.cc
index 91cf3abba..098a9e365 100644
--- a/src/algorithms/conditioner/adapters/array_signal_conditioner.cc
+++ b/src/algorithms/conditioner/adapters/array_signal_conditioner.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -37,12 +37,15 @@ using google::LogMessage;
// Constructor
ArraySignalConditioner::ArraySignalConditioner(ConfigurationInterface *configuration,
- std::shared_ptr data_type_adapt, std::shared_ptr in_filt,
- std::shared_ptr res, std::string role, std::string implementation) : data_type_adapt_(data_type_adapt),
- in_filt_(in_filt),
- res_(res),
- role_(role),
- implementation_(implementation)
+ std::shared_ptr data_type_adapt,
+ std::shared_ptr in_filt,
+ std::shared_ptr res,
+ std::string role,
+ std::string implementation) : data_type_adapt_(data_type_adapt),
+ in_filt_(in_filt),
+ res_(res),
+ role_(role),
+ implementation_(implementation)
{
connected_ = false;
if (configuration)
diff --git a/src/algorithms/conditioner/adapters/array_signal_conditioner.h b/src/algorithms/conditioner/adapters/array_signal_conditioner.h
index ebe8f813d..d3f1c9382 100644
--- a/src/algorithms/conditioner/adapters/array_signal_conditioner.h
+++ b/src/algorithms/conditioner/adapters/array_signal_conditioner.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/conditioner/adapters/signal_conditioner.cc b/src/algorithms/conditioner/adapters/signal_conditioner.cc
index b29a56c99..72034c375 100644
--- a/src/algorithms/conditioner/adapters/signal_conditioner.cc
+++ b/src/algorithms/conditioner/adapters/signal_conditioner.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -37,12 +37,15 @@ using google::LogMessage;
// Constructor
SignalConditioner::SignalConditioner(ConfigurationInterface *configuration,
- std::shared_ptr data_type_adapt, std::shared_ptr in_filt,
- std::shared_ptr res, std::string role, std::string implementation) : data_type_adapt_(data_type_adapt),
- in_filt_(in_filt),
- res_(res),
- role_(role),
- implementation_(implementation)
+ std::shared_ptr data_type_adapt,
+ std::shared_ptr in_filt,
+ std::shared_ptr res,
+ std::string role,
+ std::string implementation) : data_type_adapt_(data_type_adapt),
+ in_filt_(in_filt),
+ res_(res),
+ role_(role),
+ implementation_(implementation)
{
connected_ = false;
if (configuration)
@@ -101,6 +104,7 @@ gr::basic_block_sptr SignalConditioner::get_left_block()
return data_type_adapt_->get_left_block();
}
+
gr::basic_block_sptr SignalConditioner::get_right_block()
{
return res_->get_right_block();
diff --git a/src/algorithms/conditioner/adapters/signal_conditioner.h b/src/algorithms/conditioner/adapters/signal_conditioner.h
index 60300b3ec..85dc8396c 100644
--- a/src/algorithms/conditioner/adapters/signal_conditioner.h
+++ b/src/algorithms/conditioner/adapters/signal_conditioner.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/CMakeLists.txt b/src/algorithms/data_type_adapter/CMakeLists.txt
index 5724f1d42..6037ad61f 100644
--- a/src/algorithms/data_type_adapter/CMakeLists.txt
+++ b/src/algorithms/data_type_adapter/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -14,7 +14,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(adapters)
diff --git a/src/algorithms/data_type_adapter/adapters/CMakeLists.txt b/src/algorithms/data_type_adapter/adapters/CMakeLists.txt
index d18c83b04..836e2bfd8 100644
--- a/src/algorithms/data_type_adapter/adapters/CMakeLists.txt
+++ b/src/algorithms/data_type_adapter/adapters/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
diff --git a/src/algorithms/data_type_adapter/adapters/byte_to_short.cc b/src/algorithms/data_type_adapter/adapters/byte_to_short.cc
index 11373a58d..da842f7b7 100644
--- a/src/algorithms/data_type_adapter/adapters/byte_to_short.cc
+++ b/src/algorithms/data_type_adapter/adapters/byte_to_short.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/byte_to_short.h b/src/algorithms/data_type_adapter/adapters/byte_to_short.h
index 023c5710e..9b90f1d3b 100644
--- a/src/algorithms/data_type_adapter/adapters/byte_to_short.h
+++ b/src/algorithms/data_type_adapter/adapters/byte_to_short.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc
index 0bbced35e..1e75bccaa 100644
--- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc
+++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h
index 8b4f2ae06..7f0b83483 100644
--- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h
+++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc
index ed926ee9f..5862ee71d 100644
--- a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc
+++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h
index 3c71bf660..c768e4b46 100644
--- a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h
+++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc
index 7db7fef14..353004f9f 100644
--- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc
+++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h
index a7d6394d1..cc94b866f 100644
--- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h
+++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc
index 8e79a25c7..af29494c0 100644
--- a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc
+++ b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h
index 53d9a0d8a..8a60afa15 100644
--- a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h
+++ b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc
index f0e294f66..225f0d6a9 100644
--- a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc
+++ b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h
index df8f68a06..382ce7716 100644
--- a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h
+++ b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt b/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt
index afb7a12d7..872dabfcf 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc
index 69a7987dd..f41662ed7 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h
index 4e37602ed..c9ce17b4a 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc
index 7c154f820..c8b288f9b 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h
index 88f1cc424..5eab0f314 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc
index ddad5165f..fe4106ea8 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h
index 64d1297bf..10287459a 100644
--- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h
+++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/CMakeLists.txt b/src/algorithms/input_filter/CMakeLists.txt
index 20a0f5449..64cb2a571 100644
--- a/src/algorithms/input_filter/CMakeLists.txt
+++ b/src/algorithms/input_filter/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(adapters)
diff --git a/src/algorithms/input_filter/adapters/CMakeLists.txt b/src/algorithms/input_filter/adapters/CMakeLists.txt
index 267ad9062..f12efd609 100644
--- a/src/algorithms/input_filter/adapters/CMakeLists.txt
+++ b/src/algorithms/input_filter/adapters/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
set(INPUT_FILTER_ADAPTER_SOURCES
diff --git a/src/algorithms/input_filter/adapters/beamformer_filter.cc b/src/algorithms/input_filter/adapters/beamformer_filter.cc
index 683673111..f65034325 100644
--- a/src/algorithms/input_filter/adapters/beamformer_filter.cc
+++ b/src/algorithms/input_filter/adapters/beamformer_filter.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/beamformer_filter.h b/src/algorithms/input_filter/adapters/beamformer_filter.h
index 6f02ba4ef..78fec45ca 100644
--- a/src/algorithms/input_filter/adapters/beamformer_filter.h
+++ b/src/algorithms/input_filter/adapters/beamformer_filter.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/fir_filter.cc b/src/algorithms/input_filter/adapters/fir_filter.cc
index 4358bcccd..13775e2a1 100644
--- a/src/algorithms/input_filter/adapters/fir_filter.cc
+++ b/src/algorithms/input_filter/adapters/fir_filter.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/fir_filter.h b/src/algorithms/input_filter/adapters/fir_filter.h
index d5318b9d2..05c494b5f 100644
--- a/src/algorithms/input_filter/adapters/fir_filter.h
+++ b/src/algorithms/input_filter/adapters/fir_filter.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc
index e8ef0a964..8503b8ce0 100644
--- a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc
+++ b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h
index 02d49971f..d7549d9ab 100644
--- a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h
+++ b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/notch_filter.cc b/src/algorithms/input_filter/adapters/notch_filter.cc
index 9034c5fcf..a83372d17 100644
--- a/src/algorithms/input_filter/adapters/notch_filter.cc
+++ b/src/algorithms/input_filter/adapters/notch_filter.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/notch_filter.h b/src/algorithms/input_filter/adapters/notch_filter.h
index cb44a8059..3bdf5c688 100644
--- a/src/algorithms/input_filter/adapters/notch_filter.h
+++ b/src/algorithms/input_filter/adapters/notch_filter.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/notch_filter_lite.cc b/src/algorithms/input_filter/adapters/notch_filter_lite.cc
index 22e536c22..dea6ec7c7 100644
--- a/src/algorithms/input_filter/adapters/notch_filter_lite.cc
+++ b/src/algorithms/input_filter/adapters/notch_filter_lite.cc
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/notch_filter_lite.h b/src/algorithms/input_filter/adapters/notch_filter_lite.h
index 9442b66cd..901326579 100644
--- a/src/algorithms/input_filter/adapters/notch_filter_lite.h
+++ b/src/algorithms/input_filter/adapters/notch_filter_lite.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc b/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc
index d2d5615c1..031a0a035 100644
--- a/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc
+++ b/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc
@@ -5,7 +5,7 @@
* Antonio Ramos 2017
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/adapters/pulse_blanking_filter.h b/src/algorithms/input_filter/adapters/pulse_blanking_filter.h
index c1e521222..0d9d17cb4 100644
--- a/src/algorithms/input_filter/adapters/pulse_blanking_filter.h
+++ b/src/algorithms/input_filter/adapters/pulse_blanking_filter.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt b/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt
index caac50136..698c828dd 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
diff --git a/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc b/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc
index 4d0a0c2e5..afd217338 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc
@@ -5,7 +5,7 @@
* \author Javier Arribas jarribas (at) cttc.es
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/gnuradio_blocks/beamformer.h b/src/algorithms/input_filter/gnuradio_blocks/beamformer.h
index 392d0b94e..8236b11d3 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/beamformer.h
+++ b/src/algorithms/input_filter/gnuradio_blocks/beamformer.h
@@ -5,7 +5,7 @@
* \author Javier Arribas jarribas (at) cttc.es
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc
index 8ada10c1f..5e7870cd4 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -45,9 +45,13 @@ notch_sptr make_notch_filter(float pfa, float p_c_factor,
}
-Notch::Notch(float pfa, float p_c_factor, int length_, int n_segments_est, int n_segments_reset) : gr::block("Notch",
- gr::io_signature::make(1, 1, sizeof(gr_complex)),
- gr::io_signature::make(1, 1, sizeof(gr_complex)))
+Notch::Notch(float pfa,
+ float p_c_factor,
+ int length_,
+ int n_segments_est,
+ int n_segments_reset) : gr::block("Notch",
+ gr::io_signature::make(1, 1, sizeof(gr_complex)),
+ gr::io_signature::make(1, 1, sizeof(gr_complex)))
{
const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
set_alignment(std::max(1, alignment_multiple));
@@ -79,6 +83,7 @@ Notch::~Notch()
volk_free(power_spect);
}
+
void Notch::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
{
for (unsigned int aux = 0; aux < ninput_items_required.size(); aux++)
@@ -87,6 +92,7 @@ void Notch::forecast(int noutput_items __attribute__((unused)), gr_vector_int &n
}
}
+
int Notch::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
{
diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h
index b8e0a5880..160494346 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h
+++ b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc
index e55cc0e29..41d684a2a 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -43,9 +43,15 @@ notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int length_,
return notch_lite_sptr(new NotchLite(p_c_factor, pfa, length_, n_segments_est, n_segments_reset, n_segments_coeff));
}
-NotchLite::NotchLite(float p_c_factor, float pfa, int length_, int n_segments_est, int n_segments_reset, int n_segments_coeff) : gr::block("NotchLite",
- gr::io_signature::make(1, 1, sizeof(gr_complex)),
- gr::io_signature::make(1, 1, sizeof(gr_complex)))
+
+NotchLite::NotchLite(float p_c_factor,
+ float pfa,
+ int length_,
+ int n_segments_est,
+ int n_segments_reset,
+ int n_segments_coeff) : gr::block("NotchLite",
+ gr::io_signature::make(1, 1, sizeof(gr_complex)),
+ gr::io_signature::make(1, 1, sizeof(gr_complex)))
{
const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
set_alignment(std::max(1, alignment_multiple));
@@ -74,11 +80,13 @@ NotchLite::NotchLite(float p_c_factor, float pfa, int length_, int n_segments_es
d_fft = std::unique_ptr(new gr::fft::fft_complex(length_, true));
}
+
NotchLite::~NotchLite()
{
volk_free(power_spect);
}
+
void NotchLite::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
{
for (unsigned int aux = 0; aux < ninput_items_required.size(); aux++)
@@ -87,6 +95,7 @@ void NotchLite::forecast(int noutput_items __attribute__((unused)), gr_vector_in
}
}
+
int NotchLite::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
{
diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h
index c2720180e..531bedc13 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h
+++ b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc
index 1a6a0828e..4a65097d0 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc
@@ -5,7 +5,7 @@
* Antonio Ramos (antonio.ramosdet(at)gmail.com)
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -44,9 +44,12 @@ pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int length_,
}
-pulse_blanking_cc::pulse_blanking_cc(float pfa, int length_, int n_segments_est, int n_segments_reset) : gr::block("pulse_blanking_cc",
- gr::io_signature::make(1, 1, sizeof(gr_complex)),
- gr::io_signature::make(1, 1, sizeof(gr_complex)))
+pulse_blanking_cc::pulse_blanking_cc(float pfa,
+ int length_,
+ int n_segments_est,
+ int n_segments_reset) : gr::block("pulse_blanking_cc",
+ gr::io_signature::make(1, 1, sizeof(gr_complex)),
+ gr::io_signature::make(1, 1, sizeof(gr_complex)))
{
const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
set_alignment(std::max(1, alignment_multiple));
@@ -73,6 +76,7 @@ pulse_blanking_cc::~pulse_blanking_cc()
volk_free(zeros_);
}
+
void pulse_blanking_cc::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
{
for (unsigned int aux = 0; aux < ninput_items_required.size(); aux++)
@@ -81,6 +85,7 @@ void pulse_blanking_cc::forecast(int noutput_items __attribute__((unused)), gr_v
}
}
+
int pulse_blanking_cc::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
{
diff --git a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h
index 32f6eaf27..62e8ee0a7 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h
+++ b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h
@@ -5,7 +5,7 @@
* Antonio Ramos (antonio.ramosdet(at)gmail.com)
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/CMakeLists.txt b/src/algorithms/libs/CMakeLists.txt
index ac182801e..bdce5d1cf 100644
--- a/src/algorithms/libs/CMakeLists.txt
+++ b/src/algorithms/libs/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,61 +13,86 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_subdirectory(rtklib)
-set(GNSS_SPLIBS_SOURCES
- gps_l2c_signal.cc
- gps_l5_signal.cc
- galileo_e1_signal_processing.cc
- gnss_sdr_valve.cc
- gnss_sdr_sample_counter.cc
- gnss_signal_processing.cc
- gps_sdr_signal_processing.cc
- glonass_l1_signal_processing.cc
- glonass_l2_signal_processing.cc
- pass_through.cc
- galileo_e5_signal_processing.cc
- complex_byte_to_float_x2.cc
- byte_x2_to_complex_byte.cc
- cshort_to_float_x2.cc
- short_x2_to_cshort.cc
- complex_float_to_complex_byte.cc
- conjugate_cc.cc
- conjugate_sc.cc
- conjugate_ic.cc
-)
+if(ENABLE_FPGA)
+ set(GNSS_SPLIBS_SOURCES
+ gps_l2c_signal.cc
+ gps_l5_signal.cc
+ galileo_e1_signal_processing.cc
+ gnss_sdr_valve.cc
+ gnss_sdr_sample_counter.cc
+ gnss_sdr_time_counter.cc
+ gnss_signal_processing.cc
+ gps_sdr_signal_processing.cc
+ glonass_l1_signal_processing.cc
+ glonass_l2_signal_processing.cc
+ pass_through.cc
+ galileo_e5_signal_processing.cc
+ complex_byte_to_float_x2.cc
+ byte_x2_to_complex_byte.cc
+ cshort_to_float_x2.cc
+ short_x2_to_cshort.cc
+ complex_float_to_complex_byte.cc
+ conjugate_cc.cc
+ conjugate_sc.cc
+ conjugate_ic.cc
+ )
+else(ENABLE_FPGA)
+ set(GNSS_SPLIBS_SOURCES
+ gps_l2c_signal.cc
+ gps_l5_signal.cc
+ galileo_e1_signal_processing.cc
+ gnss_sdr_valve.cc
+ gnss_sdr_sample_counter.cc
+ gnss_signal_processing.cc
+ gps_sdr_signal_processing.cc
+ glonass_l1_signal_processing.cc
+ glonass_l2_signal_processing.cc
+ pass_through.cc
+ galileo_e5_signal_processing.cc
+ complex_byte_to_float_x2.cc
+ byte_x2_to_complex_byte.cc
+ cshort_to_float_x2.cc
+ short_x2_to_cshort.cc
+ complex_float_to_complex_byte.cc
+ conjugate_cc.cc
+ conjugate_sc.cc
+ conjugate_ic.cc
+ )
+endif(ENABLE_FPGA)
if(OPENCL_FOUND)
set(GNSS_SPLIBS_SOURCES ${GNSS_SPLIBS_SOURCES}
- opencl/fft_execute.cc # Needs OpenCL
- opencl/fft_setup.cc # Needs OpenCL
- opencl/fft_kernelstring.cc # Needs OpenCL
- )
+ opencl/fft_execute.cc # Needs OpenCL
+ opencl/fft_setup.cc # Needs OpenCL
+ opencl/fft_kernelstring.cc # Needs OpenCL
+ )
endif(OPENCL_FOUND)
include_directories(
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_SOURCE_DIR}/src/core/system_parameters
- ${CMAKE_SOURCE_DIR}/src/core/receiver
- ${CMAKE_SOURCE_DIR}/src/core/interfaces
- ${Boost_INCLUDE_DIRS}
- ${GLOG_INCLUDE_DIRS}
- ${GFlags_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_INCLUDE_DIRS}
- ${GNURADIO_BLOCKS_INCLUDE_DIRS}
- ${VOLK_INCLUDE_DIRS}
- ${VOLK_GNSSSDR_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/src/core/system_parameters
+ ${CMAKE_SOURCE_DIR}/src/core/receiver
+ ${CMAKE_SOURCE_DIR}/src/core/interfaces
+ ${Boost_INCLUDE_DIRS}
+ ${GLOG_INCLUDE_DIRS}
+ ${GFlags_INCLUDE_DIRS}
+ ${GNURADIO_RUNTIME_INCLUDE_DIRS}
+ ${GNURADIO_BLOCKS_INCLUDE_DIRS}
+ ${VOLK_INCLUDE_DIRS}
+ ${VOLK_GNSSSDR_INCLUDE_DIRS}
)
if(OPENCL_FOUND)
include_directories( ${OPENCL_INCLUDE_DIRS} )
if(OS_IS_MACOSX)
- set(OPT_LIBRARIES ${OPT_LIBRARIES} "-framework OpenCL")
+ set(OPT_LIBRARIES ${OPT_LIBRARIES} "-framework OpenCL")
else(OS_IS_MACOSX)
- set(OPT_LIBRARIES ${OPT_LIBRARIES} ${OPENCL_LIBRARIES})
+ set(OPT_LIBRARIES ${OPT_LIBRARIES} ${OPENCL_LIBRARIES})
endif(OS_IS_MACOSX)
endif(OPENCL_FOUND)
@@ -80,14 +105,14 @@ add_library(gnss_sp_libs ${GNSS_SPLIBS_SOURCES} ${GNSS_SPLIBS_HEADERS})
source_group(Headers FILES ${GNSS_SPLIBS_HEADERS})
target_link_libraries(gnss_sp_libs ${GNURADIO_RUNTIME_LIBRARIES}
- ${VOLK_LIBRARIES} ${ORC_LIBRARIES}
- ${VOLK_GNSSSDR_LIBRARIES} ${ORC_LIBRARIES}
- ${GFlags_LIBS}
- ${GNURADIO_BLOCKS_LIBRARIES}
- ${GNURADIO_FFT_LIBRARIES}
- ${GNURADIO_FILTER_LIBRARIES}
- ${OPT_LIBRARIES}
- gnss_rx
+ ${VOLK_LIBRARIES} ${ORC_LIBRARIES}
+ ${VOLK_GNSSSDR_LIBRARIES} ${ORC_LIBRARIES}
+ ${GFlags_LIBS}
+ ${GNURADIO_BLOCKS_LIBRARIES}
+ ${GNURADIO_FFT_LIBRARIES}
+ ${GNURADIO_FILTER_LIBRARIES}
+ ${OPT_LIBRARIES}
+ gnss_rx
)
if(NOT VOLK_GNSSSDR_FOUND)
@@ -95,9 +120,9 @@ if(NOT VOLK_GNSSSDR_FOUND)
endif(NOT VOLK_GNSSSDR_FOUND)
if(${GFLAGS_GREATER_20})
- add_definitions(-DGFLAGS_GREATER_2_0=1)
+ add_definitions(-DGFLAGS_GREATER_2_0=1)
endif(${GFLAGS_GREATER_20})
add_library(gnss_sdr_flags gnss_sdr_flags.cc gnss_sdr_flags.h)
source_group(Headers FILES gnss_sdr_flags.h)
-target_link_libraries(gnss_sdr_flags ${GFlags_LIBS})
\ No newline at end of file
+target_link_libraries(gnss_sdr_flags ${GFlags_LIBS})
diff --git a/src/algorithms/libs/byte_x2_to_complex_byte.cc b/src/algorithms/libs/byte_x2_to_complex_byte.cc
index d93b6ebef..7945f9573 100644
--- a/src/algorithms/libs/byte_x2_to_complex_byte.cc
+++ b/src/algorithms/libs/byte_x2_to_complex_byte.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/byte_x2_to_complex_byte.h b/src/algorithms/libs/byte_x2_to_complex_byte.h
index 50d43c07c..c7e49bc98 100644
--- a/src/algorithms/libs/byte_x2_to_complex_byte.h
+++ b/src/algorithms/libs/byte_x2_to_complex_byte.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/complex_byte_to_float_x2.cc b/src/algorithms/libs/complex_byte_to_float_x2.cc
index 0ca929627..ae0409d99 100644
--- a/src/algorithms/libs/complex_byte_to_float_x2.cc
+++ b/src/algorithms/libs/complex_byte_to_float_x2.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/complex_byte_to_float_x2.h b/src/algorithms/libs/complex_byte_to_float_x2.h
index bc8003d7d..74c2e9c55 100644
--- a/src/algorithms/libs/complex_byte_to_float_x2.h
+++ b/src/algorithms/libs/complex_byte_to_float_x2.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/complex_float_to_complex_byte.cc b/src/algorithms/libs/complex_float_to_complex_byte.cc
index e7256f792..57576a9b1 100644
--- a/src/algorithms/libs/complex_float_to_complex_byte.cc
+++ b/src/algorithms/libs/complex_float_to_complex_byte.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/complex_float_to_complex_byte.h b/src/algorithms/libs/complex_float_to_complex_byte.h
index d8205b9e9..74eb0b5c3 100644
--- a/src/algorithms/libs/complex_float_to_complex_byte.h
+++ b/src/algorithms/libs/complex_float_to_complex_byte.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/conjugate_cc.cc b/src/algorithms/libs/conjugate_cc.cc
index a439d1822..2a61e1526 100644
--- a/src/algorithms/libs/conjugate_cc.cc
+++ b/src/algorithms/libs/conjugate_cc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/conjugate_cc.h b/src/algorithms/libs/conjugate_cc.h
index 7f13c46de..a04cd2410 100644
--- a/src/algorithms/libs/conjugate_cc.h
+++ b/src/algorithms/libs/conjugate_cc.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/conjugate_ic.cc b/src/algorithms/libs/conjugate_ic.cc
index 42ab9d8a9..c26f48388 100644
--- a/src/algorithms/libs/conjugate_ic.cc
+++ b/src/algorithms/libs/conjugate_ic.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/conjugate_ic.h b/src/algorithms/libs/conjugate_ic.h
index 472d68cd7..4b51f86da 100644
--- a/src/algorithms/libs/conjugate_ic.h
+++ b/src/algorithms/libs/conjugate_ic.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/conjugate_sc.cc b/src/algorithms/libs/conjugate_sc.cc
index 2e5c1cb4e..e62c6cc42 100644
--- a/src/algorithms/libs/conjugate_sc.cc
+++ b/src/algorithms/libs/conjugate_sc.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/conjugate_sc.h b/src/algorithms/libs/conjugate_sc.h
index 3b85c9385..019d16dcb 100644
--- a/src/algorithms/libs/conjugate_sc.h
+++ b/src/algorithms/libs/conjugate_sc.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/cshort_to_float_x2.cc b/src/algorithms/libs/cshort_to_float_x2.cc
index c328af8bc..accdb7826 100644
--- a/src/algorithms/libs/cshort_to_float_x2.cc
+++ b/src/algorithms/libs/cshort_to_float_x2.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/cshort_to_float_x2.h b/src/algorithms/libs/cshort_to_float_x2.h
index 6a59dcc8f..7a235e68a 100644
--- a/src/algorithms/libs/cshort_to_float_x2.h
+++ b/src/algorithms/libs/cshort_to_float_x2.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/galileo_e1_signal_processing.cc b/src/algorithms/libs/galileo_e1_signal_processing.cc
index beea0297c..2e0d224cf 100644
--- a/src/algorithms/libs/galileo_e1_signal_processing.cc
+++ b/src/algorithms/libs/galileo_e1_signal_processing.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/galileo_e1_signal_processing.h b/src/algorithms/libs/galileo_e1_signal_processing.h
index 5ce893638..f7133fd2d 100644
--- a/src/algorithms/libs/galileo_e1_signal_processing.h
+++ b/src/algorithms/libs/galileo_e1_signal_processing.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/galileo_e5_signal_processing.cc b/src/algorithms/libs/galileo_e5_signal_processing.cc
index d506de1fc..ca6eb675a 100644
--- a/src/algorithms/libs/galileo_e5_signal_processing.cc
+++ b/src/algorithms/libs/galileo_e5_signal_processing.cc
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/galileo_e5_signal_processing.h b/src/algorithms/libs/galileo_e5_signal_processing.h
index 549621dba..998d3b98f 100644
--- a/src/algorithms/libs/galileo_e5_signal_processing.h
+++ b/src/algorithms/libs/galileo_e5_signal_processing.h
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/glonass_l1_signal_processing.cc b/src/algorithms/libs/glonass_l1_signal_processing.cc
index caeba3672..509137d15 100644
--- a/src/algorithms/libs/glonass_l1_signal_processing.cc
+++ b/src/algorithms/libs/glonass_l1_signal_processing.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/glonass_l1_signal_processing.h b/src/algorithms/libs/glonass_l1_signal_processing.h
index cf93a19a8..bcf1e89f2 100644
--- a/src/algorithms/libs/glonass_l1_signal_processing.h
+++ b/src/algorithms/libs/glonass_l1_signal_processing.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/glonass_l2_signal_processing.cc b/src/algorithms/libs/glonass_l2_signal_processing.cc
index 87e8cc4a1..fa82b88b1 100644
--- a/src/algorithms/libs/glonass_l2_signal_processing.cc
+++ b/src/algorithms/libs/glonass_l2_signal_processing.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/glonass_l2_signal_processing.h b/src/algorithms/libs/glonass_l2_signal_processing.h
index ae52e0680..ff4a699e1 100644
--- a/src/algorithms/libs/glonass_l2_signal_processing.h
+++ b/src/algorithms/libs/glonass_l2_signal_processing.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_circular_deque.h b/src/algorithms/libs/gnss_circular_deque.h
index d9694e722..030044f91 100644
--- a/src/algorithms/libs/gnss_circular_deque.h
+++ b/src/algorithms/libs/gnss_circular_deque.h
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_sdr_flags.cc b/src/algorithms/libs/gnss_sdr_flags.cc
index db6e37757..a43351916 100644
--- a/src/algorithms/libs/gnss_sdr_flags.cc
+++ b/src/algorithms/libs/gnss_sdr_flags.cc
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -54,7 +54,7 @@ DEFINE_int32(cn0_samples, 20, "Number of correlator outputs used for CN0 estimat
DEFINE_int32(cn0_min, 25, "Minimum valid CN0 (in dB-Hz).");
-DEFINE_int32(max_lock_fail, 50, "Number number of lock failures before dropping satellite.");
+DEFINE_int32(max_lock_fail, 50, "Maximum number of lock failures before dropping a satellite.");
DEFINE_double(carrier_lock_th, 0.85, "Carrier lock threshold (in rad).");
diff --git a/src/algorithms/libs/gnss_sdr_flags.h b/src/algorithms/libs/gnss_sdr_flags.h
index c0c67383d..bb97ca2dd 100644
--- a/src/algorithms/libs/gnss_sdr_flags.h
+++ b/src/algorithms/libs/gnss_sdr_flags.h
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
@@ -50,7 +50,7 @@ DECLARE_int32(doppler_step); //.
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_sdr_sample_counter.h b/src/algorithms/libs/gnss_sdr_sample_counter.h
index 761894855..f398684f5 100644
--- a/src/algorithms/libs/gnss_sdr_sample_counter.h
+++ b/src/algorithms/libs/gnss_sdr_sample_counter.h
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_sdr_time_counter.cc b/src/algorithms/libs/gnss_sdr_time_counter.cc
new file mode 100644
index 000000000..a4874ac4b
--- /dev/null
+++ b/src/algorithms/libs/gnss_sdr_time_counter.cc
@@ -0,0 +1,126 @@
+/*!
+ * \file gnss_sdr_time_counter.cc
+ * \brief Simple block to report the current receiver time based on the output of the tracking or telemetry blocks
+ * \author Antonio Ramos 2018. antonio.ramos(at)gmail.com
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#include "gnss_sdr_time_counter.h"
+#include "gnss_synchro.h"
+#include
+#include
+#include
+#include
+
+gnss_sdr_time_counter::gnss_sdr_time_counter() : gr::block("time_counter",
+ gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)),
+ gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)))
+{
+ set_max_noutput_items(1);
+ current_T_rx_ms = 0;
+ current_s = 0;
+ current_m = 0;
+ current_h = 0;
+ current_days = 0;
+ report_interval_ms = 1000; // default reporting 1 second
+ flag_m = false;
+ flag_h = false;
+ flag_days = false;
+}
+
+
+gnss_sdr_time_counter_sptr gnss_sdr_make_time_counter()
+{
+ gnss_sdr_time_counter_sptr counter_(new gnss_sdr_time_counter());
+ return counter_;
+}
+
+
+int gnss_sdr_time_counter::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
+ gr_vector_const_void_star &input_items __attribute__((unused)), gr_vector_void_star &output_items)
+{
+ Gnss_Synchro *out = reinterpret_cast(output_items[0]);
+ const Gnss_Synchro *in = reinterpret_cast(input_items[0]);
+ out[0] = in[0];
+ if ((current_T_rx_ms % report_interval_ms) == 0)
+ {
+ current_s++;
+ if ((current_s % 60) == 0)
+ {
+ current_s = 0;
+ current_m++;
+ flag_m = true;
+ if ((current_m % 60) == 0)
+ {
+ current_m = 0;
+ current_h++;
+ flag_h = true;
+ if ((current_h % 24) == 0)
+ {
+ current_h = 0;
+ current_days++;
+ flag_days = true;
+ }
+ }
+ }
+
+ if (flag_days)
+ {
+ std::string day;
+ if (current_days == 1)
+ {
+ day = " day ";
+ }
+ else
+ {
+ day = " days ";
+ }
+ std::cout << "Current receiver time: " << current_days << day << current_h << " h " << current_m << " min " << current_s << " s" << std::endl;
+ }
+ else
+ {
+ if (flag_h)
+ {
+ std::cout << "Current receiver time: " << current_h << " h " << current_m << " min " << current_s << " s" << std::endl;
+ }
+ else
+ {
+ if (flag_m)
+ {
+ std::cout << "Current receiver time: " << current_m << " min " << current_s << " s" << std::endl;
+ }
+ else
+ {
+ std::cout << "Current receiver time: " << current_s << " s" << std::endl;
+ }
+ }
+ }
+ }
+ current_T_rx_ms++;
+ consume_each(1);
+ return 1;
+}
diff --git a/src/algorithms/libs/gnss_sdr_time_counter.h b/src/algorithms/libs/gnss_sdr_time_counter.h
new file mode 100644
index 000000000..91261e37d
--- /dev/null
+++ b/src/algorithms/libs/gnss_sdr_time_counter.h
@@ -0,0 +1,64 @@
+/*!
+ * \file gnss_sdr_time_counter.h
+ * \brief Simple block to report the current receiver time based on the output of the tracking or telemetry blocks
+ * \author Antonio Ramos 2018. antonio.ramosdet(at)gmail.com
+ *
+ *
+ * -------------------------------------------------------------------------
+ *
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
+ *
+ * GNSS-SDR is a software defined Global Navigation
+ * Satellite Systems receiver
+ *
+ * This file is part of GNSS-SDR.
+ *
+ * GNSS-SDR is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNSS-SDR is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNSS-SDR. If not, see .
+ *
+ * -------------------------------------------------------------------------
+ */
+#ifndef GNSS_SDR_TIME_COUNTER_H_
+#define GNSS_SDR_TIME_COUNTER_H_
+
+#include
+#include
+
+
+class gnss_sdr_time_counter;
+
+typedef boost::shared_ptr gnss_sdr_time_counter_sptr;
+
+gnss_sdr_time_counter_sptr gnss_sdr_make_time_counter();
+
+class gnss_sdr_time_counter : public gr::block
+{
+private:
+ gnss_sdr_time_counter();
+ long long int current_T_rx_ms; // Receiver time in ms since the beginning of the run
+ unsigned int current_s; // Receiver time in seconds, modulo 60
+ bool flag_m; // True if the receiver has been running for at least 1 minute
+ unsigned int current_m; // Receiver time in minutes, modulo 60
+ bool flag_h; // True if the receiver has been running for at least 1 hour
+ unsigned int current_h; // Receiver time in hours, modulo 24
+ bool flag_days; // True if the receiver has been running for at least 1 day
+ unsigned int current_days; // Receiver time in days since the beginning of the run
+ int report_interval_ms;
+
+public:
+ friend gnss_sdr_time_counter_sptr gnss_sdr_make_time_counter();
+ int general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
+ gr_vector_const_void_star &input_items __attribute__((unused)), gr_vector_void_star &output_items);
+};
+
+#endif /*GNSS_SDR_SAMPLE_COUNTER_H_*/
diff --git a/src/algorithms/libs/gnss_sdr_valve.cc b/src/algorithms/libs/gnss_sdr_valve.cc
index 5a6a15979..b49ab50f9 100644
--- a/src/algorithms/libs/gnss_sdr_valve.cc
+++ b/src/algorithms/libs/gnss_sdr_valve.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_sdr_valve.h b/src/algorithms/libs/gnss_sdr_valve.h
index d06a72d81..725a34353 100644
--- a/src/algorithms/libs/gnss_sdr_valve.h
+++ b/src/algorithms/libs/gnss_sdr_valve.h
@@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -24,7 +24,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_signal_processing.cc b/src/algorithms/libs/gnss_signal_processing.cc
index 41f44a7a8..1d3be66e3 100644
--- a/src/algorithms/libs/gnss_signal_processing.cc
+++ b/src/algorithms/libs/gnss_signal_processing.cc
@@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -26,7 +26,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gnss_signal_processing.h b/src/algorithms/libs/gnss_signal_processing.h
index b9f7f266a..514815d82 100644
--- a/src/algorithms/libs/gnss_signal_processing.h
+++ b/src/algorithms/libs/gnss_signal_processing.h
@@ -9,7 +9,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -27,7 +27,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gps_l2c_signal.cc b/src/algorithms/libs/gps_l2c_signal.cc
index a0d266ab7..81ad79c78 100644
--- a/src/algorithms/libs/gps_l2c_signal.cc
+++ b/src/algorithms/libs/gps_l2c_signal.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gps_l2c_signal.h b/src/algorithms/libs/gps_l2c_signal.h
index 627588355..c76c4692f 100644
--- a/src/algorithms/libs/gps_l2c_signal.h
+++ b/src/algorithms/libs/gps_l2c_signal.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gps_l5_signal.cc b/src/algorithms/libs/gps_l5_signal.cc
index 0bacbea7b..84cc1843e 100644
--- a/src/algorithms/libs/gps_l5_signal.cc
+++ b/src/algorithms/libs/gps_l5_signal.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gps_l5_signal.h b/src/algorithms/libs/gps_l5_signal.h
index 928180e9a..d226b0288 100644
--- a/src/algorithms/libs/gps_l5_signal.h
+++ b/src/algorithms/libs/gps_l5_signal.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gps_sdr_signal_processing.cc b/src/algorithms/libs/gps_sdr_signal_processing.cc
index fe280c293..4dee98f05 100644
--- a/src/algorithms/libs/gps_sdr_signal_processing.cc
+++ b/src/algorithms/libs/gps_sdr_signal_processing.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/gps_sdr_signal_processing.h b/src/algorithms/libs/gps_sdr_signal_processing.h
index caeab2a0b..b65db9144 100644
--- a/src/algorithms/libs/gps_sdr_signal_processing.h
+++ b/src/algorithms/libs/gps_sdr_signal_processing.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/pass_through.cc b/src/algorithms/libs/pass_through.cc
index d05224266..4859af83d 100644
--- a/src/algorithms/libs/pass_through.cc
+++ b/src/algorithms/libs/pass_through.cc
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/pass_through.h b/src/algorithms/libs/pass_through.h
index f1d8c5f72..83100eab2 100644
--- a/src/algorithms/libs/pass_through.h
+++ b/src/algorithms/libs/pass_through.h
@@ -7,7 +7,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -25,7 +25,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/rtklib/CMakeLists.txt b/src/algorithms/libs/rtklib/CMakeLists.txt
index d2fbe78c9..6cb2441a9 100644
--- a/src/algorithms/libs/rtklib/CMakeLists.txt
+++ b/src/algorithms/libs/rtklib/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors)
+# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@@ -13,7 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNSS-SDR. If not, see .
+# along with GNSS-SDR. If not, see .
#
add_definitions( -DGNSS_SDR_VERSION="${VERSION}" )
diff --git a/src/algorithms/libs/rtklib/rtklib_conversions.cc b/src/algorithms/libs/rtklib/rtklib_conversions.cc
index 2ff6a575c..7953509a2 100644
--- a/src/algorithms/libs/rtklib/rtklib_conversions.cc
+++ b/src/algorithms/libs/rtklib/rtklib_conversions.cc
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/rtklib/rtklib_conversions.h b/src/algorithms/libs/rtklib/rtklib_conversions.h
index 22a8501a5..11f4208d1 100644
--- a/src/algorithms/libs/rtklib/rtklib_conversions.h
+++ b/src/algorithms/libs/rtklib/rtklib_conversions.h
@@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
- * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)
+ * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -23,7 +23,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with GNSS-SDR. If not, see .
+ * along with GNSS-SDR. If not, see .
*
* -------------------------------------------------------------------------
*/
diff --git a/src/algorithms/libs/rtklib/rtklib_pntpos.cc b/src/algorithms/libs/rtklib/rtklib_pntpos.cc
index 31b60c8e6..d4a10fe65 100644
--- a/src/algorithms/libs/rtklib/rtklib_pntpos.cc
+++ b/src/algorithms/libs/rtklib/rtklib_pntpos.cc
@@ -130,11 +130,11 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel,
double P1_P2 = 0.0;
double P1_C1 = 0.0;
double P2_C2 = 0.0;
- //Intersignal corrections (m). See GPS IS-200 CNAV message
- double ISCl1 = 0.0;
+ // Intersignal corrections (m). See GPS IS-200 CNAV message
+ //double ISCl1 = 0.0;
double ISCl2 = 0.0;
double ISCl5i = 0.0;
- double ISCl5q = 0.0;
+ //double ISCl5q = 0.0;
double gamma_ = 0.0;
int i = 0;
int j = 1;
@@ -209,10 +209,10 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel,
if (sys == SYS_GPS)
{
- ISCl1 = getiscl1(obs->sat, nav);
+ // ISCl1 = getiscl1(obs->sat, nav);
ISCl2 = getiscl2(obs->sat, nav);
ISCl5i = getiscl5i(obs->sat, nav);
- ISCl5q = getiscl5q(obs->sat, nav);
+ // ISCl5q = getiscl5q(obs->sat, nav);
}
//CHECK IF IT IS STILL NEEDED
diff --git a/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc b/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc
index 20f939dd4..88cc2ca38 100644
--- a/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc
+++ b/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc
@@ -54,6 +54,8 @@
//#include
#include
#include
+#include
+#include