mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 04:00:34 +00:00
Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into next
This commit is contained in:
commit
ee8eed758a
@ -970,11 +970,23 @@ if(NOT VOLKGNSSSDR_FOUND)
|
|||||||
else()
|
else()
|
||||||
set(VOLK_GNSSSDR_COMPILER -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
|
set(VOLK_GNSSSDR_COMPILER -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_package(ORC)
|
||||||
|
set_package_properties(ORC PROPERTIES
|
||||||
|
PURPOSE "Used by volk_gnsssdr."
|
||||||
|
TYPE OPTIONAL
|
||||||
|
)
|
||||||
|
if(ORC_FOUND)
|
||||||
|
set(ORC_ENABLED ON)
|
||||||
|
else()
|
||||||
|
set(ORC_ENABLED OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_COMPILER}
|
set(VOLK_GNSSSDR_CMAKE_ARGS ${VOLK_GNSSSDR_COMPILER}
|
||||||
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install
|
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install
|
||||||
-DENABLE_STATIC_LIBS=ON
|
-DENABLE_STATIC_LIBS=ON
|
||||||
-DENABLE_PROFILING=${ENABLE_PROFILING}
|
-DENABLE_PROFILING=${ENABLE_PROFILING}
|
||||||
-DENABLE_ORC=OFF
|
-DENABLE_ORC=${ORC_ENABLED}
|
||||||
${STRIP_VOLK_GNSSSDR_PROFILE}
|
${STRIP_VOLK_GNSSSDR_PROFILE}
|
||||||
${USE_THIS_PYTHON}
|
${USE_THIS_PYTHON}
|
||||||
)
|
)
|
||||||
@ -1017,11 +1029,6 @@ if(NOT VOLKGNSSSDR_FOUND)
|
|||||||
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install
|
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
find_package(ORC)
|
|
||||||
set_package_properties(ORC PROPERTIES
|
|
||||||
PURPOSE "Used by volk_gnsssdr."
|
|
||||||
TYPE OPTIONAL
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT ORC_FOUND)
|
if(NOT ORC_FOUND)
|
||||||
set(ORC_LIBRARIES "")
|
set(ORC_LIBRARIES "")
|
||||||
|
10
README.md
10
README.md
@ -160,13 +160,13 @@ This option is adequate if you are interested in development, in working with th
|
|||||||
First of all, install some basic packages:
|
First of all, install some basic packages:
|
||||||
|
|
||||||
~~~~~~
|
~~~~~~
|
||||||
$ sudo apt-get install git python-pip
|
$ sudo apt-get install git python3-pip
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
Download, build and install PyBOMBS:
|
Download, build and install PyBOMBS:
|
||||||
|
|
||||||
~~~~~~
|
~~~~~~
|
||||||
$ sudo pip install git+https://github.com/gnuradio/pybombs.git
|
$ sudo pip3 install --upgrade git+https://github.com/gnuradio/pybombs.git
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
Apply a configuration:
|
Apply a configuration:
|
||||||
@ -302,9 +302,9 @@ $ sudo apt-get install autoconf automake libtool curl make g++ unzip
|
|||||||
and then:
|
and then:
|
||||||
|
|
||||||
~~~~~~
|
~~~~~~
|
||||||
$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.10.0/protobuf-cpp-3.10.0.tar.gz
|
$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.10.1/protobuf-cpp-3.10.1.tar.gz
|
||||||
$ tar xvfz protobuf-cpp-3.10.0.tar.gz
|
$ tar xvfz protobuf-cpp-3.10.1.tar.gz
|
||||||
$ cd protobuf-3.10.0
|
$ cd protobuf-3.10.1
|
||||||
$ ./autogen.sh
|
$ ./autogen.sh
|
||||||
$ ./configure
|
$ ./configure
|
||||||
$ make
|
$ make
|
||||||
|
@ -38,8 +38,9 @@ find_path(ORC_INCLUDE_DIR
|
|||||||
PATHS /usr/include
|
PATHS /usr/include
|
||||||
/usr/local/include
|
/usr/local/include
|
||||||
/opt/local/include
|
/opt/local/include
|
||||||
${ORC_ROOT}/include/orc-0.4
|
${ORC_ROOT}/include
|
||||||
${CMAKE_INSTALL_PREFIX}/include/orc-0.4
|
${CMAKE_INSTALL_PREFIX}/include
|
||||||
|
PATH_SUFFIXES orc-0.4
|
||||||
)
|
)
|
||||||
|
|
||||||
find_path(ORC_LIBRARY_DIR
|
find_path(ORC_LIBRARY_DIR
|
||||||
|
@ -16,24 +16,35 @@
|
|||||||
# along with GNSS-SDR. If not, see <https://www.gnu.org/licenses/>.
|
# along with GNSS-SDR. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
find_package(PkgConfig)
|
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
|
||||||
|
include(FindPkgConfig)
|
||||||
pkg_check_modules(PC_ORC "orc-0.4 > 0.4.22")
|
pkg_check_modules(PC_ORC "orc-0.4 > 0.4.22")
|
||||||
|
|
||||||
find_program(ORCC_EXECUTABLE orcc
|
find_program(ORCC_EXECUTABLE orcc
|
||||||
HINTS ${PC_ORC_TOOLSDIR}
|
HINTS ${PC_ORC_TOOLSDIR}
|
||||||
PATHS ${ORC_ROOT}/bin ${CMAKE_INSTALL_PREFIX}/bin
|
PATHS /usr/bin
|
||||||
|
/usr/local/bin
|
||||||
|
/opt/local/bin
|
||||||
|
${ORC_ROOT}/bin
|
||||||
|
${CMAKE_INSTALL_PREFIX}/bin
|
||||||
)
|
)
|
||||||
|
|
||||||
find_path(ORC_INCLUDE_DIR NAMES orc/orc.h
|
find_path(ORC_INCLUDE_DIR
|
||||||
|
NAMES orc/orc.h
|
||||||
HINTS ${PC_ORC_INCLUDEDIR}
|
HINTS ${PC_ORC_INCLUDEDIR}
|
||||||
PATHS ${ORC_ROOT}/include/orc-0.4 ${CMAKE_INSTALL_PREFIX}/include/orc-0.4
|
PATHS /usr/include
|
||||||
|
/usr/local/include
|
||||||
|
/opt/local/include
|
||||||
|
${ORC_ROOT}/include
|
||||||
|
${CMAKE_INSTALL_PREFIX}/include
|
||||||
|
PATH_SUFFIXES orc-0.4
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
find_path(ORC_LIBRARY_DIR
|
find_path(ORC_LIBRARY_DIR
|
||||||
NAMES ${CMAKE_SHARED_LIBRARY_PREFIX}orc-0.4${CMAKE_SHARED_LIBRARY_SUFFIX}
|
NAMES ${CMAKE_SHARED_LIBRARY_PREFIX}orc-0.4${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||||
HINTS ${PC_ORC_LIBDIR}
|
HINTS ${PC_ORC_LIBDIR}
|
||||||
/usr/local/lib
|
PATHS /usr/lib
|
||||||
|
/usr/lib64
|
||||||
/usr/lib/x86_64-linux-gnu
|
/usr/lib/x86_64-linux-gnu
|
||||||
/usr/lib/i386-linux-gnu
|
/usr/lib/i386-linux-gnu
|
||||||
/usr/lib/arm-linux-gnueabihf
|
/usr/lib/arm-linux-gnueabihf
|
||||||
@ -47,14 +58,20 @@ find_path(ORC_LIBRARY_DIR
|
|||||||
/usr/lib/powerpc64le-linux-gnu
|
/usr/lib/powerpc64le-linux-gnu
|
||||||
/usr/lib/hppa-linux-gnu
|
/usr/lib/hppa-linux-gnu
|
||||||
/usr/lib/s390x-linux-gnu
|
/usr/lib/s390x-linux-gnu
|
||||||
/usr/lib64
|
/usr/local/lib
|
||||||
/usr/lib
|
/usr/local/lib64
|
||||||
PATHS ${ORC_ROOT}/lib${LIB_SUFFIX} ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
|
/opt/local/lib
|
||||||
|
${ORC_ROOT}/lib
|
||||||
|
$ENV{ORC_ROOT}/lib
|
||||||
|
${ORC_ROOT}/lib${LIB_SUFFIX}
|
||||||
|
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library(ORC_LIB orc-0.4
|
find_library(ORC_LIB orc-0.4
|
||||||
HINTS ${PC_ORC_LIBRARY_DIRS}
|
HINTS ${PC_ORC_LIBRARY_DIRS}
|
||||||
PATHS ${ORC_ROOT}/lib${LIB_SUFFIX} ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
|
PATHS ${ORC_ROOT}/lib${LIB_SUFFIX}
|
||||||
|
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
|
||||||
|
)
|
||||||
|
|
||||||
list(APPEND ORC_LIBRARY
|
list(APPEND ORC_LIBRARY
|
||||||
${ORC_LIB}
|
${ORC_LIB}
|
||||||
|
@ -133,7 +133,7 @@ file(TO_CMAKE_PATH ${VOLK_PYTHON_DIR} VOLK_PYTHON_DIR)
|
|||||||
function(VOLK_UNIQUE_TARGET desc)
|
function(VOLK_UNIQUE_TARGET desc)
|
||||||
file(RELATIVE_PATH reldir ${PROJECT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|
file(RELATIVE_PATH reldir ${PROJECT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import re, hashlib
|
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import re, hashlib
|
||||||
unique = hashlib.md5(b'${reldir}${ARGN}').hexdigest()[:5]
|
unique = hashlib.sha256(b'${reldir}${ARGN}').hexdigest()[:5]
|
||||||
print(re.sub('\\W', '_', '${desc} ${reldir} ' + unique))"
|
print(re.sub('\\W', '_', '${desc} ${reldir} ' + unique))"
|
||||||
OUTPUT_VARIABLE _target OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_VARIABLE _target OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
add_custom_target(${_target} ALL DEPENDS ${ARGN})
|
add_custom_target(${_target} ALL DEPENDS ${ARGN})
|
||||||
|
@ -27,7 +27,10 @@
|
|||||||
//
|
//
|
||||||
// Cross-platform attribute macros not included in VOLK
|
// Cross-platform attribute macros not included in VOLK
|
||||||
//
|
//
|
||||||
#if defined __GNUC__
|
#if defined __clang__
|
||||||
|
#define __VOLK_GNSSSDR_PREFETCH(addr) __builtin_prefetch(addr)
|
||||||
|
#define __VOLK_GNSSSDR_PREFETCH_LOCALITY(addr, rw, locality) __builtin_prefetch(addr, rw, locality)
|
||||||
|
#elif defined __GNUC__
|
||||||
#define __VOLK_GNSSSDR_PREFETCH(addr) __builtin_prefetch(addr)
|
#define __VOLK_GNSSSDR_PREFETCH(addr) __builtin_prefetch(addr)
|
||||||
#define __VOLK_GNSSSDR_PREFETCH_LOCALITY(addr, rw, locality) __builtin_prefetch(addr, rw, locality)
|
#define __VOLK_GNSSSDR_PREFETCH_LOCALITY(addr, rw, locality) __builtin_prefetch(addr, rw, locality)
|
||||||
#elif _MSC_VER
|
#elif _MSC_VER
|
||||||
@ -44,7 +47,20 @@
|
|||||||
//
|
//
|
||||||
// Cross-platform attribute macros
|
// Cross-platform attribute macros
|
||||||
//
|
//
|
||||||
#if defined __GNUC__
|
#if defined __clang__
|
||||||
|
// AppleClang also defines __GNUC__, so do this check first. These
|
||||||
|
// will probably be the same as for __GNUC__, but let's keep them
|
||||||
|
// separate just to be safe.
|
||||||
|
#define __VOLK_ATTR_ALIGNED(x) __attribute__((aligned(x)))
|
||||||
|
#define __VOLK_ATTR_UNUSED __attribute__((unused))
|
||||||
|
#define __VOLK_ATTR_INLINE __attribute__((always_inline))
|
||||||
|
#define __VOLK_ATTR_DEPRECATED __attribute__((deprecated))
|
||||||
|
#define __VOLK_ASM __asm__
|
||||||
|
#define __VOLK_VOLATILE __volatile__
|
||||||
|
#define __VOLK_ATTR_EXPORT __attribute__((visibility("default")))
|
||||||
|
#define __VOLK_ATTR_IMPORT __attribute__((visibility("default")))
|
||||||
|
#define __VOLK_PREFETCH(addr) __builtin_prefetch(addr)
|
||||||
|
#elif defined __GNUC__
|
||||||
#define __VOLK_ATTR_ALIGNED(x) __attribute__((aligned(x)))
|
#define __VOLK_ATTR_ALIGNED(x) __attribute__((aligned(x)))
|
||||||
#define __VOLK_ATTR_UNUSED __attribute__((unused))
|
#define __VOLK_ATTR_UNUSED __attribute__((unused))
|
||||||
#define __VOLK_ATTR_INLINE __attribute__((always_inline))
|
#define __VOLK_ATTR_INLINE __attribute__((always_inline))
|
||||||
@ -58,6 +74,7 @@
|
|||||||
#define __VOLK_ATTR_EXPORT
|
#define __VOLK_ATTR_EXPORT
|
||||||
#define __VOLK_ATTR_IMPORT
|
#define __VOLK_ATTR_IMPORT
|
||||||
#endif
|
#endif
|
||||||
|
#define __VOLK_PREFETCH(addr) __builtin_prefetch(addr)
|
||||||
#elif _MSC_VER
|
#elif _MSC_VER
|
||||||
#define __VOLK_ATTR_ALIGNED(x) __declspec(align(x))
|
#define __VOLK_ATTR_ALIGNED(x) __declspec(align(x))
|
||||||
#define __VOLK_ATTR_UNUSED
|
#define __VOLK_ATTR_UNUSED
|
||||||
@ -65,6 +82,7 @@
|
|||||||
#define __VOLK_ATTR_DEPRECATED __declspec(deprecated)
|
#define __VOLK_ATTR_DEPRECATED __declspec(deprecated)
|
||||||
#define __VOLK_ATTR_EXPORT __declspec(dllexport)
|
#define __VOLK_ATTR_EXPORT __declspec(dllexport)
|
||||||
#define __VOLK_ATTR_IMPORT __declspec(dllimport)
|
#define __VOLK_ATTR_IMPORT __declspec(dllimport)
|
||||||
|
#define __VOLK_PREFETCH(addr)
|
||||||
#define __VOLK_ASM __asm
|
#define __VOLK_ASM __asm
|
||||||
#define __VOLK_VOLATILE
|
#define __VOLK_VOLATILE
|
||||||
#else
|
#else
|
||||||
@ -74,6 +92,7 @@
|
|||||||
#define __VOLK_ATTR_DEPRECATED
|
#define __VOLK_ATTR_DEPRECATED
|
||||||
#define __VOLK_ATTR_EXPORT
|
#define __VOLK_ATTR_EXPORT
|
||||||
#define __VOLK_ATTR_IMPORT
|
#define __VOLK_ATTR_IMPORT
|
||||||
|
#define __VOLK_PREFETCH(addr)
|
||||||
#define __VOLK_ASM __asm__
|
#define __VOLK_ASM __asm__
|
||||||
#define __VOLK_VOLATILE __volatile__
|
#define __VOLK_VOLATILE __volatile__
|
||||||
#endif
|
#endif
|
||||||
|
@ -58,6 +58,10 @@ DEFINE_double(DLL_bw_hz_start, 1.0, "DLL Wide configuration start sweep value [H
|
|||||||
DEFINE_double(DLL_bw_hz_stop, 1.0, "DLL Wide configuration stop sweep value [Hz]");
|
DEFINE_double(DLL_bw_hz_stop, 1.0, "DLL Wide configuration stop sweep value [Hz]");
|
||||||
DEFINE_double(DLL_bw_hz_step, 0.25, "DLL Wide configuration sweep step value [Hz]");
|
DEFINE_double(DLL_bw_hz_step, 0.25, "DLL Wide configuration sweep step value [Hz]");
|
||||||
|
|
||||||
|
DEFINE_double(fll_bw_hz, 4.0, "FLL filter bandwidth [Hz]");
|
||||||
|
DEFINE_bool(enable_fll_pull_in, false, "Enable FLL in pull-in phase");
|
||||||
|
DEFINE_bool(enable_fll_steady_state, false, "Enable FLL in steady-state phase");
|
||||||
|
|
||||||
DEFINE_double(PLL_narrow_bw_hz, 5.0, "PLL Narrow configuration value [Hz]");
|
DEFINE_double(PLL_narrow_bw_hz, 5.0, "PLL Narrow configuration value [Hz]");
|
||||||
DEFINE_double(DLL_narrow_bw_hz, 0.75, "DLL Narrow configuration value [Hz]");
|
DEFINE_double(DLL_narrow_bw_hz, 0.75, "DLL Narrow configuration value [Hz]");
|
||||||
|
|
||||||
|
@ -661,7 +661,6 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
bool high_dyn)
|
bool high_dyn)
|
||||||
{
|
{
|
||||||
config = std::make_shared<InMemoryConfiguration>();
|
config = std::make_shared<InMemoryConfiguration>();
|
||||||
config->set_property("Tracking.dump", "true");
|
|
||||||
if (high_dyn)
|
if (high_dyn)
|
||||||
{
|
{
|
||||||
config->set_property("Tracking.high_dyn", "true");
|
config->set_property("Tracking.high_dyn", "true");
|
||||||
@ -670,8 +669,6 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
{
|
{
|
||||||
config->set_property("Tracking.high_dyn", "false");
|
config->set_property("Tracking.high_dyn", "false");
|
||||||
}
|
}
|
||||||
config->set_property("Tracking.smoother_length", std::to_string(smoother_length));
|
|
||||||
config->set_property("Tracking.dump_filename", "./tracking_ch_");
|
|
||||||
config->set_property("Tracking.implementation", implementation);
|
config->set_property("Tracking.implementation", implementation);
|
||||||
config->set_property("Tracking.item_type", "gr_complex");
|
config->set_property("Tracking.item_type", "gr_complex");
|
||||||
config->set_property("Tracking.pll_bw_hz", std::to_string(PLL_wide_bw_hz));
|
config->set_property("Tracking.pll_bw_hz", std::to_string(PLL_wide_bw_hz));
|
||||||
@ -679,6 +676,12 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
config->set_property("Tracking.extend_correlation_symbols", std::to_string(extend_correlation_symbols));
|
config->set_property("Tracking.extend_correlation_symbols", std::to_string(extend_correlation_symbols));
|
||||||
config->set_property("Tracking.pll_bw_narrow_hz", std::to_string(PLL_narrow_bw_hz));
|
config->set_property("Tracking.pll_bw_narrow_hz", std::to_string(PLL_narrow_bw_hz));
|
||||||
config->set_property("Tracking.dll_bw_narrow_hz", std::to_string(DLL_narrow_bw_hz));
|
config->set_property("Tracking.dll_bw_narrow_hz", std::to_string(DLL_narrow_bw_hz));
|
||||||
|
config->set_property("Tracking.fll_bw_hz", std::to_string(FLAGS_fll_bw_hz));
|
||||||
|
config->set_property("Tracking.enable_fll_pull_in", FLAGS_enable_fll_pull_in ? "true" : "false");
|
||||||
|
config->set_property("Tracking.enable_fll_steady_state", FLAGS_enable_fll_steady_state ? "true" : "false");
|
||||||
|
config->set_property("Tracking.smoother_length", std::to_string(smoother_length));
|
||||||
|
config->set_property("Tracking.dump", "true");
|
||||||
|
config->set_property("Tracking.dump_filename", "./tracking_ch_");
|
||||||
config->set_property("Observables.implementation", "Hybrid_Observables");
|
config->set_property("Observables.implementation", "Hybrid_Observables");
|
||||||
config->set_property("Observables.dump", "true");
|
config->set_property("Observables.dump", "true");
|
||||||
config->set_property("TelemetryDecoder.dump", "true");
|
config->set_property("TelemetryDecoder.dump", "true");
|
||||||
@ -696,7 +699,7 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
std::memcpy(static_cast<void*>(gnss_synchro_master.Signal), str, 3); // copy string into synchro char array: 2 char + null
|
std::memcpy(static_cast<void*>(gnss_synchro_master.Signal), str, 3); // copy string into synchro char array: 2 char + null
|
||||||
|
|
||||||
config->set_property("Tracking.early_late_space_chips", "0.5");
|
config->set_property("Tracking.early_late_space_chips", "0.5");
|
||||||
config->set_property("Tracking.early_late_space_narrow_chips", "0.5");
|
config->set_property("Tracking.early_late_space_narrow_chips", "0.1");
|
||||||
|
|
||||||
config->set_property("TelemetryDecoder.implementation", "GPS_L1_CA_Telemetry_Decoder");
|
config->set_property("TelemetryDecoder.implementation", "GPS_L1_CA_Telemetry_Decoder");
|
||||||
}
|
}
|
||||||
@ -743,8 +746,8 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
}
|
}
|
||||||
config->set_property("Tracking.early_late_space_chips", "0.5");
|
config->set_property("Tracking.early_late_space_chips", "0.5");
|
||||||
config->set_property("Tracking.track_pilot", "true");
|
config->set_property("Tracking.track_pilot", "true");
|
||||||
config->set_property("Tracking.pll_filter_order", "2");
|
//config->set_property("Tracking.pll_filter_order", "2");
|
||||||
config->set_property("Tracking.dll_filter_order", "2");
|
//config->set_property("Tracking.dll_filter_order", "2");
|
||||||
|
|
||||||
config->set_property("TelemetryDecoder.implementation", "Galileo_E5a_Telemetry_Decoder");
|
config->set_property("TelemetryDecoder.implementation", "Galileo_E5a_Telemetry_Decoder");
|
||||||
}
|
}
|
||||||
@ -758,8 +761,8 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
|
|
||||||
config->set_property("Tracking.early_late_space_chips", "0.5");
|
config->set_property("Tracking.early_late_space_chips", "0.5");
|
||||||
config->set_property("Tracking.track_pilot", "true");
|
config->set_property("Tracking.track_pilot", "true");
|
||||||
config->set_property("Tracking.pll_filter_order", "2");
|
//config->set_property("Tracking.pll_filter_order", "2");
|
||||||
config->set_property("Tracking.dll_filter_order", "2");
|
//config->set_property("Tracking.dll_filter_order", "2");
|
||||||
|
|
||||||
config->set_property("TelemetryDecoder.implementation", "GPS_L5_Telemetry_Decoder");
|
config->set_property("TelemetryDecoder.implementation", "GPS_L5_Telemetry_Decoder");
|
||||||
}
|
}
|
||||||
@ -776,6 +779,9 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
std::cout << "implementation: " << config->property("Tracking.implementation", std::string("undefined")) << " \n";
|
std::cout << "implementation: " << config->property("Tracking.implementation", std::string("undefined")) << " \n";
|
||||||
std::cout << "pll_bw_hz: " << config->property("Tracking.pll_bw_hz", 0.0) << " Hz\n";
|
std::cout << "pll_bw_hz: " << config->property("Tracking.pll_bw_hz", 0.0) << " Hz\n";
|
||||||
std::cout << "dll_bw_hz: " << config->property("Tracking.dll_bw_hz", 0.0) << " Hz\n";
|
std::cout << "dll_bw_hz: " << config->property("Tracking.dll_bw_hz", 0.0) << " Hz\n";
|
||||||
|
std::cout << "fll_bw_hz: " << config->property("Tracking.fll_bw_hz", 0.0) << " Hz\n";
|
||||||
|
std::cout << "enable_fll_pull_in: " << config->property("Tracking.enable_fll_pull_in", false) << "\n";
|
||||||
|
std::cout << "enable_fll_steady_state: " << config->property("Tracking.enable_fll_steady_state", false) << "\n";
|
||||||
std::cout << "pll_bw_narrow_hz: " << config->property("Tracking.pll_bw_narrow_hz", 0.0) << " Hz\n";
|
std::cout << "pll_bw_narrow_hz: " << config->property("Tracking.pll_bw_narrow_hz", 0.0) << " Hz\n";
|
||||||
std::cout << "dll_bw_narrow_hz: " << config->property("Tracking.dll_bw_narrow_hz", 0.0) << " Hz\n";
|
std::cout << "dll_bw_narrow_hz: " << config->property("Tracking.dll_bw_narrow_hz", 0.0) << " Hz\n";
|
||||||
std::cout << "extend_correlation_symbols: " << config->property("Tracking.extend_correlation_symbols", 0) << " Symbols\n";
|
std::cout << "extend_correlation_symbols: " << config->property("Tracking.extend_correlation_symbols", 0) << " Symbols\n";
|
||||||
@ -785,6 +791,7 @@ void HybridObservablesTest::configure_receiver(
|
|||||||
std::cout << "*****************************************\n";
|
std::cout << "*****************************************\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void HybridObservablesTest::check_results_carrier_phase(
|
void HybridObservablesTest::check_results_carrier_phase(
|
||||||
arma::mat& true_ch0,
|
arma::mat& true_ch0,
|
||||||
arma::vec& true_tow_s,
|
arma::vec& true_tow_s,
|
||||||
@ -792,7 +799,6 @@ void HybridObservablesTest::check_results_carrier_phase(
|
|||||||
const std::string& data_title)
|
const std::string& data_title)
|
||||||
{
|
{
|
||||||
// 1. True value interpolation to match the measurement times
|
// 1. True value interpolation to match the measurement times
|
||||||
|
|
||||||
double t0 = measured_ch0(0, 0);
|
double t0 = measured_ch0(0, 0);
|
||||||
int size1 = measured_ch0.col(0).n_rows;
|
int size1 = measured_ch0.col(0).n_rows;
|
||||||
double t1 = measured_ch0(size1 - 1, 0);
|
double t1 = measured_ch0(size1 - 1, 0);
|
||||||
@ -873,7 +879,6 @@ void HybridObservablesTest::check_results_carrier_phase_double_diff(
|
|||||||
const std::string& data_title)
|
const std::string& data_title)
|
||||||
{
|
{
|
||||||
// 1. True value interpolation to match the measurement times
|
// 1. True value interpolation to match the measurement times
|
||||||
|
|
||||||
double t0 = std::max(measured_ch0(0, 0), measured_ch1(0, 0));
|
double t0 = std::max(measured_ch0(0, 0), measured_ch1(0, 0));
|
||||||
int size1 = measured_ch0.col(0).n_rows;
|
int size1 = measured_ch0.col(0).n_rows;
|
||||||
int size2 = measured_ch1.col(0).n_rows;
|
int size2 = measured_ch1.col(0).n_rows;
|
||||||
@ -969,7 +974,6 @@ void HybridObservablesTest::check_results_carrier_doppler_double_diff(
|
|||||||
const std::string& data_title)
|
const std::string& data_title)
|
||||||
{
|
{
|
||||||
// 1. True value interpolation to match the measurement times
|
// 1. True value interpolation to match the measurement times
|
||||||
|
|
||||||
double t0 = std::max(measured_ch0(0, 0), measured_ch1(0, 0));
|
double t0 = std::max(measured_ch0(0, 0), measured_ch1(0, 0));
|
||||||
int size1 = measured_ch0.col(0).n_rows;
|
int size1 = measured_ch0.col(0).n_rows;
|
||||||
int size2 = measured_ch1.col(0).n_rows;
|
int size2 = measured_ch1.col(0).n_rows;
|
||||||
@ -1062,7 +1066,6 @@ void HybridObservablesTest::check_results_carrier_doppler(
|
|||||||
const std::string& data_title)
|
const std::string& data_title)
|
||||||
{
|
{
|
||||||
// 1. True value interpolation to match the measurement times
|
// 1. True value interpolation to match the measurement times
|
||||||
|
|
||||||
double t0 = measured_ch0(0, 0);
|
double t0 = measured_ch0(0, 0);
|
||||||
int size1 = measured_ch0.col(0).n_rows;
|
int size1 = measured_ch0.col(0).n_rows;
|
||||||
double t1 = measured_ch0(size1 - 1, 0);
|
double t1 = measured_ch0(size1 - 1, 0);
|
||||||
@ -1137,6 +1140,7 @@ void HybridObservablesTest::check_results_carrier_doppler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void HybridObservablesTest::check_results_duplicated_satellite(
|
void HybridObservablesTest::check_results_duplicated_satellite(
|
||||||
arma::mat& measured_sat1,
|
arma::mat& measured_sat1,
|
||||||
arma::mat& measured_sat2,
|
arma::mat& measured_sat2,
|
||||||
@ -1389,6 +1393,7 @@ void HybridObservablesTest::check_results_duplicated_satellite(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool HybridObservablesTest::save_mat_xy(std::vector<double>& x, std::vector<double>& y, std::string filename)
|
bool HybridObservablesTest::save_mat_xy(std::vector<double>& x, std::vector<double>& y, std::string filename)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -1435,7 +1440,6 @@ void HybridObservablesTest::check_results_code_pseudorange(
|
|||||||
const std::string& data_title)
|
const std::string& data_title)
|
||||||
{
|
{
|
||||||
// 1. True value interpolation to match the measurement times
|
// 1. True value interpolation to match the measurement times
|
||||||
|
|
||||||
double t0 = std::max(measured_ch0(0, 0), measured_ch1(0, 0));
|
double t0 = std::max(measured_ch0(0, 0), measured_ch1(0, 0));
|
||||||
int size1 = measured_ch0.col(0).n_rows;
|
int size1 = measured_ch0.col(0).n_rows;
|
||||||
int size2 = measured_ch1.col(0).n_rows;
|
int size2 = measured_ch1.col(0).n_rows;
|
||||||
@ -1522,6 +1526,7 @@ void HybridObservablesTest::check_results_code_pseudorange(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool HybridObservablesTest::ReadRinexObs(std::vector<arma::mat>* obs_vec, Gnss_Synchro gnss)
|
bool HybridObservablesTest::ReadRinexObs(std::vector<arma::mat>* obs_vec, Gnss_Synchro gnss)
|
||||||
{
|
{
|
||||||
// Open and read reference RINEX observables file
|
// Open and read reference RINEX observables file
|
||||||
@ -1662,6 +1667,8 @@ bool HybridObservablesTest::ReadRinexObs(std::vector<arma::mat>* obs_vec, Gnss_S
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST_F(HybridObservablesTest, ValidationOfResults)
|
TEST_F(HybridObservablesTest, ValidationOfResults)
|
||||||
{
|
{
|
||||||
// Configure the signal generator
|
// Configure the signal generator
|
||||||
@ -1699,7 +1706,6 @@ TEST_F(HybridObservablesTest, ValidationOfResults)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
configure_receiver(FLAGS_PLL_bw_hz_start,
|
configure_receiver(FLAGS_PLL_bw_hz_start,
|
||||||
FLAGS_DLL_bw_hz_start,
|
FLAGS_DLL_bw_hz_start,
|
||||||
FLAGS_PLL_narrow_bw_hz,
|
FLAGS_PLL_narrow_bw_hz,
|
||||||
@ -1708,7 +1714,6 @@ TEST_F(HybridObservablesTest, ValidationOfResults)
|
|||||||
FLAGS_smoother_length,
|
FLAGS_smoother_length,
|
||||||
FLAGS_high_dyn);
|
FLAGS_high_dyn);
|
||||||
|
|
||||||
|
|
||||||
for (auto& n : gnss_synchro_vec)
|
for (auto& n : gnss_synchro_vec)
|
||||||
{
|
{
|
||||||
// setup the signal synchronization, simulating an acquisition
|
// setup the signal synchronization, simulating an acquisition
|
||||||
@ -1814,7 +1819,6 @@ TEST_F(HybridObservablesTest, ValidationOfResults)
|
|||||||
}) << "Failure connecting tracking to the top_block.";
|
}) << "Failure connecting tracking to the top_block.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ASSERT_NO_THROW({
|
ASSERT_NO_THROW({
|
||||||
std::string file;
|
std::string file;
|
||||||
if (!FLAGS_enable_external_signal_file)
|
if (!FLAGS_enable_external_signal_file)
|
||||||
@ -1982,7 +1986,6 @@ TEST_F(HybridObservablesTest, ValidationOfResults)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (FLAGS_duplicated_satellites_test)
|
if (FLAGS_duplicated_satellites_test)
|
||||||
{
|
{
|
||||||
// special test mode for duplicated satellites
|
// special test mode for duplicated satellites
|
||||||
@ -2083,7 +2086,6 @@ TEST_F(HybridObservablesTest, ValidationOfResults)
|
|||||||
<< "Error finding observation time epoch in the reference data";
|
<< "Error finding observation time epoch in the reference data";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (unsigned int n = 0; n < measured_obs_vec.size(); n++)
|
for (unsigned int n = 0; n < measured_obs_vec.size(); n++)
|
||||||
{
|
{
|
||||||
// debug save to .mat
|
// debug save to .mat
|
||||||
@ -2123,7 +2125,6 @@ TEST_F(HybridObservablesTest, ValidationOfResults)
|
|||||||
measured_obs_vec.at(n).col(3).colptr(0) + measured_obs_vec.at(n).col(3).n_rows);
|
measured_obs_vec.at(n).col(3).colptr(0) + measured_obs_vec.at(n).col(3).n_rows);
|
||||||
save_mat_xy(tmp_vector_x6, tmp_vector_y6, std::string("measured_cp_ch_" + std::to_string(n)));
|
save_mat_xy(tmp_vector_x6, tmp_vector_y6, std::string("measured_cp_ch_" + std::to_string(n)));
|
||||||
|
|
||||||
|
|
||||||
if (epoch_counters_vec.at(n) > 100) // discard non-valid channels
|
if (epoch_counters_vec.at(n) > 100) // discard non-valid channels
|
||||||
{
|
{
|
||||||
arma::vec true_TOW_ref_ch_s = true_obs_vec.at(min_pr_ch_id).col(0) - receiver_time_offset_ref_channel_s(0);
|
arma::vec true_TOW_ref_ch_s = true_obs_vec.at(min_pr_ch_id).col(0) - receiver_time_offset_ref_channel_s(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user