diff --git a/CMakeLists.txt b/CMakeLists.txt
index 789a19974..22ad70e01 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,6 +51,7 @@ 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 gr-iio" OFF)
# Performance analysis tools
option(ENABLE_GPERFTOOLS "Enable linking to Gperftools libraries (tcmalloc and profiler)" OFF)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7a87240cb..262feeb0c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -75,7 +75,7 @@ the actual username of your GitHub account):
4. Your forked repository https://github.com/YOUR_USERNAME/gnss-sdr
will receive the default name of `origin`. You can also add the original
-gnss-sdr repository, which is usually called `upstream`:
+gnss-sdr repository, which is usually referred to as `upstream`:
$ cd gnss-sdr
$ git remote add upstream https://github.com/gnss-sdr/gnss-sdr.git
diff --git a/README.md b/README.md
index 270eaf8d5..ddb36c7c9 100644
--- a/README.md
+++ b/README.md
@@ -185,9 +185,9 @@ 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 http://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
diff --git a/cmake/Modules/FindGFORTRAN.cmake b/cmake/Modules/FindGFORTRAN.cmake
index b676fec0f..c9a7c2c6f 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..61fa165db 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..4ae4aa5d7 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..7c3e79d96 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..a0110b7a3 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..5ad0ec303 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..d68813480 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..7147bf65c 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..c9d4199c8 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/FindLibOsmoSDR.cmake b/cmake/Modules/FindLibOsmoSDR.cmake
index d024e0629..5e52fa0b0 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..8f1254561 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..78ce0f14d 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..ea580334c 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..360f1c781 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..4ae5d6aca 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/FindTeleorbit.cmake b/cmake/Modules/FindTeleorbit.cmake
index 0d2d3c505..0e46255df 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..5a359cece 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..37906c8ef 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..a41584481 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/Findiio.cmake b/cmake/Modules/Findiio.cmake
index 817e9f9f7..ac3e4b1c3 100644
--- a/cmake/Modules/Findiio.cmake
+++ b/cmake/Modules/Findiio.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)
@@ -22,6 +39,28 @@ FIND_LIBRARY(
/usr/local/lib64
/usr/lib
/usr/lib64
+ /usr/lib/x86_64-linux-gnu
+ /usr/lib/alpha-linux-gnu
+ /usr/lib/aarch64-linux-gnu
+ /usr/lib/arm-linux-gnueabi
+ /usr/lib/arm-linux-gnueabihf
+ /usr/lib/hppa-linux-gnu
+ /usr/lib/i686-gnu
+ /usr/lib/i686-linux-gnu
+ /usr/lib/x86_64-kfreebsd-gnu
+ /usr/lib/i686-kfreebsd-gnu
+ /usr/lib/m68k-linux-gnu
+ /usr/lib/mips-linux-gnu
+ /usr/lib/mips64el-linux-gnuabi64
+ /usr/lib/mipsel-linux-gnu
+ /usr/lib/powerpc-linux-gnu
+ /usr/lib/powerpc-linux-gnuspe
+ /usr/lib/powerpc64-linux-gnu
+ /usr/lib/powerpc64le-linux-gnu
+ /usr/lib/s390x-linux-gnu
+ /usr/lib/sparc64-linux-gnu
+ /usr/lib/x86_64-linux-gnux32
+ /usr/lib/sh4-linux-gnu
)
INCLUDE(FindPackageHandleStandardArgs)
diff --git a/cmake/Modules/Findlibiio.cmake b/cmake/Modules/Findlibiio.cmake
index 4ce6ca9c5..9b39f82e3 100644
--- a/cmake/Modules/Findlibiio.cmake
+++ b/cmake/Modules/Findlibiio.cmake
@@ -1,9 +1,26 @@
+# 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)
FIND_PATH(
LIBIIO_INCLUDE_DIRS
- NAMES gnuradio/iio/api.h
+ NAMES iio.h
HINTS $ENV{LIBIIO_DIR}/include
${PC_LIBIIO_INCLUDEDIR}
PATHS ${CMAKE_INSTALL_PREFIX}/include
@@ -14,7 +31,7 @@ FIND_PATH(
FIND_LIBRARY(
LIBIIO_LIBRARIES
- NAMES libiio.so iio
+ NAMES iio libiio.so.0
HINTS $ENV{LIBIIO_DIR}/lib
${PC_LIBIIO_LIBDIR}
PATHS ${CMAKE_INSTALL_PREFIX}/lib
@@ -24,27 +41,27 @@ FIND_LIBRARY(
/usr/lib
/usr/lib64
/usr/lib/x86_64-linux-gnu
- /usr/lib/gcc/alpha-linux-gnu
- /usr/lib/gcc/aarch64-linux-gnu
- /usr/lib/gcc/arm-linux-gnueabi
- /usr/lib/gcc/arm-linux-gnueabihf
- /usr/lib/gcc/hppa-linux-gnu
- /usr/lib/gcc/i686-gnu
- /usr/lib/gcc/i686-linux-gnu
- /usr/lib/gcc/x86_64-kfreebsd-gnu
- /usr/lib/gcc/i686-kfreebsd-gnu
- /usr/lib/gcc/m68k-linux-gnu
- /usr/lib/gcc/mips-linux-gnu
- /usr/lib/gcc/mips64el-linux-gnuabi64
- /usr/lib/gcc/mipsel-linux-gnu
- /usr/lib/gcc/powerpc-linux-gnu
- /usr/lib/gcc/powerpc-linux-gnuspe
- /usr/lib/gcc/powerpc64-linux-gnu
- /usr/lib/gcc/powerpc64le-linux-gnu
- /usr/lib/gcc/s390x-linux-gnu
- /usr/lib/gcc/sparc64-linux-gnu
- /usr/lib/gcc/x86_64-linux-gnux32
- /usr/lib/gcc/sh4-linux-gnu
+ /usr/lib/alpha-linux-gnu
+ /usr/lib/aarch64-linux-gnu
+ /usr/lib/arm-linux-gnueabi
+ /usr/lib/arm-linux-gnueabihf
+ /usr/lib/hppa-linux-gnu
+ /usr/lib/i686-gnu
+ /usr/lib/i686-linux-gnu
+ /usr/lib/x86_64-kfreebsd-gnu
+ /usr/lib/i686-kfreebsd-gnu
+ /usr/lib/m68k-linux-gnu
+ /usr/lib/mips-linux-gnu
+ /usr/lib/mips64el-linux-gnuabi64
+ /usr/lib/mipsel-linux-gnu
+ /usr/lib/powerpc-linux-gnu
+ /usr/lib/powerpc-linux-gnuspe
+ /usr/lib/powerpc64-linux-gnu
+ /usr/lib/powerpc64le-linux-gnu
+ /usr/lib/s390x-linux-gnu
+ /usr/lib/sparc64-linux-gnu
+ /usr/lib/x86_64-linux-gnux32
+ /usr/lib/sh4-linux-gnu
/Library/Frameworks/iio.framework/
)
diff --git a/cmake/Modules/SetupPython.cmake b/cmake/Modules/SetupPython.cmake
index d3c2b3a12..c876d7bc5 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..0106690ae 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..868340c59 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..e0006d8fd 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..b804fb943 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..bb9201eb6 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..6ef6ec846 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 http://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
diff --git a/conf/gnss-sdr.conf b/conf/gnss-sdr.conf
index 0c456f075..e9a05e798 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 http://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,52 @@ 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..f042def9c 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 http://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..09bddfb46 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 http://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..077d3dd1e 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 http://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..ca1197a6d 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 http://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..7e4e9e03f 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 http://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..c3ab7cb9c 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 http://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..7cc44a0a4 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 http://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..ca1197a6d 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 http://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..f53fe2ea6 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 http://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_CA_ibyte.conf b/conf/gnss-sdr_GPS_L1_CA_ibyte.conf
index 8bef7d1c0..959181078 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 http://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..c6bb2edfc 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 http://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
diff --git a/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf b/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf
index 082a1b3f4..bc99d4a28 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 http://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..ab1242bc7 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 http://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..6f3affed4 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 http://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,12 @@ 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..89f84fd77 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 http://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..1cb41801f 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 http://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..1f74645fb 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 http://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..48017a8ec 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 http://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..17880d8a2 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 http://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..0cf4d146c 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 http://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..7ecb75715 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 http://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..a9528d183 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 http://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..5e2bee6ba 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 http://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..dffa01314 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 http://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..d3be2c6b6 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 http://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..4f68bdb08 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 http://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..01b30c02a 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 http://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..18d783741 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 http://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
;
@@ -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..1cf1ac378 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 http://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..362e747a3 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 http://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..1572b45cd 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 http://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..aad3dd417 100644
--- a/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf
+++ b/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf
@@ -38,8 +38,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 +51,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..2653a1402 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 http://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..22a64245d 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 http://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
diff --git a/conf/gnss-sdr_Galileo_E1_nsr.conf b/conf/gnss-sdr_Galileo_E1_nsr.conf
index f7ca01480..7350f5314 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 http://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..5ab3096c3 100644
--- a/conf/gnss-sdr_Galileo_E5a.conf
+++ b/conf/gnss-sdr_Galileo_E5a.conf
@@ -1,4 +1,3 @@
-; Default configuration file
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -25,159 +24,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 +61,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..e884778d2 100644
--- a/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf
+++ b/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf
@@ -1,4 +1,3 @@
-; Default configuration file
; You can define your own receiver and invoke it by doing
; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
;
@@ -74,7 +73,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 +82,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 +100,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 +115,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..bf50bcb30 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 http://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..60cca8e00 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 http://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..dbd9d8286 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 http://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..6fc17c35c 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 http://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..682482991 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 http://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..18d9f5307 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 http://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..cfbd1f73c 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 http://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..2180d8ccb 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 http://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..e53db62e7 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 http://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
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..aa0e26be4 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 http://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
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..7a7627cef 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 http://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
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..3dd9d76cd 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 http://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..1513e6c8b 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 http://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..349b2f2b3 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 http://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,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
-;#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..c2216e648 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 http://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..9c899e6ca 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 http://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..ab8bbaed6 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 http://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
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..26fa98a81 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 http://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..60f03431b 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 http://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..8c035713e 100644
--- a/conf/gnss-sdr_multisource_Hybrid_nsr.conf
+++ b/conf/gnss-sdr_multisource_Hybrid_nsr.conf
@@ -14,250 +14,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 +151,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/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc
index 91267e33d..18248ea05 100644
--- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc
+++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc
@@ -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..70333a7eb 100644
--- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h
+++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h
@@ -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..ebf9d6041 100644
--- a/src/algorithms/PVT/libs/CMakeLists.txt
+++ b/src/algorithms/PVT/libs/CMakeLists.txt
@@ -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/gpx_printer.cc b/src/algorithms/PVT/libs/gpx_printer.cc
new file mode 100644
index 000000000..65dda1636
--- /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..347d95599
--- /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..4644352e5 100644
--- a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
+++ b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
@@ -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/ls_pvt.cc b/src/algorithms/PVT/libs/ls_pvt.cc
index 27be29287..af4f1e812 100644
--- a/src/algorithms/PVT/libs/ls_pvt.cc
+++ b/src/algorithms/PVT/libs/ls_pvt.cc
@@ -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/nmea_printer.cc b/src/algorithms/PVT/libs/nmea_printer.cc
index 305a89a07..ebff7b4ac 100644
--- a/src/algorithms/PVT/libs/nmea_printer.cc
+++ b/src/algorithms/PVT/libs/nmea_printer.cc
@@ -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..857301d1c 100644
--- a/src/algorithms/PVT/libs/nmea_printer.h
+++ b/src/algorithms/PVT/libs/nmea_printer.h
@@ -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..dbfd76f1c 100644
--- a/src/algorithms/PVT/libs/pvt_solution.cc
+++ b/src/algorithms/PVT/libs/pvt_solution.cc
@@ -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..c01e494a9 100644
--- a/src/algorithms/PVT/libs/pvt_solution.h
+++ b/src/algorithms/PVT/libs/pvt_solution.h
@@ -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/rtklib_solver.cc b/src/algorithms/PVT/libs/rtklib_solver.cc
index 4dcee81a0..8d74aea20 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 (int vsat = 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 (int vsat = 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/adapters/gps_l1_ca_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc
index c1a037c11..d9ef75ae3 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-2015 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -31,13 +34,17 @@
* -------------------------------------------------------------------------
*/
-#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_pcps_acquisition_fpga.h"
+#include "gps_sdr_signal_processing.h"
+#include "GPS_L1_CA.h"
+#include
+#include
+#include
+
+
+#define NUM_PRNs 32
using google::LogMessage;
@@ -45,87 +52,90 @@ 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(acq_parameters);
+ DLOG(INFO) << "acquisition(" << acquisition_fpga_->unique_id() << ")";
+
channel_ = 0;
- threshold_ = 0.0;
doppler_step_ = 0;
gnss_synchro_ = 0;
}
@@ -133,125 +143,93 @@ 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);
-}
-
-
-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;
+ acquisition_fpga_->set_state(state);
}
void GpsL1CaPcpsAcquisitionFpga::connect(gr::top_block_sptr top_block)
{
- //nothing to connect
+ // nothing to connect
}
void GpsL1CaPcpsAcquisitionFpga::disconnect(gr::top_block_sptr top_block)
{
- //nothing to disconnect
+ // 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..f070e8818 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-2015 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@@ -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/gnuradio_blocks/CMakeLists.txt b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
index ca02bb952..9bfd4fc73 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
+++ b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt
@@ -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..f8fa95f8e 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
@@ -36,12 +36,12 @@
*/
#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/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 0eb0cd3dd..dd2243a23 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc
@@ -39,7 +39,7 @@
#include
#include
#include
-#include
+#include
#include
@@ -335,84 +335,6 @@ void pcps_acquisition::send_negative_acquisition()
}
-int pcps_acquisition::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)))
-{
- /*
- * By J.Arribas, L.Esteve and M.Molina
- * Acquisition strategy (Kay Borre book + CFAR threshold):
- * 1. Compute the input signal power estimation
- * 2. Doppler serial search loop
- * 3. Perform the FFT-based circular convolution (parallel time search)
- * 4. Record the maximum peak and the associated synchronization parameters
- * 5. Compute the test statistics and compare to the threshold
- * 6. Declare positive or negative acquisition using a message port
- */
-
- gr::thread::scoped_lock lk(d_setlock);
- if (!d_active or d_worker_active)
- {
- d_sample_counter += d_fft_size * ninput_items[0];
- consume_each(ninput_items[0]);
- if (d_step_two)
- {
- d_doppler_center_step_two = static_cast(d_gnss_synchro->Acq_doppler_hz);
- update_grid_doppler_wipeoffs_step2();
- d_state = 0;
- d_active = true;
- }
- return 0;
- }
-
- switch (d_state)
- {
- case 0:
- {
- //restart acquisition variables
- 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_state = 1;
- d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
- consume_each(ninput_items[0]);
- break;
- }
-
- case 1:
- {
- // Copy the data to the core and let it know that new data is available
- if (d_cshort)
- {
- memcpy(d_data_buffer_sc, input_items[0], d_fft_size * sizeof(lv_16sc_t));
- }
- else
- {
- memcpy(d_data_buffer, input_items[0], d_fft_size * sizeof(gr_complex));
- }
- if (acq_parameters.blocking)
- {
- lk.unlock();
- acquisition_core(d_sample_counter);
- }
- else
- {
- gr::thread::thread d_worker(&pcps_acquisition::acquisition_core, this, d_sample_counter);
- d_worker_active = true;
- }
- d_sample_counter += d_fft_size;
- consume_each(1);
- break;
- }
- }
- return 0;
-}
-
-
void pcps_acquisition::acquisition_core(unsigned long int samp_count)
{
gr::thread::scoped_lock lk(d_setlock);
@@ -686,3 +608,81 @@ void pcps_acquisition::acquisition_core(unsigned long int samp_count)
}
d_worker_active = false;
}
+
+
+int pcps_acquisition::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)))
+{
+ /*
+ * By J.Arribas, L.Esteve and M.Molina
+ * Acquisition strategy (Kay Borre book + CFAR threshold):
+ * 1. Compute the input signal power estimation
+ * 2. Doppler serial search loop
+ * 3. Perform the FFT-based circular convolution (parallel time search)
+ * 4. Record the maximum peak and the associated synchronization parameters
+ * 5. Compute the test statistics and compare to the threshold
+ * 6. Declare positive or negative acquisition using a message port
+ */
+
+ gr::thread::scoped_lock lk(d_setlock);
+ if (!d_active or d_worker_active)
+ {
+ d_sample_counter += d_fft_size * ninput_items[0];
+ consume_each(ninput_items[0]);
+ if (d_step_two)
+ {
+ d_doppler_center_step_two = static_cast(d_gnss_synchro->Acq_doppler_hz);
+ update_grid_doppler_wipeoffs_step2();
+ d_state = 0;
+ d_active = true;
+ }
+ return 0;
+ }
+
+ switch (d_state)
+ {
+ case 0:
+ {
+ //restart acquisition variables
+ 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_state = 1;
+ d_sample_counter += d_fft_size * ninput_items[0]; // sample counter
+ consume_each(ninput_items[0]);
+ break;
+ }
+
+ case 1:
+ {
+ // Copy the data to the core and let it know that new data is available
+ if (d_cshort)
+ {
+ memcpy(d_data_buffer_sc, input_items[0], d_fft_size * sizeof(lv_16sc_t));
+ }
+ else
+ {
+ memcpy(d_data_buffer, input_items[0], d_fft_size * sizeof(gr_complex));
+ }
+ if (acq_parameters.blocking)
+ {
+ lk.unlock();
+ acquisition_core(d_sample_counter);
+ }
+ else
+ {
+ gr::thread::thread d_worker(&pcps_acquisition::acquisition_core, this, d_sample_counter);
+ d_worker_active = true;
+ }
+ d_sample_counter += d_fft_size;
+ consume_each(1);
+ break;
+ }
+ }
+ return 0;
+}
diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h
index 97e314fdb..3836b0c38 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h
@@ -56,7 +56,7 @@
#include
#include
#include
-#include
+#include
#include
typedef struct
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..6a337925e
--- /dev/null
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc
@@ -0,0 +1,244 @@
+/*!
+ * \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-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
+#include
+#include "pcps_acquisition_fpga.h"
+
+using google::LogMessage;
+
+pcps_acquisition_fpga_sptr pcps_make_acquisition(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..e758904e3
--- /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-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_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(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(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_opencl_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
index 17d3628d5..851ec0545 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc
@@ -49,18 +49,18 @@
*/
#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..00a52b89a 100644
--- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
+++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h
@@ -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/libs/CMakeLists.txt b/src/algorithms/acquisition/libs/CMakeLists.txt
index 53feb9366..f4adf131c 100644
--- a/src/algorithms/acquisition/libs/CMakeLists.txt
+++ b/src/algorithms/acquisition/libs/CMakeLists.txt
@@ -18,7 +18,7 @@
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..81995faab
--- /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-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 "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 76%
rename from src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h
rename to src/algorithms/acquisition/libs/fpga_acquisition.h
index 40f8f37f2..00641e1cd 100644
--- a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h
+++ b/src/algorithms/acquisition/libs/fpga_acquisition.h
@@ -1,12 +1,12 @@
/*!
- * \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
*
* -------------------------------------------------------------------------
*
@@ -33,28 +33,28 @@
* -------------------------------------------------------------------------
*/
-#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/adapters/channel.cc b/src/algorithms/channel/adapters/channel.cc
index 5a6284888..f7cec1949 100644
--- a/src/algorithms/channel/adapters/channel.cc
+++ b/src/algorithms/channel/adapters/channel.cc
@@ -108,8 +108,6 @@ Channel::Channel(ConfigurationInterface* configuration, unsigned int channel,
// Destructor
Channel::~Channel() {}
-
-
void Channel::connect(gr::top_block_sptr top_block)
{
if (connected_)
@@ -137,8 +135,6 @@ void Channel::connect(gr::top_block_sptr top_block)
DLOG(INFO) << "tracking -> telemetry_decoder";
// Message ports
- top_block->msg_connect(nav_->get_left_block(), pmt::mp("preamble_timestamp_s"), trk_->get_right_block(), pmt::mp("preamble_timestamp_s"));
- DLOG(INFO) << "MSG FEEDBACK CHANNEL telemetry_decoder -> tracking";
top_block->msg_connect(acq_->get_right_block(), pmt::mp("events"), channel_msg_rx, pmt::mp("events"));
top_block->msg_connect(trk_->get_right_block(), pmt::mp("events"), channel_msg_rx, pmt::mp("events"));
diff --git a/src/algorithms/channel/libs/channel_fsm.cc b/src/algorithms/channel/libs/channel_fsm.cc
index 310a784ef..027ec8564 100644
--- a/src/algorithms/channel/libs/channel_fsm.cc
+++ b/src/algorithms/channel/libs/channel_fsm.cc
@@ -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_msg_receiver_cc.cc b/src/algorithms/channel/libs/channel_msg_receiver_cc.cc
index 9b1056bd6..217f9c0eb 100644
--- a/src/algorithms/channel/libs/channel_msg_receiver_cc.cc
+++ b/src/algorithms/channel/libs/channel_msg_receiver_cc.cc
@@ -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/conditioner/adapters/array_signal_conditioner.cc b/src/algorithms/conditioner/adapters/array_signal_conditioner.cc
index 91cf3abba..e0c6e9beb 100644
--- a/src/algorithms/conditioner/adapters/array_signal_conditioner.cc
+++ b/src/algorithms/conditioner/adapters/array_signal_conditioner.cc
@@ -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/signal_conditioner.cc b/src/algorithms/conditioner/adapters/signal_conditioner.cc
index b29a56c99..0f47b3a11 100644
--- a/src/algorithms/conditioner/adapters/signal_conditioner.cc
+++ b/src/algorithms/conditioner/adapters/signal_conditioner.cc
@@ -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/input_filter/gnuradio_blocks/notch_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc
index 8ada10c1f..632fd6d87 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc
@@ -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_lite_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc
index e55cc0e29..82d5f5304 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc
@@ -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/pulse_blanking_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc
index 1a6a0828e..a59d5c2be 100644
--- a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc
+++ b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc
@@ -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/libs/CMakeLists.txt b/src/algorithms/libs/CMakeLists.txt
index ac182801e..775ac6358 100644
--- a/src/algorithms/libs/CMakeLists.txt
+++ b/src/algorithms/libs/CMakeLists.txt
@@ -18,56 +18,81 @@
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/gnss_circular_deque.h b/src/algorithms/libs/gnss_circular_deque.h
new file mode 100644
index 000000000..d9694e722
--- /dev/null
+++ b/src/algorithms/libs/gnss_circular_deque.h
@@ -0,0 +1,135 @@
+/*!
+ * \file gnss_circular_deque.h
+ * \brief This class implements a circular deque for Gnss_Synchro
+ *
+ * \author Antonio Ramos, 2018. antonio.ramosdet(at)gmail.com
+ *
+ * Detailed description of the file here if needed.
+ *
+ * -------------------------------------------------------------------------
+ *
+ * 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_CIRCULAR_DEQUE_H_
+#define GNSS_SDR_CIRCULAR_DEQUE_H_
+#include
+#include
+
+template
+class Gnss_circular_deque
+{
+public:
+ Gnss_circular_deque(); // Default constructor
+ Gnss_circular_deque(const unsigned int max_size, const unsigned int nchann); // nchann = number of channels; max_size = channel capacity
+ unsigned int size(const unsigned int ch); // Returns the number of available elements in a channel
+ T& at(const unsigned int ch, const unsigned int pos); // Returns a reference to an element
+ T& front(const unsigned int ch); // Returns a reference to the first element in the deque
+ T& back(const unsigned int ch); // Returns a reference to the last element in the deque
+ void push_back(const unsigned int ch, const T& new_data); // Inserts an element at the end of the deque
+ void pop_front(const unsigned int ch); // Removes the first element of the deque
+ void clear(const unsigned int ch); // Removes all the elements of the deque (Sets size to 0). Capacity is not modified
+ void reset(const unsigned int max_size, const unsigned int nchann); // Removes all the elements in all the channels. Re-sets the number of channels and their capacity
+ void reset(); // Removes all the channels (Sets nchann to 0)
+
+private:
+ std::vector> d_data;
+};
+
+
+template
+Gnss_circular_deque::Gnss_circular_deque()
+{
+ reset();
+}
+
+template
+Gnss_circular_deque::Gnss_circular_deque(const unsigned int max_size, const unsigned int nchann)
+{
+ reset(max_size, nchann);
+}
+
+template
+unsigned int Gnss_circular_deque::size(const unsigned int ch)
+{
+ return d_data.at(ch).size();
+}
+
+template
+T& Gnss_circular_deque::back(const unsigned int ch)
+{
+ return d_data.at(ch).back();
+}
+
+
+template
+T& Gnss_circular_deque::front(const unsigned int ch)
+{
+ return d_data.at(ch).front();
+}
+
+
+template
+T& Gnss_circular_deque::at(const unsigned int ch, const unsigned int pos)
+{
+ return d_data.at(ch).at(pos);
+}
+
+template
+void Gnss_circular_deque::clear(const unsigned int ch)
+{
+ d_data.at(ch).clear();
+}
+
+template
+void Gnss_circular_deque::reset(const unsigned int max_size, const unsigned int nchann)
+{
+ d_data.clear();
+ if (max_size > 0 and nchann > 0)
+ {
+ for (unsigned int i = 0; i < nchann; i++)
+ {
+ d_data.push_back(boost::circular_buffer(max_size));
+ }
+ }
+}
+
+template
+void Gnss_circular_deque::reset()
+{
+ d_data.clear();
+}
+
+template
+void Gnss_circular_deque::pop_front(const unsigned int ch)
+{
+ d_data.at(ch).pop_front();
+}
+
+template
+void Gnss_circular_deque::push_back(const unsigned int ch, const T& new_data)
+{
+ d_data.at(ch).push_back(new_data);
+}
+
+#endif /* GNSS_SDR_CIRCULAR_DEQUE_H_ */
diff --git a/src/algorithms/libs/gnss_sdr_flags.cc b/src/algorithms/libs/gnss_sdr_flags.cc
index db6e37757..38fe3858f 100644
--- a/src/algorithms/libs/gnss_sdr_flags.cc
+++ b/src/algorithms/libs/gnss_sdr_flags.cc
@@ -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..762e94fe8 100644
--- a/src/algorithms/libs/gnss_sdr_flags.h
+++ b/src/algorithms/libs/gnss_sdr_flags.h
@@ -50,7 +50,7 @@ DECLARE_int32(doppler_step); //.
+ *
+ * -------------------------------------------------------------------------
+ */
+
+#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..4a424ce12
--- /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/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
index d4ea0c46f..f9634c801 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt
@@ -62,6 +62,7 @@ endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Enable C++17 support in GCC >= 8.0.0
# Enable C++14 support in 8.0.0 > GCC >= 6.1.1
# Fallback to C++11 when using GCC < 6.1.1
+
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1.1")
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++11")
@@ -75,8 +76,8 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -Wall -Wextra") #Add warning flags: For "-Wall" see http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
-# Enable C++17 support in Clang >= 6.0.0 or AppleClang >= 900
-# Enable C++14 support in 6.0.0 > Clang >= 3.5.0 or 900 > AppleClang >= 600
+# Enable C++17 support in Clang >= 6.0.0
+# Enable C++14 support in 6.0.0 > Clang >= 3.5.0 or AppleClang >= 600
# Fallback to C++11 if older version
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
@@ -84,11 +85,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(CLANG_VERSION VERSION_LESS "600")
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++11")
else(CLANG_VERSION VERSION_LESS "600")
- if(CLANG_VERSION VERSION_LESS "900")
- set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++14")
- else(CLANG_VERSION VERSION_LESS "900")
- set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++17")
- endif(CLANG_VERSION VERSION_LESS "900")
+ set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++14")
endif(CLANG_VERSION VERSION_LESS "600")
else(CMAKE_SYSTEM_NAME MATCHES "Darwin")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.5.0")
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake
index 8e8e4f292..ddd103a05 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake
@@ -1,9 +1,24 @@
+# Copyright (C) 2015-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")
-
-
-
FIND_PROGRAM(ORCC_EXECUTABLE orcc
HINTS ${PC_ORC_TOOLSDIR}
PATHS ${ORC_ROOT}/bin ${CMAKE_INSTALL_PREFIX}/bin)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkAddTest.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkAddTest.cmake
index e78a3e30e..727230715 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkAddTest.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkAddTest.cmake
@@ -1,21 +1,19 @@
-# Copyright 2015 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 (see AUTHORS file for a list of contributors)
#
-# This file is part of Volk
+# This file is part of GNSS-SDR.
#
-# Volk 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, or (at your option)
-# any later version.
+# 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.
#
-# Volk 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.
+# 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 Volk; see the file COPYING. If not, write to the Free
-# Software Foundation, Inc., 51 Franklin Street, Boston, MA
-# 02110-1301, USA.
+# along with GNSS-SDR. If not, see .
if(DEFINED __INCLUDED_VOLK_ADD_TEST)
return()
@@ -176,20 +174,19 @@ function(VOLK_ADD_TEST test_name executable_name)
#set them in the PATH to run tests. The following appends the
#path of a target dependency.
#
- #NOTE: get_target_property LOCATION is being deprecated as of
- #CMake 3.2.0, which just prints a warning & notes that this
- #functionality will be removed in the future. Leave it here for
- #now until someone can figure out how to do this in Windows.
- foreach(target ${test_name} ${VOLK_TEST_TARGET_DEPS})
- get_target_property(location "${target}" LOCATION)
- if(location)
- get_filename_component(path ${location} PATH)
- string(REGEX REPLACE "\\$\\(.*\\)" ${CMAKE_BUILD_TYPE} path ${path})
- list(APPEND libpath ${path})
- endif(location)
- endforeach(target)
+ #create a list of target directories to be determined by the
+ #"add_test" command, via the $ operator; make sure the
+ #test's directory is first, since it ($1) is prepended to PATH.
+ unset(TARGET_DIR_LIST)
+ foreach(target ${executable_name} ${VOLK_TEST_TARGET_DEPS})
+ list(APPEND TARGET_DIR_LIST "$")
+ endforeach()
+ #replace list separator with the path separator (escaped)
+ string(REPLACE ";" "\\\\;" TARGET_DIR_LIST "${TARGET_DIR_LIST}")
- list(APPEND libpath ${DLL_PATHS} "%PATH%")
+ #add command line argument (TARGET_DIR_LIST) to path and append current path
+ list(INSERT libpath 0 "%1")
+ list(APPEND libpath "%PATH%")
#replace list separator with the path separator (escaped)
string(REPLACE ";" "\\;" libpath "${libpath}")
@@ -204,14 +201,18 @@ function(VOLK_ADD_TEST test_name executable_name)
file(APPEND ${bat_file} "SET ${environ}\n")
endforeach(environ)
+ set(VOLK_TEST_ARGS "${test_name}")
+
#redo the test args to have a space between each
string(REPLACE ";" " " VOLK_TEST_ARGS "${VOLK_TEST_ARGS}")
#finally: append the test name to execute
- file(APPEND ${bat_file} ${test_name} " " ${VOLK_TEST_ARGS} "\n")
+ file(APPEND ${bat_file} "${executable_name} ${VOLK_TEST_ARGS}\n")
file(APPEND ${bat_file} "\n")
- add_test(${test_name} ${bat_file})
+ add_test(NAME qa_${test_name}
+ COMMAND ${bat_file} ${TARGET_DIR_LIST}
+ )
endif(WIN32)
endfunction(VOLK_ADD_TEST)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBoost.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBoost.cmake
index dd0c6940f..c875492b4 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBoost.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBoost.cmake
@@ -1,21 +1,19 @@
-# Copyright 2010-2011 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 (see AUTHORS file for a list of contributors)
#
-# This file is part of GNU Radio
+# This file is part of GNSS-SDR.
#
-# GNU Radio is free software; you can redistribute it and/or modify
+# 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, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# GNU Radio is distributed in the hope that it will be useful,
+# 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 GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
+# along with GNSS-SDR. If not, see .
if(DEFINED __INCLUDED_VOLK_BOOST_CMAKE)
return()
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBuildTypes.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBuildTypes.cmake
index 5b0c2cc17..1d0e810b1 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBuildTypes.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkBuildTypes.cmake
@@ -1,21 +1,19 @@
-# Copyright 2014 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 (see AUTHORS file for a list of contributors)
#
-# This file is part of VOLK
+# This file is part of GNSS-SDR.
#
-# VOLK is free software; you can redistribute it and/or modify
+# 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, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# VOLK is distributed in the hope that it will be useful,
+# 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 GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
+# along with GNSS-SDR. If not, see .
if(DEFINED __INCLUDED_VOLK_BUILD_TYPES_CMAKE)
return()
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfig.cmake.in b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfig.cmake.in
index f07b02d50..1f41de730 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfig.cmake.in
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfig.cmake.in
@@ -1,3 +1,20 @@
+# Copyright (C) 2015-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_VOLK_GNSSSDR volk_gnsssdr)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfigVersion.cmake.in b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfigVersion.cmake.in
index 84dbe0b29..d7403f913 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfigVersion.cmake.in
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkGnsssdrConfigVersion.cmake.in
@@ -1,21 +1,19 @@
-# Copyright 2014 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 (see AUTHORS file for a list of contributors)
#
-# This file is part of VOLK.
+# This file is part of GNSS-SDR.
#
-# VOLK is free software; you can redistribute it and/or modify
+# 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, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# VOLK is distributed in the hope that it will be useful,
+# 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 VOLK; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
+# along with GNSS-SDR. If not, see .
set(MAJOR_VERSION @VERSION_INFO_MAJOR_VERSION@)
set(MINOR_VERSION @VERSION_INFO_MINOR_VERSION@)
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkPython.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkPython.cmake
index dc6571e93..ed7118562 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkPython.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkPython.cmake
@@ -1,21 +1,19 @@
-# Copyright 2010-2011,2013 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 (see AUTHORS file for a list of contributors)
#
-# This file is part of GNU Radio
+# This file is part of GNSS-SDR.
#
-# GNU Radio is free software; you can redistribute it and/or modify
+# 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, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# GNU Radio is distributed in the hope that it will be useful,
+# 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 GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
+# along with GNSS-SDR. If not, see .
if(DEFINED __INCLUDED_VOLK_PYTHON_CMAKE)
return()
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkVersion.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkVersion.cmake
index 4ed349aac..1cc60fedf 100644
--- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkVersion.cmake
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/VolkVersion.cmake
@@ -1,21 +1,19 @@
-# Copyright 2014 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 (see AUTHORS file for a list of contributors)
#
-# This file is part of VOLK.
+# This file is part of GNSS-SDR.
#
-# VOLK is free software; you can redistribute it and/or modify
+# 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, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# VOLK is distributed in the hope that it will be useful,
+# 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 VOLK; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
+# along with GNSS-SDR. If not, see .
if(DEFINED __INCLUDED_VOLK_VERSION_CMAKE)
return()
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a15_hardfp_native.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a15_hardfp_native.cmake
new file mode 100644
index 000000000..850220b28
--- /dev/null
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a15_hardfp_native.cmake
@@ -0,0 +1,25 @@
+# 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 building native on a ARM Cortex A8 w/ NEON
+# Usage: cmake -DCMAKE_TOOLCHAIN_FILE=
+########################################################################
+set(CMAKE_CXX_COMPILER g++)
+set(CMAKE_C_COMPILER gcc)
+set(CMAKE_CXX_FLAGS "-march=armv7-a -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard" CACHE STRING "" FORCE)
+set(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE) #same flags for C sources
diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a9_hardfp_native.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a9_hardfp_native.cmake
new file mode 100644
index 000000000..b4b79185e
--- /dev/null
+++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a9_hardfp_native.cmake
@@ -0,0 +1,25 @@
+# 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 building native on a ARM Cortex A8 w/ NEON
+# Usage: cmake -DCMAKE_TOOLCHAIN_FILE=