From dc4c7b95515bf25906b8ef90450f597a4f84cbff Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Fri, 2 Mar 2018 11:30:36 +0100 Subject: [PATCH 001/108] Adding AD9361 fpga signal source --- CMakeLists.txt | 1 + cmake/Modules/Findlibiio.cmake | 32 ++ .../signal_source/adapters/CMakeLists.txt | 24 ++ .../adapters/ad9361_fpga_signal_source.cc | 299 ++++++++++++++++++ .../adapters/ad9361_fpga_signal_source.h | 109 +++++++ src/core/receiver/CMakeLists.txt | 5 + src/core/receiver/gnss_block_factory.cc | 13 + 7 files changed, 483 insertions(+) create mode 100644 cmake/Modules/Findlibiio.cmake create mode 100644 src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc create mode 100644 src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 1dcd4d375..669c2ae43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,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/cmake/Modules/Findlibiio.cmake b/cmake/Modules/Findlibiio.cmake new file mode 100644 index 000000000..a708d7062 --- /dev/null +++ b/cmake/Modules/Findlibiio.cmake @@ -0,0 +1,32 @@ +INCLUDE(FindPkgConfig) +PKG_CHECK_MODULES(PC_LIBIIO libiio) + +FIND_PATH( + LIBIIO_INCLUDE_DIRS + NAMES gnuradio/iio/api.h + HINTS $ENV{LIBIIO_DIR}/include + ${PC_LIBIIO_INCLUDEDIR} + PATHS ${CMAKE_INSTALL_PREFIX}/include + /usr/local/include + /usr/include +) + +FIND_LIBRARY( + LIBIIO_LIBRARIES + NAMES libiio.so + HINTS $ENV{LIBIIO_DIR}/lib + ${PC_LIBIIO_LIBDIR} + PATHS ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 + /usr/lib/x86_64-linux-gnu +) + +message("find libiio:") +message(${LIBIIO_LIBRARIES}) +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBIIO DEFAULT_MSG LIBIIO_LIBRARIES LIBIIO_INCLUDE_DIRS) +MARK_AS_ADVANCED(LIBIIO_LIBRARIES LIBIIO_INCLUDE_DIRS) diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index 2fb8f4be8..ededc5dc7 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -35,6 +35,20 @@ if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) endif(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) +if(ENABLE_AD9361) + find_package(libiio REQUIRED) + if(NOT LIBIIO_FOUND) + message(STATUS "gnuradio-iio not found, its installation is required.") + message(STATUS "Please build and install the following projects:") + message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") + message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") + message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") + message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") + endif(NOT LIBIIO_FOUND) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${LIBIIO_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${LIBIIO_INCLUDE_DIRS}) +endif(ENABLE_AD9361) + if(ENABLE_PLUTOSDR) ############################################## @@ -55,6 +69,16 @@ if(ENABLE_FMCOMMS2) endif(IIO_FOUND) endif(ENABLE_FMCOMMS2) +if(ENABLE_AD9361) + ############################################### + # AD9361 DIRECT TO FPGA Hardware + ############################################### + if(LIBIIO_FOUND) + set(OPT_DRIVER_SOURCES ${OPT_DRIVER_SOURCES} ad9361_fpga_signal_source.cc) + endif(LIBIIO_FOUND) +endif(ENABLE_AD9361) + + if(ENABLE_GN3S) ############################################## diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc new file mode 100644 index 000000000..3aaf74a79 --- /dev/null +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -0,0 +1,299 @@ +/*! + * \file ad9361_fpga_signal_source.cc + * \brief signal source for Analog Devices front-end AD9361 connected directly to FPGA accelerators. + * This source implements only the AD9361 control. It is NOT compatible with conventional SDR acquisition and tracking blocks. + * Please use the fmcomms2 source if conventional SDR acquisition and tracking is selected in the configuration file. + * \author Javier Arribas, jarribas(at)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 . + * + * ------------------------------------------------------------------------- + */ + +#include "ad9361_fpga_signal_source.h" +#include "configuration_interface.h" +#include "GPS_L1_CA.h" +#include +#include +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + + +/* RX is input, TX is output */ +enum iodev { RX, TX }; + +/* common RX and TX streaming params */ +struct stream_cfg { + long long bw_hz; // Analog banwidth in Hz + long long fs_hz; // Baseband sample rate in Hz + long long lo_hz; // Local oscillator frequency in Hz + const char* rfport; // Port name +}; + + +using google::LogMessage; + + +/* static scratch mem for strings */ +static char tmpstr[64]; + +/* IIO structs required for streaming */ +static struct iio_context *ctx = NULL; +static struct iio_channel *rx0_i = NULL; +static struct iio_channel *rx0_q = NULL; + +/* check return value of attr_write function */ +static void errchk(int v, const char* what) { + if (v < 0) { fprintf(stderr, "Error %d writing to channel \"%s\"\nvalue may not be supported.\n", v, what); } +} + +/* write attribute: long long int */ +static void wr_ch_lli(struct iio_channel *chn, const char* what, long long val) +{ + errchk(iio_channel_attr_write_longlong(chn, what, val), what); +} + +/* write attribute: string */ +static void wr_ch_str(struct iio_channel *chn, const char* what, const char* str) +{ + errchk(iio_channel_attr_write(chn, what, str), what); +} + + +/* helper function generating channel names */ +static char* get_ch_name(const char* type, int id) +{ + snprintf(tmpstr, sizeof(tmpstr), "%s%d", type, id); + return tmpstr; +} + +/* returns ad9361 phy device */ +static struct iio_device* get_ad9361_phy(struct iio_context *ctx) +{ + struct iio_device *dev = iio_context_find_device(ctx, "ad9361-phy"); + return dev; +} + +/* finds AD9361 streaming IIO devices */ +static bool get_ad9361_stream_dev(struct iio_context *ctx, enum iodev d, struct iio_device **dev) +{ + switch (d) { + case TX: *dev = iio_context_find_device(ctx, "cf-ad9361-dds-core-lpc"); return *dev != NULL; + case RX: *dev = iio_context_find_device(ctx, "cf-ad9361-lpc"); return *dev != NULL; + default: return false; + } +} + +/* finds AD9361 streaming IIO channels */ +static bool get_ad9361_stream_ch(struct iio_context *ctx, enum iodev d, struct iio_device *dev, int chid, struct iio_channel **chn) +{ + *chn = iio_device_find_channel(dev, get_ch_name("voltage", chid), d == TX); + if (!*chn) + *chn = iio_device_find_channel(dev, get_ch_name("altvoltage", chid), d == TX); + return *chn != NULL; +} + +/* finds AD9361 phy IIO configuration channel with id chid */ +static bool get_phy_chan(struct iio_context *ctx, enum iodev d, int chid, struct iio_channel **chn) +{ + switch (d) { + case RX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("voltage", chid), false); return *chn != NULL; + case TX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("voltage", chid), true); return *chn != NULL; + default: return false; + } +} + +/* finds AD9361 local oscillator IIO configuration channels */ +static bool get_lo_chan(struct iio_context *ctx, enum iodev d, struct iio_channel **chn) +{ + switch (d) { + // LO chan is always output, i.e. true + case RX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("altvoltage", 0), true); return *chn != NULL; + case TX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("altvoltage", 1), true); return *chn != NULL; + default: return false; + } +} + + +/* applies streaming configuration through IIO */ +bool cfg_ad9361_streaming_ch(struct iio_context *ctx, struct stream_cfg *cfg, enum iodev type, int chid) +{ + struct iio_channel *chn = NULL; + + // Configure phy and lo channels + printf("* Acquiring AD9361 phy channel %d\n", chid); + if (!get_phy_chan(ctx, type, chid, &chn)) { return false; } + wr_ch_str(chn, "rf_port_select", cfg->rfport); + wr_ch_lli(chn, "rf_bandwidth", cfg->bw_hz); + wr_ch_lli(chn, "sampling_frequency", cfg->fs_hz); + + // Configure LO channel + printf("* Acquiring AD9361 %s lo channel\n", type == TX ? "TX" : "RX"); + if (!get_lo_chan(ctx, type, &chn)) { return false; } + wr_ch_lli(chn, "frequency", cfg->lo_hz); + return true; +} + + +Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configuration, + std::string role, unsigned int in_stream, unsigned int out_stream, + boost::shared_ptr queue) : + role_(role), in_stream_(in_stream), out_stream_(out_stream), + queue_(queue) +{ + std::string default_item_type = "gr_complex"; + std::string default_dump_file = "./data/signal_source.dat"; + uri_ = configuration->property(role + ".device_address", std::string("192.168.2.1")); + freq_ = configuration->property(role + ".freq", GPS_L1_FREQ_HZ); + sample_rate_ = configuration->property(role + ".sampling_frequency", 2600000); + bandwidth_ = configuration->property(role + ".bandwidth", 2000000); + rx1_en_ = configuration->property(role + ".rx1_enable", true); + rx2_en_ = configuration->property(role + ".rx2_enable", false); + buffer_size_ = configuration->property(role + ".buffer_size", 0xA0000); + quadrature_ = configuration->property(role + ".quadrature", true); + rf_dc_ = configuration->property(role + ".rf_dc", true); + bb_dc_ = configuration->property(role + ".bb_dc", true); + gain_mode_rx1_ = configuration->property(role + ".gain_mode_rx1", std::string("manual")); + gain_mode_rx2_ = configuration->property(role + ".gain_mode_rx2", std::string("manual")); + rf_gain_rx1_ = configuration->property(role + ".gain_rx1", 64.0); + rf_gain_rx2_ = configuration->property(role + ".gain_rx2", 64.0); + rf_port_select_ = configuration->property(role + ".rf_port_select", std::string("A_BALANCED")); + filter_file_ = configuration->property(role + ".filter_file", std::string("")); + filter_auto_ = configuration->property(role + ".filter_auto", true); + item_type_ = configuration->property(role + ".item_type", default_item_type); + samples_ = configuration->property(role + ".samples", 0); + dump_ = configuration->property(role + ".dump", false); + dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); + + item_size_ = sizeof(gr_complex); + + std::cout << "device address: " << uri_ << std::endl; + std::cout << "LO frequency : " << freq_ << " Hz" << std::endl; + std::cout << "sample rate: " << sample_rate_ << " Hz" << std::endl; + + + // AD9361 Frontend IC device operation + + // Streaming devices + struct iio_device *rx; + + // RX stream config + // Stream configurations + struct stream_cfg rxcfg; + rxcfg.bw_hz = bandwidth_; // 2 MHz rf bandwidth + rxcfg.fs_hz = sample_rate_; // 2.5 MS/s rx sample rate + rxcfg.lo_hz = freq_; // 2.5 GHz rf frequency + rxcfg.rfport = rf_port_select_.c_str(); // port A (select for rf freq.) + + + std::cout<<"AD9361 Acquiring IIO context\n"; + ctx = iio_create_default_context(); + if (!ctx) + { + std::cout<<"No context\n"; + throw std::runtime_error("AD9361 IIO No context"); + } + + if (iio_context_get_devices_count(ctx) <= 0) + { + std::cout<<"No devices\n"; + throw std::runtime_error("AD9361 IIO No devices"); + } + + std::cout<<"* Acquiring AD9361 streaming devices\n"; + + if(!get_ad9361_stream_dev(ctx, RX, &rx)) + { + std::cout<<"No rx dev found\n"; + throw std::runtime_error("AD9361 IIO No rx dev found"); + }; + + std::cout<<"* Configuring AD9361 for streaming\n"; + if (!cfg_ad9361_streaming_ch(ctx, &rxcfg, RX, 0)) + { + std::cout<<"RX port 0 not found\n"; + throw std::runtime_error("AD9361 IIO RX port 0 not found"); + } + + std::cout<<"* Initializing AD9361 IIO streaming channels\n"; + if (!get_ad9361_stream_ch(ctx, RX, rx, 0, &rx0_i)) + { + std::cout<<"RX chan i not found\n"; + throw std::runtime_error("RX chan i not found"); + } + + if (!get_ad9361_stream_ch(ctx, RX, rx, 1, &rx0_q)) + { + std::cout<<"RX chan q not found\n"; + throw std::runtime_error("RX chan q not found"); + } + + std::cout<<"* Enabling IIO streaming channels\n"; + iio_channel_enable(rx0_i); + iio_channel_enable(rx0_q); + +} + + +Ad9361FpgaSignalSource::~Ad9361FpgaSignalSource() +{ + /* cleanup and exit */ + std::cout<<"* AD9361 Disabling streaming channels\n"; + if (rx0_i) { iio_channel_disable(rx0_i); } + if (rx0_q) { iio_channel_disable(rx0_q); } + + std::cout<<"* AD9361 Destroying context\n"; + if (ctx) { iio_context_destroy(ctx); } +} + + +void Ad9361FpgaSignalSource::connect(gr::top_block_sptr top_block) +{ + DLOG(INFO) << "AD9361 FPGA source nothing to connect"; +} + + +void Ad9361FpgaSignalSource::disconnect(gr::top_block_sptr top_block) +{ + DLOG(INFO) << "AD9361 FPGA source nothing to disconnect"; +} + + +gr::basic_block_sptr Ad9361FpgaSignalSource::get_left_block() +{ + LOG(WARNING) << "Trying to get signal source left block."; + return gr::basic_block_sptr(); +} + + +gr::basic_block_sptr Ad9361FpgaSignalSource::get_right_block() +{ + LOG(WARNING) << "Trying to get AD9361 FPGA signal source right block."; + return gr::basic_block_sptr(); +} diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h new file mode 100644 index 000000000..ff6b796b7 --- /dev/null +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h @@ -0,0 +1,109 @@ +/*! + * \file ad9361_fpga_signal_source.h + * \brief signal source for Analog Devices front-end AD9361 connected directly to FPGA accelerators. + * This source implements only the AD9361 control. It is NOT compatible with conventional SDR acquisition and tracking blocks. + * Please use the fmcomms2 source if conventional SDR acquisition and tracking is selected in the configuration file. + * + * ------------------------------------------------------------------------- + * + * 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_AD9361_FPGA_SIGNAL_SOURCE_H_ +#define GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H_ + +#include "gnss_block_interface.h" + +#include +#include +#include + +class ConfigurationInterface; + +class Ad9361FpgaSignalSource: public GNSSBlockInterface +{ +public: + Ad9361FpgaSignalSource(ConfigurationInterface* configuration, + std::string role, unsigned int in_stream, + unsigned int out_stream, boost::shared_ptr queue); + + virtual ~Ad9361FpgaSignalSource(); + + inline std::string role() override + { + return role_; + } + + /*! + * \brief Returns "Ad9361_Fpga_Signal_Source" + */ + inline std::string implementation() override + { + return "Ad9361_Fpga_Signal_Source"; + } + + inline size_t item_size() override + { + return item_size_; + } + + void connect(gr::top_block_sptr top_block) override; + void disconnect(gr::top_block_sptr top_block) override; + gr::basic_block_sptr get_left_block() override; + gr::basic_block_sptr get_right_block() override; + +private: + std::string role_; + + // Front-end settings + std::string uri_;//device direction + unsigned long freq_; //frequency of local oscilator + unsigned long sample_rate_; + unsigned long bandwidth_; + unsigned long buffer_size_; //reception buffer + bool rx1_en_; + bool rx2_en_; + bool quadrature_; + bool rf_dc_; + bool bb_dc_; + std::string gain_mode_rx1_; + std::string gain_mode_rx2_; + double rf_gain_rx1_; + double rf_gain_rx2_; + std::string rf_port_select_; + std::string filter_file_; + bool filter_auto_; + + unsigned int in_stream_; + unsigned int out_stream_; + + std::string item_type_; + size_t item_size_; + long samples_; + bool dump_; + std::string dump_filename_; + + boost::shared_ptr queue_; +}; + +#endif /*GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H_*/ diff --git a/src/core/receiver/CMakeLists.txt b/src/core/receiver/CMakeLists.txt index 0e12422a6..c922cdf3d 100644 --- a/src/core/receiver/CMakeLists.txt +++ b/src/core/receiver/CMakeLists.txt @@ -90,6 +90,11 @@ if(ENABLE_FMCOMMS2) set(OPT_RECEIVER_INCLUDE_DIRS ${OPT_RECEIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) endif(ENABLE_FMCOMMS2) +if(ENABLE_AD9361) + add_definitions(-DAD9361_DRIVER=1) + set(OPT_RECEIVER_INCLUDE_DIRS ${OPT_RECEIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) +endif(ENABLE_AD9361) + if(${PC_GNURADIO_RUNTIME_VERSION} VERSION_GREATER "3.7.13" ) add_definitions( -DGR_GREATER_38=1 ) endif(${PC_GNURADIO_RUNTIME_VERSION} VERSION_GREATER "3.7.13" ) diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 1ebab2595..e7d096fab 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -132,6 +132,10 @@ #include "fmcomms2_signal_source.h" #endif +#if AD9361_DRIVER +#include "ad9361_fpga_signal_source.h" +#endif + #if FLEXIBAND_DRIVER #include "flexiband_signal_source.h" #endif @@ -1080,6 +1084,15 @@ std::unique_ptr GNSSBlockFactory::GetBlock( } #endif +#if AD9361_DRIVER + else if (implementation.compare("Ad9361_Fpga_Signal_Source") == 0) + { + std::unique_ptr block_(new Ad9361FpgaSignalSource(configuration.get(), role, in_streams, + out_streams, queue)); + block = std::move(block_); + } +#endif + #if FLEXIBAND_DRIVER else if (implementation.compare("Flexiband_Signal_Source") == 0) { From 288dd481e776cf68f8147331b7396baaac8c143b Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Fri, 2 Mar 2018 12:23:10 +0100 Subject: [PATCH 002/108] Updating FPGA acquisition modules --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 51 ++---- .../gps_pcps_acquisition_fpga_sc.cc | 65 +++---- .../gps_pcps_acquisition_fpga_sc.h | 18 +- .../libs/gps_fpga_acquisition_8sc.cc | 161 ++++++++---------- .../libs/gps_fpga_acquisition_8sc.h | 21 +-- 5 files changed, 126 insertions(+), 190 deletions(-) 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 4b373edb3..00ff2008c 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 @@ -32,12 +32,10 @@ */ #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" using google::LogMessage; @@ -57,57 +55,46 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( unsigned int nsamples_total; unsigned int select_queue_Fpga; std::string device_name; - configuration_ = configuration; - std::string default_item_type = "cshort"; std::string default_dump_filename = "./data/acquisition.dat"; - 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); + item_type_ = configuration_->property(role + ".item_type", + default_item_type); + fs_in = configuration_->property("GNSS-SDR.internal_fs_sps", 2048000); ifreq = configuration_->property(role + ".if", 0); dump = configuration_->property(role + ".dump", false); 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); - + 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); - + 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); - + 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); - + 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); - - std::string default_device_name = "/dev/uio0"; - device_name = configuration_->property(role + ".devicename", default_device_name); - + select_queue_Fpga = configuration_->property(role + ".select_queue_Fpga", + 0); + std::string default_device_name = "/dev/uio0"; + device_name = configuration_->property(role + ".devicename", + default_device_name); if (item_type_.compare("cshort") == 0) { item_size_ = sizeof(lv_16sc_t); @@ -121,10 +108,8 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( } 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" ); + LOG(FATAL) << item_type_ << " FPGA only accepts chsort"; } - channel_ = 0; threshold_ = 0.0; doppler_step_ = 0; @@ -192,7 +177,6 @@ signed int GpsL1CaPcpsAcquisitionFpga::mag() void GpsL1CaPcpsAcquisitionFpga::init() { gps_acquisition_fpga_sc_->init(); - set_local_code(); } @@ -230,7 +214,6 @@ float GpsL1CaPcpsAcquisitionFpga::calculate_threshold(float pfa) double lambda = double(vector_length_); boost::math::exponential_distribution mydist(lambda); float threshold = static_cast(quantile(mydist, val)); - return threshold; } 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 index cc491f3c0..53b54686d 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc @@ -39,7 +39,10 @@ #include #include #include "control_message_factory.h" -#include "GPS_L1_CA.h" //GPS_TWO_PI +#include "GPS_L1_CA.h" + +#include + using google::LogMessage; void wait3(int seconds) @@ -74,12 +77,13 @@ gps_pcps_acquisition_fpga_sc::gps_pcps_acquisition_fpga_sc( unsigned int select_queue_Fpga, std::string device_name, bool dump, std::string dump_filename) : - gr::block("pcps_acquisition_fpga_sc", + //gr::block("pcps_acquisition_fpga_sc", + gr::block("gps_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_sample_counter = 0; // sample counter d_active = false; d_state = 0; d_samples_per_code = samples_per_code; @@ -94,16 +98,13 @@ gps_pcps_acquisition_fpga_sc::gps_pcps_acquisition_fpga_sc( 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 < gps_fpga_acquisition_8sc> - (device_name, vector_length, d_fft_size, nsamples_total, fs_in, freq, sampled_ms, select_queue_Fpga); + (device_name, vector_length, d_fft_size, doppler_max, nsamples_total, fs_in, freq, sampled_ms, select_queue_Fpga); } @@ -113,7 +114,6 @@ gps_pcps_acquisition_fpga_sc::~gps_pcps_acquisition_fpga_sc() { d_dump_file.close(); } - acquisition_fpga_8sc->free(); } @@ -134,14 +134,11 @@ void gps_pcps_acquisition_fpga_sc::init() 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->open_device(); acquisition_fpga_8sc->init(); } @@ -167,34 +164,28 @@ void gps_pcps_acquisition_fpga_sc::set_state(int state) } + + 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 - + //printf("ACQ : Block samples for PRN %d\n", d_gnss_synchro->PRN); +// 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: " @@ -207,26 +198,20 @@ void gps_pcps_acquisition_fpga_sc::set_active(bool active) doppler_index++) { - doppler = -static_cast(d_doppler_max) - + d_doppler_step * 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 = @@ -234,14 +219,12 @@ void gps_pcps_acquisition_fpga_sc::set_active(bool active) 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 @@ -250,19 +233,21 @@ void gps_pcps_acquisition_fpga_sc::set_active(bool active) << 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(); } + } + + //printf("ACQ : unblocking samples for satellite %d\n", d_gnss_synchro->PRN); +// acquisition_fpga_8sc->unblock_samples(); // unblock samples before sending positive or negative acquisition message to let the samples flow when the + // set local code function is called 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 << " " @@ -274,10 +259,8 @@ void gps_pcps_acquisition_fpga_sc::set_active(bool active) 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)); @@ -285,7 +268,6 @@ void gps_pcps_acquisition_fpga_sc::set_active(bool active) 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 << " " @@ -297,25 +279,18 @@ void gps_pcps_acquisition_fpga_sc::set_active(bool active) 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_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items __attribute__((unused)), gr_vector_void_star &output_items __attribute__((unused))) { // general work not used with the acquisition 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 index 561609109..a8316c634 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h @@ -46,8 +46,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_PCPS_ACQUISITION_FPGA_SC_H_ -#define GNSS_SDR_PCPS_ACQUISITION_FPGA_SC_H_ +#ifndef GNSS_SDR_GPS_PCPS_ACQUISITION_FPGA_SC_H_ +#define GNSS_SDR_GPS_PCPS_ACQUISITION_FPGA_SC_H_ #include #include @@ -57,6 +57,8 @@ #include "gnss_synchro.h" #include "gps_fpga_acquisition_8sc.h" +#include + class gps_pcps_acquisition_fpga_sc; typedef boost::shared_ptr gps_pcps_acquisition_fpga_sc_sptr; @@ -95,7 +97,6 @@ private: 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; @@ -105,15 +106,16 @@ private: 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; + 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; + //void set_active2(bool active); + boost::thread d_acq_thread; public: /*! @@ -155,6 +157,8 @@ public: * active mode * \param active - bool that activates/deactivates the block. */ + + void set_active(bool active); /*! @@ -212,4 +216,4 @@ public: }; -#endif /* GNSS_SDR_PCPS_ACQUISITION_SC_H_*/ +#endif /* GNSS_SDR_GPS_PCPS_ACQUISITION_SC_H_*/ diff --git a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc b/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc index ca80ee6ff..16280e1d4 100644 --- a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc +++ b/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc @@ -60,8 +60,10 @@ // logging #include +// volk #include +// GPS L1 #include "GPS_L1_CA.h" #define PAGE_SIZE 0x10000 @@ -78,15 +80,15 @@ bool gps_fpga_acquisition_8sc::init() 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]); + &d_all_fft_codes[d_nsamples_total * (PRN - 1)]); return true; } gps_fpga_acquisition_8sc::gps_fpga_acquisition_8sc(std::string device_name, unsigned int vector_length, unsigned int nsamples, + unsigned int doppler_max, unsigned int nsamples_total, long fs_in, long freq, unsigned int sampled_ms, unsigned select_queue) { @@ -97,48 +99,33 @@ gps_fpga_acquisition_8sc::gps_fpga_acquisition_8sc(std::string device_name, d_vector_length = vector_length; d_nsamples = nsamples; // number of samples not including padding d_select_queue = select_queue; - - d_doppler_max = 0; + 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 - - // 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 repeate 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 - + gr_complex* d_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 = 0; PRN < NUM_PRNs; PRN++) + for (unsigned int PRN = 1; 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++) + // fill in zero padding + for (int s=nsamples;sget_inbuf() + offset, code_total, sizeof(gr_complex) * vector_length); // copy to FFT buffer - + memcpy(d_fft_if->get_inbuf() + offset, code, sizeof(gr_complex) * nsamples_total); // 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 - + volk_32fc_conjugate_32fc(d_fft_codes_padded, d_fft_if->get_outbuf(), nsamples_total); // conjugate values max = 0; // initialize maximum value - - for (unsigned int i = 0; i < vector_length; i++) // search for maxima + for (unsigned int i = 0; i < nsamples_total; i++) // search for maxima { if (std::abs(d_fft_codes_padded[i].real()) > max) { @@ -149,35 +136,65 @@ gps_fpga_acquisition_8sc::gps_fpga_acquisition_8sc(std::string device_name, 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 + 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 + vector_length * PRN] = lv_16sc_t(static_cast(d_fft_codes_padded[i].real() * (pow(2, 7) - 1) / max), + d_all_fft_codes[i + nsamples_total * (PRN -1)] = 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)); + } - + } + // open communication with HW accelerator + //printf("opening device %s\n", d_device_name.c_str()); + if ((d_fd = open(d_device_name.c_str(), O_RDWR | O_SYNC)) == -1) + { + LOG(WARNING) << "Cannot open deviceio" << d_device_name; + //std::cout << "acquisition cannot open deviceio"; } - + 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"; + //std::cout << "acquisition : could not map the fpga registers to the driver" << std::endl; + } + // 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"; + //std:: cout << "Acquisition test register sanity check failed" << std::endl; + } + else + { + //std::cout << "Acquisition test register sanity check success !" << std::endl; + LOG(INFO) << "Acquisition test register sanity check success !"; + } + gps_fpga_acquisition_8sc::reset_acquisition(); + DLOG(INFO) << "Acquisition FPGA class created"; // 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() { + close_device(); 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; @@ -189,31 +206,31 @@ unsigned gps_fpga_acquisition_8sc::fpga_acquisition_test_register(unsigned write return readval; } - void gps_fpga_acquisition_8sc::fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[]) { - short int local_code; + unsigned short local_code; unsigned int k, tmp, tmp2; - + unsigned int fft_data; // clear memory address counter d_map_base[4] = 0x10000000; + // 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 & 0xFF) | ((tmp2 * 256) & 0xFF00); // put together the real part and the imaginary part - d_map_base[4] = 0x0C000000 | (local_code & 0xFFFF); + fft_data = 0x0C000000 | (local_code & 0xFFFF); + d_map_base[4] = fft_data; } } - 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 + // launch the acquisition process + d_map_base[6] = 1; // writing anything to reg 6 launches the acquisition process int irq_count; ssize_t nb; @@ -221,26 +238,24 @@ void gps_fpga_acquisition_8sc::run_acquisition(void) 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); + printf("acquisition module Read failed to retrieve 4 bytes!\n"); + printf("acquisition 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; + d_map_base[5] = (int) log2((float) d_vector_length); // log2 FFTlength } - 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 @@ -250,22 +265,19 @@ void gps_fpga_acquisition_8sc::set_phase_step(unsigned int doppler_index) 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) + 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 = (int32_t) (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]; @@ -276,7 +288,6 @@ void gps_fpga_acquisition_8sc::read_acquisition_results(uint32_t* max_index, *max_index = readval; } - void gps_fpga_acquisition_8sc::block_samples() { d_map_base[14] = 1; // block the samples @@ -288,44 +299,6 @@ 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); @@ -336,3 +309,7 @@ void gps_fpga_acquisition_8sc::close_device() close(d_fd); } +void gps_fpga_acquisition_8sc::reset_acquisition(void) +{ + d_map_base[6] = 2; // 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/gps_fpga_acquisition_8sc.h index 4f48af3bc..609abf0d9 100644 --- a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h +++ b/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h @@ -2,7 +2,7 @@ * \file fpga_acquisition_8sc.h * \brief High optimized FPGA vector correlator class for lv_16sc_t (short int complex). * \authors
    - *
  • Marc Majoral, 2017. mmajoral(at)cttc.cat + *
  • Marc Majoral, 2017. mmajoral(at)cttc.cat *
* * Class that controls and executes a high optimized vector correlator @@ -33,11 +33,10 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_FPGA_ACQUISITION_8SC_H_ -#define GNSS_SDR_FPGA_ACQUISITION_8SC_H_ +#ifndef GNSS_GPS_SDR_FPGA_ACQUISITION_8SC_H_ +#define GNSS_GPS_SDR_FPGA_ACQUISITION_8SC_H_ #include - #include #include @@ -49,6 +48,7 @@ class gps_fpga_acquisition_8sc public: gps_fpga_acquisition_8sc(std::string device_name, unsigned int vector_length, 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();bool init();bool set_local_code( @@ -60,9 +60,7 @@ public: unsigned *initial_sample, float *power_sum); void block_samples(); void unblock_samples(); - void open_device(); - void close_device(); - + //void open_device(); /*! * \brief Set maximum Doppler grid search * \param doppler_max - Maximum Doppler shift considered in the grid search [Hz]. @@ -71,7 +69,6 @@ public: { d_doppler_max = doppler_max; } - /*! * \brief Set Doppler steps for the grid search * \param doppler_step - Frequency bin of the search grid [Hz]. @@ -86,23 +83,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 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_GPS_SDR_FPGA_MULTICORRELATOR_H_ */ From c2fc4b9854536962ae7027106f59b766d43a72b3 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Fri, 2 Mar 2018 17:40:13 +0100 Subject: [PATCH 003/108] Updating GPS L1 FPGA tracking adapters --- .../tracking/adapters/CMakeLists.txt | 2 +- .../gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc | 228 ----- .../gps_l1_ca_dll_pll_tracking_fpga.cc | 155 +++ ...ga.h => gps_l1_ca_dll_pll_tracking_fpga.h} | 38 +- .../tracking/gnuradio_blocks/CMakeLists.txt | 2 +- ...ps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc | 947 ------------------ ...gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h | 185 ---- .../gps_l1_ca_dll_pll_tracking_fpga_sc.cc | 586 +++++++++++ .../gps_l1_ca_dll_pll_tracking_fpga_sc.h | 200 ++++ src/algorithms/tracking/libs/CMakeLists.txt | 2 + .../tracking/libs/fpga_multicorrelator_8sc.cc | 126 ++- .../tracking/libs/fpga_multicorrelator_8sc.h | 41 +- .../fpga_multicorrelator_real_codes_8sc.cc | 148 +++ .../fpga_multicorrelator_real_codes_8sc.h | 73 ++ src/core/receiver/gnss_block_factory.cc | 10 +- .../gps_l1_ca_dll_pll_tracking_test_fpga.cc | 11 +- 16 files changed, 1304 insertions(+), 1450 deletions(-) delete mode 100644 src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc create mode 100644 src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc rename src/algorithms/tracking/adapters/{gps_l1_ca_dll_pll_c_aid_tracking_fpga.h => gps_l1_ca_dll_pll_tracking_fpga.h} (72%) delete mode 100644 src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc delete mode 100644 src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h create mode 100644 src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc create mode 100644 src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h create mode 100644 src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc create mode 100644 src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h diff --git a/src/algorithms/tracking/adapters/CMakeLists.txt b/src/algorithms/tracking/adapters/CMakeLists.txt index 437626d06..98fcfc99e 100644 --- a/src/algorithms/tracking/adapters/CMakeLists.txt +++ b/src/algorithms/tracking/adapters/CMakeLists.txt @@ -22,7 +22,7 @@ if(ENABLE_CUDA) endif(ENABLE_CUDA) if(ENABLE_FPGA) - SET(OPT_TRACKING_ADAPTERS ${OPT_TRACKING_ADAPTERS} gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc) + SET(OPT_TRACKING_ADAPTERS ${OPT_TRACKING_ADAPTERS} gps_l1_ca_dll_pll_tracking_fpga.cc) endif(ENABLE_FPGA) set(TRACKING_ADAPTER_SOURCES diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc deleted file mode 100644 index 36d53d086..000000000 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc +++ /dev/null @@ -1,228 +0,0 @@ -/*! - * \file gps_l1_ca_dll_pll_c_aid_tracking_fpga.cc - * \brief Implementation of an adapter of a DLL+PLL tracking loop block - * for GPS L1 C/A to a TrackingInterface - * \author Marc Majoral, 2017. mmajoral(at)cttc.cat - * Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com - * Javier Arribas, 2011. jarribas(at)cttc.es - * - * Code DLL + carrier PLL according to the algorithms described in: - * 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 - * - * ------------------------------------------------------------------------- - * - * 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_l1_ca_dll_pll_c_aid_tracking_fpga.h" -#include -#include "GPS_L1_CA.h" -#include "configuration_interface.h" -#include "gnss_sdr_flags.h" - - -using google::LogMessage; - -GpsL1CaDllPllCAidTrackingFpga::GpsL1CaDllPllCAidTrackingFpga( - ConfigurationInterface* configuration, std::string role, - unsigned int in_streams, unsigned int out_streams) : - role_(role), in_streams_(in_streams), out_streams_(out_streams) -{ - DLOG(INFO) << "role " << role; - //################# CONFIGURATION PARAMETERS ######################## - int fs_in; - int vector_length; - int f_if; - bool dump; - std::string dump_filename; - std::string default_item_type = "cshort"; - float pll_bw_hz; - float pll_bw_narrow_hz; - float dll_bw_hz; - float dll_bw_narrow_hz; - float early_late_space_chips; - std::string device_name; - unsigned int device_base; - - item_type_ = configuration->property(role + ".item_type", default_item_type); - int fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000); - fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); - f_if = configuration->property(role + ".if", 0); - dump = configuration->property(role + ".dump", false); - pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0); - if(FLAGS_pll_bw_hz != 0.0) pll_bw_hz = static_cast(FLAGS_pll_bw_hz); - dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0); - if(FLAGS_dll_bw_hz != 0.0) dll_bw_hz = static_cast(FLAGS_dll_bw_hz); - pll_bw_narrow_hz = configuration->property(role + ".pll_bw_narrow_hz", 20.0); - dll_bw_narrow_hz = configuration->property(role + ".dll_bw_narrow_hz", 2.0); - int extend_correlation_ms; - extend_correlation_ms = configuration->property(role + ".extend_correlation_ms", 1); - - early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5); - std::string default_dump_filename = "./track_ch"; - dump_filename = configuration->property(role + ".dump_filename", default_dump_filename); - std::string default_device_name = "/dev/uio"; - device_name = configuration->property(role + ".devicename", default_device_name); - device_base = configuration->property(role + ".device_base", 1); - vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS)); - - //################# MAKE TRACKING GNURadio object ################### - - if (item_type_.compare("cshort") == 0) - { - item_size_ = sizeof(lv_16sc_t); - tracking_fpga_sc = gps_l1_ca_dll_pll_c_aid_make_tracking_fpga_sc( - f_if, fs_in, vector_length, dump, dump_filename, pll_bw_hz, - dll_bw_hz, pll_bw_narrow_hz, dll_bw_narrow_hz, - extend_correlation_ms, early_late_space_chips, device_name, - device_base); - DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; - } - else - { - - item_size_ = sizeof(lv_16sc_t); - // LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type_ - << " the tracking item type for the FPGA tracking test has to be cshort"; - } - - channel_ = 0; -} - - -GpsL1CaDllPllCAidTrackingFpga::~GpsL1CaDllPllCAidTrackingFpga() -{ - LOG(INFO) << "gspl1cadllpllcaidtrackingfpga destructor called"; -} - - -void GpsL1CaDllPllCAidTrackingFpga::start_tracking() -{ - if (item_type_.compare("cshort") == 0) - { - tracking_fpga_sc->start_tracking(); - } - else - { - // LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type_ - << " the tracking item type for the FPGA tracking test has to be cshort"; - } -} - - -/* - * Set tracking channel unique ID - */ -void GpsL1CaDllPllCAidTrackingFpga::set_channel(unsigned int channel) -{ - channel_ = channel; - - if (item_type_.compare("cshort") == 0) - { - tracking_fpga_sc->set_channel(channel); - } - else - { - // LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type_ - << " the tracking item type for the FPGA tracking test has to be cshort"; - } -} - - -void GpsL1CaDllPllCAidTrackingFpga::set_gnss_synchro( - Gnss_Synchro* p_gnss_synchro) -{ - if (item_type_.compare("cshort") == 0) - { - tracking_fpga_sc->set_gnss_synchro(p_gnss_synchro); - } - else - { - // LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type_ - << " the tracking item type for the FPGA tracking test has to be cshort"; - } -} - - -void GpsL1CaDllPllCAidTrackingFpga::connect(gr::top_block_sptr top_block) -{ - if (top_block) - { /* top_block is not null */ - }; - //nothing to connect, now the tracking uses gr_sync_decimator -} - - -void GpsL1CaDllPllCAidTrackingFpga::disconnect(gr::top_block_sptr top_block) -{ - if (top_block) - { /* top_block is not null */ - }; - //nothing to disconnect, now the tracking uses gr_sync_decimator -} - - -// CONVERT TO SOURCE -gr::basic_block_sptr GpsL1CaDllPllCAidTrackingFpga::get_left_block() -{ - if (item_type_.compare("cshort") == 0) - { - return tracking_fpga_sc; - } - else - { - //LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type_ - << " the tracking item type for the FPGA tracking test has to be cshort"; - return nullptr; - } -} - - -gr::basic_block_sptr GpsL1CaDllPllCAidTrackingFpga::get_right_block() -{ - if (item_type_.compare("cshort") == 0) - { - return tracking_fpga_sc; - } - else - { - //LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type_ - << " the tracking item type for the FPGA tracking test has to be cshort"; - return nullptr; - } -} - - -void GpsL1CaDllPllCAidTrackingFpga::reset(void) -{ - tracking_fpga_sc->reset(); -} - diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc new file mode 100644 index 000000000..336e93eb8 --- /dev/null +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc @@ -0,0 +1,155 @@ +/*! + * \file gps_l1_ca_dll_pll_tracking.cc + * \brief Implementation of an adapter of a DLL+PLL tracking loop block + * for GPS L1 C/A to a TrackingInterface + * \author Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com + * Javier Arribas, 2011. jarribas(at)cttc.es + * + * Code DLL + carrier PLL according to the algorithms described in: + * 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 + * + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2015 (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_l1_ca_dll_pll_tracking_fpga.h" +#include +#include "GPS_L1_CA.h" +#include "configuration_interface.h" + + +using google::LogMessage; + +GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga( + ConfigurationInterface* configuration, std::string role, + unsigned int in_streams, unsigned int out_streams) : + role_(role), in_streams_(in_streams), out_streams_(out_streams) +{ + DLOG(INFO) << "role " << role; + //################# CONFIGURATION PARAMETERS ######################## + int fs_in; + int vector_length; + int f_if; + bool dump; + std::string dump_filename; + std::string item_type; + //std::string default_item_type = "gr_complex"; + std::string default_item_type = "cshort"; + float pll_bw_hz; + float dll_bw_hz; + float early_late_space_chips; + item_type = configuration->property(role + ".item_type", default_item_type); + int fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000); + std::string device_name; + unsigned int device_base; + std::string default_device_name = "/dev/uio"; + device_name = configuration->property(role + ".devicename", default_device_name); + device_base = configuration->property(role + ".device_base", 1); + fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); + f_if = configuration->property(role + ".if", 0); + dump = configuration->property(role + ".dump", false); + pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0); + dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0); + early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5); + std::string default_dump_filename = "./track_ch"; + dump_filename = configuration->property(role + ".dump_filename", default_dump_filename); //unused! + vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS)); + if (item_type.compare("cshort") == 0) + { + item_size_ = sizeof(lv_16sc_t); + tracking_fpga_sc = gps_l1_ca_dll_pll_make_tracking_fpga_sc( + f_if, fs_in, vector_length, dump, dump_filename, pll_bw_hz, + dll_bw_hz, early_late_space_chips, device_name, + device_base); + DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() + << ")"; + } + else + { + + item_size_ = sizeof(lv_16sc_t); + // LOG(WARNING) << item_type_ << " unknown tracking item type"; + LOG(WARNING) << item_type + << " the tracking item type for the FPGA tracking test has to be cshort"; + } + channel_ = 0; + DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; +} + +GpsL1CaDllPllTrackingFpga::~GpsL1CaDllPllTrackingFpga() +{} + +void GpsL1CaDllPllTrackingFpga::start_tracking() +{ + tracking_fpga_sc->start_tracking(); +} + +/* + * Set tracking channel unique ID + */ +void GpsL1CaDllPllTrackingFpga::set_channel(unsigned int channel) +{ + channel_ = channel; + tracking_fpga_sc->set_channel(channel); +} + +void GpsL1CaDllPllTrackingFpga::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) +{ + tracking_fpga_sc->set_gnss_synchro(p_gnss_synchro); +} + +void GpsL1CaDllPllTrackingFpga::connect(gr::top_block_sptr top_block) +{ + if(top_block) { /* top_block is not null */}; + //nothing to connect, now the tracking uses gr_sync_decimator +} + + +void GpsL1CaDllPllTrackingFpga::disconnect(gr::top_block_sptr top_block) +{ + if(top_block) { /* top_block is not null */}; + //nothing to disconnect, now the tracking uses gr_sync_decimator +} + + +gr::basic_block_sptr GpsL1CaDllPllTrackingFpga::get_left_block() +{ + return tracking_fpga_sc; +} + + +gr::basic_block_sptr GpsL1CaDllPllTrackingFpga::get_right_block() +{ + return tracking_fpga_sc; +} + + +void GpsL1CaDllPllTrackingFpga::reset(void) +{ + // tracking_fpga_sc->reset(); + +} diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h similarity index 72% rename from src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.h rename to src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h index c828f9c3d..f45e3f802 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking_fpga.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h @@ -1,9 +1,8 @@ /*! - * \file gps_l1_ca_dll_pll_c_aid_tracking_fpga.h + * \file gps_l1_ca_dll_pll_tracking.h * \brief Interface of an adapter of a DLL+PLL tracking loop block * for GPS L1 C/A to a TrackingInterface - * \author Marc Majoral, 2017. mmajoral(at)cttc.cat - * Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com + * \author Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com * Javier Arribas, 2011. jarribas(at)cttc.es * * Code DLL + carrier PLL according to the algorithms described in: @@ -13,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * 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 @@ -36,36 +35,38 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_FPGA__H_ -#define GNSS_SDR_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_FPGA__H_ +#ifndef GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ +#define GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ #include #include "tracking_interface.h" -#include "gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h" +#include "gps_l1_ca_dll_pll_tracking_fpga_sc.h" + class ConfigurationInterface; /*! * \brief This class implements a code DLL + carrier PLL tracking loop */ -class GpsL1CaDllPllCAidTrackingFpga : public TrackingInterface +class GpsL1CaDllPllTrackingFpga : public TrackingInterface { public: - GpsL1CaDllPllCAidTrackingFpga(ConfigurationInterface* configuration, - std::string role, unsigned int in_streams, + GpsL1CaDllPllTrackingFpga(ConfigurationInterface* configuration, + std::string role, + unsigned int in_streams, unsigned int out_streams); - virtual ~GpsL1CaDllPllCAidTrackingFpga(); + virtual ~GpsL1CaDllPllTrackingFpga(); inline std::string role() override { return role_; } - //! Returns "GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga" + //! Returns "GPS_L1_CA_DLL_PLL_Tracking_Fpga" inline std::string implementation() override { - return "GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga"; + return "GPS_L1_CA_DLL_PLL_Tracking_Fpga"; } inline size_t item_size() override @@ -75,7 +76,6 @@ public: void connect(gr::top_block_sptr top_block) override; void disconnect(gr::top_block_sptr top_block) override; - // CONVERT TO SOURCE gr::basic_block_sptr get_left_block() override; gr::basic_block_sptr get_right_block() override; @@ -92,16 +92,16 @@ public: void start_tracking() override; - void reset(void); - + void reset(void); + private: - gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc_sptr tracking_fpga_sc; + //gps_l1_ca_dll_pll_tracking_cc_sptr tracking_; + gps_l1_ca_dll_pll_tracking_fpga_sc_sptr tracking_fpga_sc; size_t item_size_; - std::string item_type_; unsigned int channel_; std::string role_; unsigned int in_streams_; unsigned int out_streams_; }; -#endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_FPGA__H_ +#endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ diff --git a/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt b/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt index 4c4a2a550..b764548ef 100644 --- a/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt @@ -23,7 +23,7 @@ if(ENABLE_CUDA) endif(ENABLE_CUDA) if(ENABLE_FPGA) - set(OPT_TRACKING_BLOCKS ${OPT_TRACKING_BLOCKS} gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc) + set(OPT_TRACKING_BLOCKS ${OPT_TRACKING_BLOCKS} gps_l1_ca_dll_pll_tracking_fpga_sc.cc) endif(ENABLE_FPGA) set(TRACKING_GR_BLOCKS_SOURCES diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc deleted file mode 100644 index a8e0d0428..000000000 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc +++ /dev/null @@ -1,947 +0,0 @@ -/*! - * \file gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc - * \brief Implementation of a code DLL + carrier PLL tracking block - * \author Marc Majoral, 2017. mmajoral(at)cttc.cat - * Javier Arribas, 2015. jarribas(at)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 . - * - * ------------------------------------------------------------------------- - */ - -#include "gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h" -#include "gnss_synchro.h" -#include "gps_sdr_signal_processing.h" -#include "tracking_discriminators.h" -#include "lock_detectors.h" -#include "GPS_L1_CA.h" -#include "gnss_sdr_flags.h" -#include "control_message_factory.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -using google::LogMessage; - -gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc_sptr gps_l1_ca_dll_pll_c_aid_make_tracking_fpga_sc( - long if_freq, long fs_in, unsigned int vector_length, bool dump, - std::string dump_filename, float pll_bw_hz, float dll_bw_hz, - float pll_bw_narrow_hz, float dll_bw_narrow_hz, - int extend_correlation_ms, float early_late_space_chips, - std::string device_name, unsigned int device_base) -{ - return gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc_sptr( - new gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc(if_freq, fs_in, - vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, - pll_bw_narrow_hz, dll_bw_narrow_hz, extend_correlation_ms, - early_late_space_chips, device_name, device_base)); -} - - -void gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::msg_handler_preamble_index( - pmt::pmt_t msg) -{ - DLOG(INFO) << "Extended correlation enabled for Tracking CH " - << d_channel << ": Satellite " - << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN); - if (d_enable_extended_integration == false) //avoid re-setting preamble indicator - { - d_preamble_timestamp_s = pmt::to_double(msg); - d_enable_extended_integration = true; - d_preamble_synchronized = false; - } -} - - -gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc( - long if_freq, long fs_in, unsigned int vector_length, bool dump, - std::string dump_filename, float pll_bw_hz, float dll_bw_hz, - float pll_bw_narrow_hz, float dll_bw_narrow_hz, - int extend_correlation_ms, float early_late_space_chips, - std::string device_name, unsigned int device_base) : - gr::block("gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc", - gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) - -{ - // Telemetry bit synchronization message port input - this->message_port_register_in(pmt::mp("preamble_timestamp_s")); - this->set_msg_handler(pmt::mp("preamble_timestamp_s"), - boost::bind( - &gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::msg_handler_preamble_index, - this, _1)); - this->message_port_register_out(pmt::mp("events")); - // initialize internal vars - d_dump = dump; - d_if_freq = if_freq; - d_fs_in = fs_in; - d_vector_length = vector_length; - d_dump_filename = dump_filename; - d_correlation_length_samples = static_cast(d_vector_length); - - // Initialize tracking ========================================== - d_pll_bw_hz = pll_bw_hz; - d_dll_bw_hz = dll_bw_hz; - d_pll_bw_narrow_hz = pll_bw_narrow_hz; - d_dll_bw_narrow_hz = dll_bw_narrow_hz; - d_code_loop_filter.set_DLL_BW(d_dll_bw_hz); - d_carrier_loop_filter.set_params(10.0, d_pll_bw_hz, 2); - d_extend_correlation_ms = extend_correlation_ms; - - // --- DLL variables -------------------------------------------------------- - d_early_late_spc_chips = early_late_space_chips; // Define early-late offset (in chips) - - // Initialization of local code replica - // Get space for a vector with the C/A code replica sampled 1x/chip - d_ca_code = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS) * sizeof(gr_complex), volk_gnsssdr_get_alignment())); - d_ca_code_16sc = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS) * sizeof(lv_16sc_t), volk_gnsssdr_get_alignment())); - - // correlator outputs (scalar) - d_n_correlator_taps = 3; // Early, Prompt, and Late - - d_correlator_outs_16sc = static_cast(volk_gnsssdr_malloc(d_n_correlator_taps * sizeof(lv_16sc_t), - volk_gnsssdr_get_alignment())); - - for (int n = 0; n < d_n_correlator_taps; n++) - { - d_correlator_outs_16sc[n] = lv_cmake(0, 0); - } - - d_local_code_shift_chips = static_cast(volk_gnsssdr_malloc(d_n_correlator_taps * sizeof(float), volk_gnsssdr_get_alignment())); - - // Set TAPs delay values [chips] - d_local_code_shift_chips[0] = -d_early_late_spc_chips; - d_local_code_shift_chips[1] = 0.0; - d_local_code_shift_chips[2] = d_early_late_spc_chips; - - // create multicorrelator class - multicorrelator_fpga_8sc = std::make_shared (d_n_correlator_taps, device_name, device_base); - - //--- Perform initializations ------------------------------ - // define initial code frequency basis of NCO - d_code_freq_chips = GPS_L1_CA_CODE_RATE_HZ; - // define residual code phase (in chips) - d_rem_code_phase_samples = 0.0; - // define residual carrier phase - d_rem_carrier_phase_rad = 0.0; - - // sample synchronization - d_sample_counter = 0; //(from trk to tlm) - d_acq_sample_stamp = 0; - d_enable_tracking = false; - d_pull_in = false; - - // CN0 estimation and lock detector buffers - d_cn0_estimation_counter = 0; - d_Prompt_buffer = new gr_complex[FLAGS_cn0_samples]; - d_carrier_lock_test = 1; - d_CN0_SNV_dB_Hz = 0; - d_carrier_lock_fail_counter = 0; - d_carrier_lock_threshold = FLAGS_carrier_lock_th; - - systemName["G"] = std::string("GPS"); - systemName["S"] = std::string("SBAS"); - - set_relative_rate(1.0 / static_cast(d_vector_length)); - - d_acquisition_gnss_synchro = 0; - d_channel = 0; - d_acq_code_phase_samples = 0.0; - d_acq_carrier_doppler_hz = 0.0; - d_carrier_doppler_hz = 0.0; - d_acc_carrier_phase_cycles = 0.0; - d_code_phase_samples = 0.0; - d_enable_extended_integration = false; - d_preamble_synchronized = false; - d_rem_code_phase_integer_samples = 0; - d_code_error_chips_Ti = 0.0; - d_pll_to_dll_assist_secs_Ti = 0.0; - d_rem_code_phase_chips = 0.0; - d_code_phase_step_chips = 0.0; - d_carrier_phase_step_rad = 0.0; - d_code_error_filt_chips_s = 0.0; - d_code_error_filt_chips_Ti = 0.0; - d_preamble_timestamp_s = 0.0; - d_carr_phase_error_secs_Ti = 0.0; - //set_min_output_buffer((long int)300); -} - - -void gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::start_tracking() -{ - /* - * correct the code phase according to the delay between acq and trk - */ - d_acq_code_phase_samples = d_acquisition_gnss_synchro->Acq_delay_samples; - d_acq_carrier_doppler_hz = d_acquisition_gnss_synchro->Acq_doppler_hz; - d_acq_sample_stamp = d_acquisition_gnss_synchro->Acq_samplestamp_samples; - - long int acq_trk_diff_samples; - double acq_trk_diff_seconds; - acq_trk_diff_samples = static_cast(d_sample_counter) - static_cast(d_acq_sample_stamp); - DLOG(INFO) << "Number of samples between Acquisition and Tracking =" << acq_trk_diff_samples; - acq_trk_diff_seconds = static_cast(acq_trk_diff_samples) / static_cast(d_fs_in); - // Doppler effect - // Fd=(C/(C+Vr))*F - double radial_velocity = (GPS_L1_FREQ_HZ + d_acq_carrier_doppler_hz) / GPS_L1_FREQ_HZ; - // new chip and prn sequence periods based on acq Doppler - double T_chip_mod_seconds; - double T_prn_mod_seconds; - double T_prn_mod_samples; - d_code_freq_chips = radial_velocity * GPS_L1_CA_CODE_RATE_HZ; - d_code_phase_step_chips = static_cast(d_code_freq_chips) / static_cast(d_fs_in); - T_chip_mod_seconds = 1.0 / d_code_freq_chips; - T_prn_mod_seconds = T_chip_mod_seconds * GPS_L1_CA_CODE_LENGTH_CHIPS; - T_prn_mod_samples = T_prn_mod_seconds * static_cast(d_fs_in); - - d_correlation_length_samples = round(T_prn_mod_samples); - - double T_prn_true_seconds = GPS_L1_CA_CODE_LENGTH_CHIPS / GPS_L1_CA_CODE_RATE_HZ; - double T_prn_true_samples = T_prn_true_seconds * static_cast(d_fs_in); - double T_prn_diff_seconds = T_prn_true_seconds - T_prn_mod_seconds; - double N_prn_diff = acq_trk_diff_seconds / T_prn_true_seconds; - double corrected_acq_phase_samples, delay_correction_samples; - corrected_acq_phase_samples = fmod((d_acq_code_phase_samples + T_prn_diff_seconds * N_prn_diff * static_cast(d_fs_in)), T_prn_true_samples); - if (corrected_acq_phase_samples < 0) - { - corrected_acq_phase_samples = T_prn_mod_samples + corrected_acq_phase_samples; - } - delay_correction_samples = d_acq_code_phase_samples - corrected_acq_phase_samples; - - d_acq_code_phase_samples = corrected_acq_phase_samples; - - d_carrier_doppler_hz = d_acq_carrier_doppler_hz; - - d_carrier_phase_step_rad = GPS_TWO_PI * d_carrier_doppler_hz / static_cast(d_fs_in); - - // DLL/PLL filter initialization - d_carrier_loop_filter.initialize(d_acq_carrier_doppler_hz); // The carrier loop filter implements the Doppler accumulator - d_code_loop_filter.initialize(); // initialize the code filter - - // generate local reference ALWAYS starting at chip 1 (1 sample per chip) - gps_l1_ca_code_gen_complex(d_ca_code, d_acquisition_gnss_synchro->PRN, 0); - volk_gnsssdr_32fc_convert_16ic(d_ca_code_16sc, d_ca_code, static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS)); - - multicorrelator_fpga_8sc->set_local_code_and_taps(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS), d_ca_code_16sc, d_local_code_shift_chips); - for (int n = 0; n < d_n_correlator_taps; n++) - { - d_correlator_outs_16sc[n] = lv_16sc_t(0, 0); - } - - d_carrier_lock_fail_counter = 0; - d_rem_code_phase_samples = 0.0; - d_rem_carrier_phase_rad = 0.0; - d_rem_code_phase_chips = 0.0; - d_acc_carrier_phase_cycles = 0.0; - d_pll_to_dll_assist_secs_Ti = 0.0; - d_code_phase_samples = d_acq_code_phase_samples; - - std::string sys_ = &d_acquisition_gnss_synchro->System; - sys = sys_.substr(0, 1); - - // DEBUG OUTPUT - std::cout << "Tracking start on channel " << d_channel << " for satellite " - << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) - << std::endl; - LOG(INFO) << "Starting tracking of satellite " - << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) - << " on channel " << d_channel; - - // enable tracking - d_pull_in = true; - d_enable_tracking = true; - d_enable_extended_integration = false; - d_preamble_synchronized = false; - - // lock the channel - multicorrelator_fpga_8sc->lock_channel(); - - LOG(INFO) << "PULL-IN Doppler [Hz]=" << d_carrier_doppler_hz - << " Code Phase correction [samples]=" << delay_correction_samples - << " PULL-IN Code Phase [samples]=" << d_acq_code_phase_samples; -} - - -gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::~gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc() -{ - if (d_dump_file.is_open()) - { - try - { - d_dump_file.close(); - } - catch(const std::exception & ex) - { - LOG(WARNING)<< "Exception in destructor " << ex.what(); - } - } - - if(d_dump) - { - if(d_channel == 0) - { - std::cout << "Writing .mat files ..."; - } - gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::save_matfile(); - if(d_channel == 0) - { - std::cout << " done." << std::endl; - } - } - - try - { - volk_gnsssdr_free(d_local_code_shift_chips); - volk_gnsssdr_free(d_ca_code); - volk_gnsssdr_free(d_ca_code_16sc); - volk_gnsssdr_free(d_correlator_outs_16sc); - delete[] d_Prompt_buffer; - multicorrelator_fpga_8sc->free(); - } - catch(const std::exception & ex) - { - LOG(WARNING) << "Exception in destructor " << ex.what(); - } -} - - -int gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::general_work( - int noutput_items __attribute__((unused)), - gr_vector_int &ninput_items __attribute__((unused)), - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) -{ - // samples offset - int samples_offset; - - // Block input data and block output stream pointers - Gnss_Synchro **out = reinterpret_cast(&output_items[0]); - - Gnss_Synchro current_synchro_data = Gnss_Synchro(); - - // process vars - double code_error_filt_secs_Ti = 0.0; - double CURRENT_INTEGRATION_TIME_S = 0.0; - double CORRECTED_INTEGRATION_TIME_S = 0.0; - - if (d_enable_tracking == true) - { - // Fill the acquisition data - current_synchro_data = *d_acquisition_gnss_synchro; - // Receiver signal alignment - if (d_pull_in == true) - { - double acq_trk_shif_correction_samples; - int acq_to_trk_delay_samples; - acq_to_trk_delay_samples = d_sample_counter - d_acq_sample_stamp; - acq_trk_shif_correction_samples = d_correlation_length_samples - fmod( static_cast(acq_to_trk_delay_samples), static_cast(d_correlation_length_samples)); - samples_offset = round(d_acq_code_phase_samples + acq_trk_shif_correction_samples); - current_synchro_data.Tracking_sample_counter = d_sample_counter + samples_offset; - d_sample_counter += samples_offset; // count for the processed samples - d_pull_in = false; - d_acc_carrier_phase_cycles -= d_carrier_phase_step_rad * samples_offset / GPS_TWO_PI; - current_synchro_data.Carrier_phase_rads = d_acc_carrier_phase_cycles * GPS_TWO_PI; - current_synchro_data.Carrier_Doppler_hz = d_carrier_doppler_hz; - current_synchro_data.fs = d_fs_in; - *out[0] = current_synchro_data; - //consume_each(samples_offset); // shift input to perform alignment with local replica - multicorrelator_fpga_8sc->set_initial_sample(samples_offset); - - return 1; - } - - // ################# CARRIER WIPEOFF AND CORRELATORS ############################## - // perform carrier wipe-off and compute Early, Prompt and Late correlation - multicorrelator_fpga_8sc->set_output_vectors(d_correlator_outs_16sc); - - multicorrelator_fpga_8sc->Carrier_wipeoff_multicorrelator_resampler( - d_rem_carrier_phase_rad, d_carrier_phase_step_rad, - d_rem_code_phase_chips, d_code_phase_step_chips, - d_correlation_length_samples); - - // ####### coherent intergration extension - // keep the last symbols - d_E_history.push_back(d_correlator_outs_16sc[0]); // save early output - d_P_history.push_back(d_correlator_outs_16sc[1]); // save prompt output - d_L_history.push_back(d_correlator_outs_16sc[2]); // save late output - - if (static_cast(d_P_history.size()) > d_extend_correlation_ms) - { - d_E_history.pop_front(); - d_P_history.pop_front(); - d_L_history.pop_front(); - } - - bool enable_dll_pll; - if (d_enable_extended_integration == true) - { - long int symbol_diff = round(1000.0 * ((static_cast(d_sample_counter) + d_rem_code_phase_samples) / static_cast(d_fs_in) - d_preamble_timestamp_s)); - if (symbol_diff > 0 and symbol_diff % d_extend_correlation_ms == 0) - { - // compute coherent integration and enable tracking loop - // perform coherent integration using correlator output history - // std::cout<<"##### RESET COHERENT INTEGRATION ####"<PRN) - << " pll_bw = " << d_pll_bw_hz - << " [Hz], pll_narrow_bw = " - << d_pll_bw_narrow_hz << " [Hz]" - << std::endl << " dll_bw = " - << d_dll_bw_hz - << " [Hz], dll_narrow_bw = " - << d_dll_bw_narrow_hz << " [Hz]" - << std::endl; - } - // UPDATE INTEGRATION TIME - CURRENT_INTEGRATION_TIME_S = static_cast(d_extend_correlation_ms) * GPS_L1_CA_CODE_PERIOD; - enable_dll_pll = true; - } - else - { - if (d_preamble_synchronized == true) - { - // continue extended coherent correlation - // Compute the next buffer length based on the period of the PRN sequence and the code phase error estimation - double T_chip_seconds = 1.0 / d_code_freq_chips; - double T_prn_seconds = T_chip_seconds * GPS_L1_CA_CODE_LENGTH_CHIPS; - double T_prn_samples = T_prn_seconds * static_cast(d_fs_in); - int K_prn_samples = round(T_prn_samples); - double K_T_prn_error_samples = K_prn_samples - T_prn_samples; - - d_rem_code_phase_samples = d_rem_code_phase_samples - K_T_prn_error_samples; - d_rem_code_phase_integer_samples = round(d_rem_code_phase_samples); // round to a discrete number of samples - d_correlation_length_samples = K_prn_samples + d_rem_code_phase_integer_samples; - d_rem_code_phase_samples = d_rem_code_phase_samples - d_rem_code_phase_integer_samples; - // code phase step (Code resampler phase increment per sample) [chips/sample] - d_code_phase_step_chips = d_code_freq_chips / static_cast(d_fs_in); - // remnant code phase [chips] - d_rem_code_phase_chips = d_rem_code_phase_samples * (d_code_freq_chips / static_cast(d_fs_in)); - d_rem_carrier_phase_rad = fmod(d_rem_carrier_phase_rad + d_carrier_phase_step_rad * static_cast(d_correlation_length_samples), GPS_TWO_PI); - - // UPDATE ACCUMULATED CARRIER PHASE - CORRECTED_INTEGRATION_TIME_S = (static_cast(d_correlation_length_samples) / static_cast(d_fs_in)); - d_acc_carrier_phase_cycles -= d_carrier_phase_step_rad * d_correlation_length_samples / GPS_TWO_PI; - - // disable tracking loop and inform telemetry decoder - enable_dll_pll = false; - } - else - { - // perform basic (1ms) correlation - // UPDATE INTEGRATION TIME - CURRENT_INTEGRATION_TIME_S = static_cast(d_correlation_length_samples) / static_cast(d_fs_in); - enable_dll_pll = true; - } - } - } - else - { - // UPDATE INTEGRATION TIME - CURRENT_INTEGRATION_TIME_S = static_cast(d_correlation_length_samples) / static_cast(d_fs_in); - enable_dll_pll = true; - } - - if (enable_dll_pll == true) - { - // ################## PLL ########################################################## - // Update PLL discriminator [rads/Ti -> Secs/Ti] - d_carr_phase_error_secs_Ti = pll_cloop_two_quadrant_atan(std::complex(d_correlator_outs_16sc[1].real(), d_correlator_outs_16sc[1].imag())) / GPS_TWO_PI; //prompt output - - // Carrier discriminator filter - // NOTICE: The carrier loop filter includes the Carrier Doppler accumulator, as described in Kaplan - // Input [s/Ti] -> output [Hz] - d_carrier_doppler_hz = d_carrier_loop_filter.get_carrier_error(0.0, d_carr_phase_error_secs_Ti, CURRENT_INTEGRATION_TIME_S); - // PLL to DLL assistance [Secs/Ti] - d_pll_to_dll_assist_secs_Ti = (d_carrier_doppler_hz * CURRENT_INTEGRATION_TIME_S) / GPS_L1_FREQ_HZ; - // code Doppler frequency update - d_code_freq_chips = GPS_L1_CA_CODE_RATE_HZ + ((d_carrier_doppler_hz * GPS_L1_CA_CODE_RATE_HZ) / GPS_L1_FREQ_HZ); - - // ################## DLL ########################################################## - // DLL discriminator - d_code_error_chips_Ti = dll_nc_e_minus_l_normalized( - std::complex( - d_correlator_outs_16sc[0].real(), - d_correlator_outs_16sc[0].imag()), - std::complex( - d_correlator_outs_16sc[2].real(), - d_correlator_outs_16sc[2].imag())); // [chips/Ti] //early and late - // Code discriminator filter - d_code_error_filt_chips_s = d_code_loop_filter.get_code_nco(d_code_error_chips_Ti); // input [chips/Ti] -> output [chips/second] - d_code_error_filt_chips_Ti = d_code_error_filt_chips_s * CURRENT_INTEGRATION_TIME_S; - code_error_filt_secs_Ti = d_code_error_filt_chips_Ti / d_code_freq_chips; // [s/Ti] - - // ################## CARRIER AND CODE NCO BUFFER ALIGNEMENT ####################### - // keep alignment parameters for the next input buffer - // Compute the next buffer length based in the new period of the PRN sequence and the code phase error estimation - double T_chip_seconds = 1.0 / d_code_freq_chips; - double T_prn_seconds = T_chip_seconds * GPS_L1_CA_CODE_LENGTH_CHIPS; - double T_prn_samples = T_prn_seconds * static_cast(d_fs_in); - double K_prn_samples = round(T_prn_samples); - double K_T_prn_error_samples = K_prn_samples - T_prn_samples; - - d_rem_code_phase_samples = d_rem_code_phase_samples - K_T_prn_error_samples + code_error_filt_secs_Ti * static_cast(d_fs_in); //(code_error_filt_secs_Ti + d_pll_to_dll_assist_secs_Ti) * static_cast(d_fs_in); - d_rem_code_phase_integer_samples = round(d_rem_code_phase_samples); // round to a discrete number of samples - d_correlation_length_samples = K_prn_samples+ d_rem_code_phase_integer_samples; - d_rem_code_phase_samples = d_rem_code_phase_samples - d_rem_code_phase_integer_samples; - - //################### PLL COMMANDS ################################################# - //carrier phase step (NCO phase increment per sample) [rads/sample] - d_carrier_phase_step_rad = GPS_TWO_PI * d_carrier_doppler_hz / static_cast(d_fs_in); - d_acc_carrier_phase_cycles -= d_carrier_phase_step_rad * d_correlation_length_samples / GPS_TWO_PI; - // UPDATE ACCUMULATED CARRIER PHASE - CORRECTED_INTEGRATION_TIME_S = (static_cast(d_correlation_length_samples) / static_cast(d_fs_in)); - //remnant carrier phase [rad] - d_rem_carrier_phase_rad = fmod(d_rem_carrier_phase_rad + GPS_TWO_PI * d_carrier_doppler_hz * CORRECTED_INTEGRATION_TIME_S, GPS_TWO_PI); - - //################### DLL COMMANDS ################################################# - //code phase step (Code resampler phase increment per sample) [chips/sample] - d_code_phase_step_chips = d_code_freq_chips / static_cast(d_fs_in); - //remnant code phase [chips] - d_rem_code_phase_chips = d_rem_code_phase_samples * (d_code_freq_chips / static_cast(d_fs_in)); - - // ####### CN0 ESTIMATION AND LOCK DETECTORS ####################################### - if (d_cn0_estimation_counter < FLAGS_cn0_samples) - { - // fill buffer with prompt correlator output values - d_Prompt_buffer[d_cn0_estimation_counter] = lv_cmake(static_cast(d_correlator_outs_16sc[1].real()), - static_cast(d_correlator_outs_16sc[1].imag())); // prompt - d_cn0_estimation_counter++; - } - else - { - d_cn0_estimation_counter = 0; - // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); - // Carrier lock indicator - d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); - // Loss of lock detection - if (d_carrier_lock_test < d_carrier_lock_threshold or d_CN0_SNV_dB_Hz < FLAGS_cn0_min) - { - d_carrier_lock_fail_counter++; - } - else - { - if (d_carrier_lock_fail_counter > 0) - { - d_carrier_lock_fail_counter--; - } - } - if (d_carrier_lock_fail_counter > FLAGS_max_lock_fail) - { - std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl; - LOG(INFO) << "Loss of lock in channel " << d_channel << "!"; - this->message_port_pub(pmt::mp("events"), pmt::from_long(3)); //3 -> loss of lock - d_carrier_lock_fail_counter = 0; - d_enable_tracking = false; // TODO: check if disabling tracking is consistent with the channel state machine - multicorrelator_fpga_8sc->unlock_channel(); - } - } - // ########### Output the tracking data to navigation and PVT ########## - current_synchro_data.Prompt_I = static_cast((d_correlator_outs_16sc[1]).real()); - current_synchro_data.Prompt_Q = static_cast((d_correlator_outs_16sc[1]).imag()); - current_synchro_data.Tracking_sample_counter = d_sample_counter + d_correlation_length_samples; - current_synchro_data.Code_phase_samples = d_rem_code_phase_samples; - current_synchro_data.Carrier_phase_rads = GPS_TWO_PI * d_acc_carrier_phase_cycles; - current_synchro_data.Carrier_Doppler_hz = d_carrier_doppler_hz; - current_synchro_data.CN0_dB_hz = d_CN0_SNV_dB_Hz; - current_synchro_data.Flag_valid_symbol_output = true; - if (d_preamble_synchronized == true) - { - current_synchro_data.correlation_length_ms = d_extend_correlation_ms; - } - else - { - current_synchro_data.correlation_length_ms = 1; - } - } - else - { - current_synchro_data.Prompt_I = static_cast((d_correlator_outs_16sc[1]).real()); - current_synchro_data.Prompt_Q = static_cast((d_correlator_outs_16sc[1]).imag()); - current_synchro_data.Tracking_sample_counter = d_sample_counter + d_correlation_length_samples; - current_synchro_data.Code_phase_samples = d_rem_code_phase_samples; - current_synchro_data.Carrier_phase_rads = GPS_TWO_PI * d_acc_carrier_phase_cycles; - current_synchro_data.Carrier_Doppler_hz = d_carrier_doppler_hz; // todo: project the carrier doppler - current_synchro_data.CN0_dB_hz = d_CN0_SNV_dB_Hz; - } - } - else - { - for (int n = 0; n < d_n_correlator_taps; n++) - { - d_correlator_outs_16sc[n] = lv_cmake(0, 0); - } - - current_synchro_data.System = {'G'}; - current_synchro_data.Tracking_sample_counter = d_sample_counter + d_correlation_length_samples; - } - - current_synchro_data.fs = d_fs_in; - *out[0] = current_synchro_data; - - if (d_dump) - { - // MULTIPLEXED FILE RECORDING - Record results to file - float prompt_I; - float prompt_Q; - float tmp_E, tmp_P, tmp_L; - double tmp_double; - prompt_I = d_correlator_outs_16sc[1].real(); - prompt_Q = d_correlator_outs_16sc[1].imag(); - tmp_E = std::abs(std::complex(d_correlator_outs_16sc[0].real(), d_correlator_outs_16sc[0].imag())); - tmp_P = std::abs(std::complex(d_correlator_outs_16sc[1].real(), d_correlator_outs_16sc[1].imag())); - tmp_L = std::abs(std::complex(d_correlator_outs_16sc[2].real(), d_correlator_outs_16sc[2].imag())); - try - { - // EPR - d_dump_file.write(reinterpret_cast(&tmp_E), sizeof(float)); - d_dump_file.write(reinterpret_cast(&tmp_P), sizeof(float)); - d_dump_file.write(reinterpret_cast(&tmp_L), sizeof(float)); - // PROMPT I and Q (to analyze navigation symbols) - d_dump_file.write(reinterpret_cast(&prompt_I), sizeof(float)); - d_dump_file.write(reinterpret_cast(&prompt_Q), sizeof(float)); - // PRN start sample stamp - //tmp_float=(float)d_sample_counter; - d_dump_file.write(reinterpret_cast(&d_sample_counter), sizeof(unsigned long int)); - // accumulated carrier phase - d_dump_file.write(reinterpret_cast(&d_acc_carrier_phase_cycles), sizeof(double)); - - // carrier and code frequency - d_dump_file.write(reinterpret_cast(&d_carrier_doppler_hz), sizeof(double)); - d_dump_file.write(reinterpret_cast(&d_code_freq_chips), sizeof(double)); - - //PLL commands - d_dump_file.write(reinterpret_cast(&d_carr_phase_error_secs_Ti), sizeof(double)); - d_dump_file.write(reinterpret_cast(&d_carrier_doppler_hz), sizeof(double)); - - //DLL commands - d_dump_file.write(reinterpret_cast(&d_code_error_chips_Ti), sizeof(double)); - d_dump_file.write(reinterpret_cast(&d_code_error_filt_chips_Ti), sizeof(double)); - - // CN0 and carrier lock test - d_dump_file.write(reinterpret_cast(&d_CN0_SNV_dB_Hz), sizeof(double)); - d_dump_file.write(reinterpret_cast(&d_carrier_lock_test), sizeof(double)); - - // AUX vars (for debug purposes) - tmp_double = d_code_error_chips_Ti * CURRENT_INTEGRATION_TIME_S; - d_dump_file.write(reinterpret_cast(&tmp_double), sizeof(double)); - tmp_double = static_cast(d_sample_counter + d_correlation_length_samples); - d_dump_file.write(reinterpret_cast(&tmp_double), sizeof(double)); - - // PRN - unsigned int prn_ = d_acquisition_gnss_synchro->PRN; - d_dump_file.write(reinterpret_cast(&prn_), sizeof(unsigned int)); - } - catch (const std::ifstream::failure* e) - { - LOG(WARNING) << "Exception writing trk dump file " << e->what(); - } - } - - //consume_each(d_correlation_length_samples); // this is necessary in gr::block derivates - d_sample_counter += d_correlation_length_samples; //count for the processed samples - - if (d_enable_tracking) - { - return 1; - }else{ - return 0; - } -} - - -void gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::set_channel(unsigned int channel) -{ - d_channel = channel; - multicorrelator_fpga_8sc->set_channel(d_channel); - LOG(INFO) << "Tracking Channel set to " << d_channel; - // ############# ENABLE DATA FILE LOG ################# - if (d_dump == true) - { - if (d_dump_file.is_open() == false) - { - try - { - d_dump_filename.append(boost::lexical_cast(d_channel)); - d_dump_filename.append(".dat"); - d_dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); - d_dump_file.open(d_dump_filename.c_str(), std::ios::out | std::ios::binary); - LOG(INFO) << "Tracking dump enabled on channel " - << d_channel << " Log file: " - << d_dump_filename.c_str(); - } - catch (const std::ifstream::failure* e) - { - LOG(WARNING) << "channel " << d_channel - << " Exception opening trk dump file " - << e->what(); - } - } - } -} - - -int gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::save_matfile() -{ - // READ DUMP FILE - std::ifstream::pos_type size; - int number_of_double_vars = 11; - int number_of_float_vars = 5; - int epoch_size_bytes = sizeof(unsigned long int) + sizeof(double) * number_of_double_vars + - sizeof(float) * number_of_float_vars + sizeof(unsigned int); - std::ifstream dump_file; - dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); - try - { - dump_file.open(d_dump_filename.c_str(), std::ios::binary | std::ios::ate); - } - catch(const std::ifstream::failure &e) - { - std::cerr << "Problem opening dump file:" << e.what() << std::endl; - return 1; - } - // count number of epochs and rewind - long int num_epoch = 0; - if (dump_file.is_open()) - { - size = dump_file.tellg(); - num_epoch = static_cast(size) / static_cast(epoch_size_bytes); - dump_file.seekg(0, std::ios::beg); - } - else - { - return 1; - } - float * abs_E = new float [num_epoch]; - float * abs_P = new float [num_epoch]; - float * abs_L = new float [num_epoch]; - float * Prompt_I = new float [num_epoch]; - float * Prompt_Q = new float [num_epoch]; - unsigned long int * PRN_start_sample_count = new unsigned long int [num_epoch]; - double * acc_carrier_phase_rad = new double [num_epoch]; - double * carrier_doppler_hz = new double [num_epoch]; - double * code_freq_chips = new double [num_epoch]; - double * carr_error_hz = new double [num_epoch]; - double * carr_error_filt_hz = new double [num_epoch]; - double * code_error_chips = new double [num_epoch]; - double * code_error_filt_chips = new double [num_epoch]; - double * CN0_SNV_dB_Hz = new double [num_epoch]; - double * carrier_lock_test = new double [num_epoch]; - double * aux1 = new double [num_epoch]; - double * aux2 = new double [num_epoch]; - unsigned int * PRN = new unsigned int [num_epoch]; - - try - { - if (dump_file.is_open()) - { - for(long int i = 0; i < num_epoch; i++) - { - dump_file.read(reinterpret_cast(&abs_E[i]), sizeof(float)); - dump_file.read(reinterpret_cast(&abs_P[i]), sizeof(float)); - dump_file.read(reinterpret_cast(&abs_L[i]), sizeof(float)); - dump_file.read(reinterpret_cast(&Prompt_I[i]), sizeof(float)); - dump_file.read(reinterpret_cast(&Prompt_Q[i]), sizeof(float)); - dump_file.read(reinterpret_cast(&PRN_start_sample_count[i]), sizeof(unsigned long int)); - dump_file.read(reinterpret_cast(&acc_carrier_phase_rad[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&carrier_doppler_hz[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&code_freq_chips[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&carr_error_hz[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&carr_error_filt_hz[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&code_error_chips[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&code_error_filt_chips[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&CN0_SNV_dB_Hz[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&carrier_lock_test[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&aux1[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&aux2[i]), sizeof(double)); - dump_file.read(reinterpret_cast(&PRN[i]), sizeof(unsigned int)); - } - } - dump_file.close(); - } - catch (const std::ifstream::failure &e) - { - std::cerr << "Problem reading dump file:" << e.what() << std::endl; - delete[] abs_E; - delete[] abs_P; - delete[] abs_L; - delete[] Prompt_I; - delete[] Prompt_Q; - delete[] PRN_start_sample_count; - delete[] acc_carrier_phase_rad; - delete[] carrier_doppler_hz; - delete[] code_freq_chips; - delete[] carr_error_hz; - delete[] carr_error_filt_hz; - delete[] code_error_chips; - delete[] code_error_filt_chips; - delete[] CN0_SNV_dB_Hz; - delete[] carrier_lock_test; - delete[] aux1; - delete[] aux2; - delete[] PRN; - return 1; - } - - // WRITE MAT FILE - mat_t *matfp; - matvar_t *matvar; - std::string filename = d_dump_filename; - filename.erase(filename.length() - 4, 4); - filename.append(".mat"); - matfp = Mat_CreateVer(filename.c_str(), NULL, MAT_FT_MAT73); - if(reinterpret_cast(matfp) != NULL) - { - size_t dims[2] = {1, static_cast(num_epoch)}; - matvar = Mat_VarCreate("abs_E", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, abs_E, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("abs_P", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, abs_P, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("abs_L", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, abs_L, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("Prompt_I", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, Prompt_I, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("Prompt_Q", MAT_C_SINGLE, MAT_T_SINGLE, 2, dims, Prompt_Q, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("PRN_start_sample_count", MAT_C_UINT64, MAT_T_UINT64, 2, dims, PRN_start_sample_count, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("acc_carrier_phase_rad", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, acc_carrier_phase_rad, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("carrier_doppler_hz", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, carrier_doppler_hz, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("code_freq_chips", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, code_freq_chips, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("carr_error_hz", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, carr_error_hz, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("carr_error_filt_hz", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, carr_error_filt_hz, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("code_error_chips", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, code_error_chips, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("code_error_filt_chips", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, code_error_filt_chips, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("CN0_SNV_dB_Hz", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, CN0_SNV_dB_Hz, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("carrier_lock_test", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, carrier_lock_test, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("aux1", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, aux1, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("aux2", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims, aux2, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - - matvar = Mat_VarCreate("PRN", MAT_C_UINT32, MAT_T_UINT32, 2, dims, PRN, 0); - Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE - Mat_VarFree(matvar); - } - Mat_Close(matfp); - delete[] abs_E; - delete[] abs_P; - delete[] abs_L; - delete[] Prompt_I; - delete[] Prompt_Q; - delete[] PRN_start_sample_count; - delete[] acc_carrier_phase_rad; - delete[] carrier_doppler_hz; - delete[] code_freq_chips; - delete[] carr_error_hz; - delete[] carr_error_filt_hz; - delete[] code_error_chips; - delete[] code_error_filt_chips; - delete[] CN0_SNV_dB_Hz; - delete[] carrier_lock_test; - delete[] aux1; - delete[] aux2; - delete[] PRN; - return 0; -} - -void gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::set_gnss_synchro( - Gnss_Synchro* p_gnss_synchro) -{ - d_acquisition_gnss_synchro = p_gnss_synchro; -} - - -void gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::reset(void) -{ - multicorrelator_fpga_8sc->unlock_channel(); -} diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h deleted file mode 100644 index d1a3db6d5..000000000 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h +++ /dev/null @@ -1,185 +0,0 @@ -/*! - * \file gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h - * \brief Interface of a code DLL + carrier PLL tracking block - * \author Marc Majoral, 2017. mmajoral(at)cttc.cat - * Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com - * Javier Arribas, 2011. jarribas(at)cttc.es - * - * Code DLL + carrier PLL according to the algorithms described in: - * 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 - * - * ------------------------------------------------------------------------- - * - * 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_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_FPGA_SC_H -#define GNSS_SDR_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_FPGA_SC_H - -#include "gps_sdr_signal_processing.h" -#include "gnss_synchro.h" -#include "tracking_2nd_DLL_filter.h" -#include "tracking_FLL_PLL_filter.h" -#include "fpga_multicorrelator_8sc.h" -#include -#include -#include -#include -#include -#include -#include - -class gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc; - -typedef boost::shared_ptr gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc_sptr; - -gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc_sptr -gps_l1_ca_dll_pll_c_aid_make_tracking_fpga_sc(long if_freq, long fs_in, unsigned -int vector_length, bool dump, std::string dump_filename, float pll_bw_hz, - float dll_bw_hz, float pll_bw_narrow_hz, float dll_bw_narrow_hz, - int extend_correlation_ms, float early_late_space_chips, - std::string device_name, unsigned int device_base); - -/*! - * \brief This class implements a DLL + PLL tracking loop block - */ -class gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc : public gr::block -{ -public: - ~gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc(); - - void set_channel(unsigned int channel); - void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro); - void start_tracking(); - - int general_work(int noutput_items, gr_vector_int &ninput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items); - - void reset(void); - -private: - friend gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc_sptr - gps_l1_ca_dll_pll_c_aid_make_tracking_fpga_sc(long if_freq, long fs_in, - unsigned - int vector_length, bool dump, std::string dump_filename, - float pll_bw_hz, float dll_bw_hz, float pll_bw_narrow_hz, - float dll_bw_narrow_hz, int extend_correlation_ms, - float early_late_space_chips, std::string device_name, - unsigned int device_base); - - gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc(long if_freq, long fs_in, unsigned - int vector_length, bool dump, std::string dump_filename, float pll_bw_hz, - float dll_bw_hz, float pll_bw_narrow_hz, float dll_bw_narrow_hz, - int extend_correlation_ms, float early_late_space_chips, - std::string device_name, unsigned int device_base); - - // tracking configuration vars - unsigned int d_vector_length;bool d_dump; - - Gnss_Synchro* d_acquisition_gnss_synchro; - unsigned int d_channel; - - long d_if_freq; - long d_fs_in; - - double d_early_late_spc_chips; - int d_n_correlator_taps; - - gr_complex* d_ca_code; - lv_16sc_t* d_ca_code_16sc; - float* d_local_code_shift_chips; - lv_16sc_t* d_correlator_outs_16sc; - //fpga_multicorrelator_8sc multicorrelator_fpga_8sc; - std::shared_ptr multicorrelator_fpga_8sc; - - // remaining code phase and carrier phase between tracking loops - double d_rem_code_phase_samples; - double d_rem_code_phase_chips; - double d_rem_carrier_phase_rad; - int d_rem_code_phase_integer_samples; - - // PLL and DLL filter library - Tracking_2nd_DLL_filter d_code_loop_filter; - Tracking_FLL_PLL_filter d_carrier_loop_filter; - - // acquisition - double d_acq_code_phase_samples; - double d_acq_carrier_doppler_hz; - - // tracking vars - float d_dll_bw_hz; - float d_pll_bw_hz; - float d_dll_bw_narrow_hz; - float d_pll_bw_narrow_hz; - double d_code_freq_chips; - double d_code_phase_step_chips; - double d_carrier_doppler_hz; - double d_carrier_phase_step_rad; - double d_acc_carrier_phase_cycles; - double d_code_phase_samples; - double d_pll_to_dll_assist_secs_Ti; - double d_carr_phase_error_secs_Ti; - double d_code_error_chips_Ti; - double d_preamble_timestamp_s; - int d_extend_correlation_ms;bool d_enable_extended_integration;bool d_preamble_synchronized; - double d_code_error_filt_chips_s; - double d_code_error_filt_chips_Ti; - void msg_handler_preamble_index(pmt::pmt_t msg); - - // symbol history to detect bit transition - std::deque d_E_history; - std::deque d_P_history; - std::deque d_L_history; - - //Integration period in samples - int d_correlation_length_samples; - - //processing samples counters - unsigned long int d_sample_counter; - unsigned long int d_acq_sample_stamp; - - // CN0 estimation and lock detector - int d_cn0_estimation_counter; - gr_complex* d_Prompt_buffer; - double d_carrier_lock_test; - double d_CN0_SNV_dB_Hz; - double d_carrier_lock_threshold; - int d_carrier_lock_fail_counter; - - // control vars - bool d_enable_tracking;bool d_pull_in; - - // file dump - std::string d_dump_filename; - std::ofstream d_dump_file; - - std::map systemName; - std::string sys; - - int save_matfile(); -}; - -#endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_C_AID_TRACKING_FPGA_SC_H diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc new file mode 100644 index 000000000..a6ebb9bec --- /dev/null +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc @@ -0,0 +1,586 @@ +/*! + * \file gps_l1_ca_dll_pll_tracking_cc.cc + * \brief Implementation of a code DLL + carrier PLL tracking block + * \author Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com + * Javier Arribas, 2011. jarribas(at)cttc.es + * + * Code DLL + carrier PLL according to the algorithms described in: + * [1] 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 + * + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2015 (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_l1_ca_dll_pll_tracking_fpga_sc.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include "gps_sdr_signal_processing.h" +#include "tracking_discriminators.h" +#include "lock_detectors.h" +#include "GPS_L1_CA.h" +#include "control_message_factory.h" + + +/*! + * \todo Include in definition header file + */ +#define CN0_ESTIMATION_SAMPLES 20 +#define MINIMUM_VALID_CN0 25 +#define MAXIMUM_LOCK_FAIL_COUNTER 50 +#define CARRIER_LOCK_THRESHOLD 0.85 + + +using google::LogMessage; + +gps_l1_ca_dll_pll_tracking_fpga_sc_sptr +gps_l1_ca_dll_pll_make_tracking_fpga_sc( + long if_freq, + long fs_in, + unsigned int vector_length, + bool dump, + std::string dump_filename, + float pll_bw_hz, + float dll_bw_hz, + float early_late_space_chips, + std::string device_name, + unsigned int device_base) +{ + return gps_l1_ca_dll_pll_tracking_fpga_sc_sptr(new Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc(if_freq, + fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, early_late_space_chips, device_name, device_base)); +} + +Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( + long if_freq, + long fs_in, + unsigned int vector_length, + bool dump, + std::string dump_filename, + float pll_bw_hz, + float dll_bw_hz, + float early_late_space_chips, + std::string device_name, + unsigned int device_base) : + gr::block("Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc", gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) +{ + // Telemetry bit synchronization message port input + this->message_port_register_in(pmt::mp("preamble_timestamp_s")); + this->message_port_register_out(pmt::mp("events")); + + // initialize internal vars + d_dump = dump; + d_if_freq = if_freq; + d_fs_in = fs_in; + d_vector_length = vector_length; + d_dump_filename = dump_filename; + d_current_prn_length_samples = static_cast(d_vector_length); + d_correlation_length_samples = static_cast(d_vector_length); + + // Initialize tracking ========================================== + d_code_loop_filter.set_DLL_BW(dll_bw_hz); + d_carrier_loop_filter.set_PLL_BW(pll_bw_hz); + + //--- DLL variables -------------------------------------------------------- + d_early_late_spc_chips = early_late_space_chips; // Define early-late offset (in chips) + + // Initialization of local code replica + // Get space for a vector with the C/A code replica sampled 1x/chip + //d_ca_code = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS) * sizeof(float), volk_gnsssdr_get_alignment())); + //d_ca_code_16sc = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS) * sizeof(lv_16sc_t), volk_gnsssdr_get_alignment())); + //d_ca_code_16sc = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS) * sizeof(int), volk_gnsssdr_get_alignment())); + + // correlator outputs (scalar) + d_n_correlator_taps = 3; // Early, Prompt, and Late + d_correlator_outs = static_cast(volk_gnsssdr_malloc(d_n_correlator_taps * sizeof(gr_complex), volk_gnsssdr_get_alignment())); + for (int n = 0; n < d_n_correlator_taps; n++) + { + d_correlator_outs[n] = gr_complex(0,0); + } + d_local_code_shift_chips = static_cast(volk_gnsssdr_malloc(d_n_correlator_taps * sizeof(float), volk_gnsssdr_get_alignment())); + + // Set TAPs delay values [chips] + d_local_code_shift_chips[0] = - d_early_late_spc_chips; + d_local_code_shift_chips[1] = 0.0; + d_local_code_shift_chips[2] = d_early_late_spc_chips; + + // create multicorrelator class + multicorrelator_fpga_8sc = std::make_shared (d_n_correlator_taps, device_name, device_base); + + //--- Perform initializations ------------------------------ + // define initial code frequency basis of NCO + d_code_freq_chips = GPS_L1_CA_CODE_RATE_HZ; + // define residual code phase (in chips) + d_rem_code_phase_samples = 0.0; + // define residual carrier phase + d_rem_carr_phase_rad = 0.0; + + // sample synchronization + d_sample_counter = 0; + d_acq_sample_stamp = 0; + + d_enable_tracking = false; + d_pull_in = false; + + // CN0 estimation and lock detector buffers + d_cn0_estimation_counter = 0; + d_Prompt_buffer = new gr_complex[CN0_ESTIMATION_SAMPLES]; + d_carrier_lock_test = 1; + d_CN0_SNV_dB_Hz = 0; + d_carrier_lock_fail_counter = 0; + d_carrier_lock_threshold = CARRIER_LOCK_THRESHOLD; + + systemName["G"] = std::string("GPS"); + systemName["S"] = std::string("SBAS"); + + d_acquisition_gnss_synchro = 0; + d_channel = 0; + d_acq_code_phase_samples = 0.0; + d_acq_carrier_doppler_hz = 0.0; + d_carrier_doppler_hz = 0.0; + d_acc_carrier_phase_rad = 0.0; + d_code_phase_samples = 0.0; + d_rem_code_phase_chips = 0.0; + d_code_phase_step_chips = 0.0; + d_carrier_phase_step_rad = 0.0; + + set_relative_rate(1.0 / static_cast(d_vector_length)); + + d_first_time = 1; + + + +} + +void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::start_tracking() +{ + /* + * correct the code phase according to the delay between acq and trk + */ + + //printf("TRK : start tracking for satellite %d\n", d_acquisition_gnss_synchro->PRN); + d_acq_code_phase_samples = d_acquisition_gnss_synchro->Acq_delay_samples; + d_acq_carrier_doppler_hz = d_acquisition_gnss_synchro->Acq_doppler_hz; + d_acq_sample_stamp = d_acquisition_gnss_synchro->Acq_samplestamp_samples; + long int acq_trk_diff_samples; + double acq_trk_diff_seconds; + acq_trk_diff_samples = static_cast(d_sample_counter) - static_cast(d_acq_sample_stamp); //-d_vector_length; + DLOG(INFO) << "Number of samples between Acquisition and Tracking = " << acq_trk_diff_samples; + acq_trk_diff_seconds = static_cast(acq_trk_diff_samples) / static_cast(d_fs_in); + // Doppler effect + // Fd=(C/(C+Vr))*F + double radial_velocity = (GPS_L1_FREQ_HZ + d_acq_carrier_doppler_hz) / GPS_L1_FREQ_HZ; + // new chip and prn sequence periods based on acq Doppler + double T_chip_mod_seconds; + double T_prn_mod_seconds; + double T_prn_mod_samples; + d_code_freq_chips = radial_velocity * GPS_L1_CA_CODE_RATE_HZ; + d_code_phase_step_chips = static_cast(d_code_freq_chips) / static_cast(d_fs_in); + T_chip_mod_seconds = 1/d_code_freq_chips; + T_prn_mod_seconds = T_chip_mod_seconds * GPS_L1_CA_CODE_LENGTH_CHIPS; + T_prn_mod_samples = T_prn_mod_seconds * static_cast(d_fs_in); + d_current_prn_length_samples = round(T_prn_mod_samples); + double T_prn_true_seconds = GPS_L1_CA_CODE_LENGTH_CHIPS / GPS_L1_CA_CODE_RATE_HZ; + double T_prn_true_samples = T_prn_true_seconds * static_cast(d_fs_in); + double T_prn_diff_seconds = T_prn_true_seconds - T_prn_mod_seconds; + double N_prn_diff = acq_trk_diff_seconds / T_prn_true_seconds; + double corrected_acq_phase_samples, delay_correction_samples; + corrected_acq_phase_samples = fmod((d_acq_code_phase_samples + T_prn_diff_seconds * N_prn_diff * static_cast(d_fs_in)), T_prn_true_samples); + if (corrected_acq_phase_samples < 0) + { + corrected_acq_phase_samples = T_prn_mod_samples + corrected_acq_phase_samples; + } + delay_correction_samples = d_acq_code_phase_samples - corrected_acq_phase_samples; + d_acq_code_phase_samples = corrected_acq_phase_samples; + d_carrier_doppler_hz = d_acq_carrier_doppler_hz; + d_carrier_phase_step_rad = GPS_TWO_PI * d_carrier_doppler_hz / static_cast(d_fs_in); + // DLL/PLL filter initialization + d_carrier_loop_filter.initialize(); // initialize the carrier filter + d_code_loop_filter.initialize(); // initialize the code filter + // generate local reference ALWAYS starting at chip 1 (1 sample per chip) + //gps_l1_ca_code_gen_float(d_ca_code, d_acquisition_gnss_synchro->PRN, 0); + //gps_l1_ca_code_gen_int(d_ca_code_16sc, d_acquisition_gnss_synchro->PRN, 0); +/* for (int n = 0; n < static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS); n++) + { + d_ca_code_16sc[n] = d_ca_code[n]; + } */ + //multicorrelator_fpga_8sc->set_local_code_and_taps(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS), d_ca_code_16sc, d_local_code_shift_chips, d_acquisition_gnss_synchro->PRN); + multicorrelator_fpga_8sc->set_local_code_and_taps(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS), d_local_code_shift_chips, d_acquisition_gnss_synchro->PRN); + for (int n = 0; n < d_n_correlator_taps; n++) + { + d_correlator_outs[n] = gr_complex(0,0); + } + d_carrier_lock_fail_counter = 0; + d_rem_code_phase_samples = 0; + d_rem_carr_phase_rad = 0.0; + d_rem_code_phase_chips = 0.0; + d_acc_carrier_phase_rad = 0.0; + d_code_phase_samples = d_acq_code_phase_samples; + std::string sys_ = &d_acquisition_gnss_synchro->System; + sys = sys_.substr(0,1); + //std::cout << "Tracking of GPS L1 C/A signal started on channel " << d_channel << " for satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) << std::endl; + LOG(INFO) << "Starting tracking of satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) << " on channel " << d_channel; + // enable tracking + d_pull_in = true; + multicorrelator_fpga_8sc->lock_channel(); + d_enable_tracking = true; //do it in the end to avoid starting running tracking before finishing this function + LOG(INFO) << "PULL-IN Doppler [Hz]=" << d_carrier_doppler_hz + << " Code Phase correction [samples]=" << delay_correction_samples + << " PULL-IN Code Phase [samples]=" << d_acq_code_phase_samples; + d_first_time = 1; +} + +Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc() +{ + if (d_dump_file.is_open()) + { + try + { + d_dump_file.close(); + } + catch(const std::exception & ex) + { + LOG(WARNING) << "Exception in destructor " << ex.what(); + } + } + try + { + volk_gnsssdr_free(d_local_code_shift_chips); + volk_gnsssdr_free(d_correlator_outs); + //volk_gnsssdr_free(d_ca_code); + delete[] d_Prompt_buffer; + //multicorrelator_cpu.free(); + //volk_gnsssdr_free(d_ca_code_16sc); + multicorrelator_fpga_8sc->free(); + } + catch(const std::exception & ex) + { + LOG(WARNING) << "Exception in destructor " << ex.what(); + } +} + +int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) +{ + + // debug + int secondary_sample_counter; + int counter_corr_0_in; + int counter_corr_0_out; + int sample_counter; + + // samples offset +// int samples_offset; + unsigned absolute_samples_offset; +// int kk2; + // process vars + double carr_error_hz = 0.0; + double carr_error_filt_hz = 0.0; + double code_error_chips = 0.0; + double code_error_filt_chips = 0.0; + + int next_prn_length_samples = d_current_prn_length_samples; +// int offset_prn_samples = 0; + + // Block input data and block output stream pointers + Gnss_Synchro **out = reinterpret_cast(&output_items[0]); + + // GNSS_SYNCHRO OBJECT to interchange data between tracking->telemetry_decoder + Gnss_Synchro current_synchro_data = Gnss_Synchro(); + + if (d_enable_tracking == true) + { + // Fill the acquisition data + current_synchro_data = *d_acquisition_gnss_synchro; + // Receiver signal alignment + if (d_pull_in == true) + { + d_pull_in = false; + unsigned counter_value = multicorrelator_fpga_8sc->read_sample_counter(); + unsigned num_frames = ceil((counter_value - current_synchro_data.Acq_samplestamp_samples - current_synchro_data.Acq_delay_samples)/d_correlation_length_samples); + absolute_samples_offset = current_synchro_data.Acq_delay_samples + current_synchro_data.Acq_samplestamp_samples + num_frames*d_correlation_length_samples; + multicorrelator_fpga_8sc->set_initial_sample(absolute_samples_offset); + d_sample_counter = absolute_samples_offset; + current_synchro_data.Tracking_sample_counter = absolute_samples_offset; + } + else + { + // continue as from the previous point + d_sample_counter = d_sample_counter_next; + } + d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; + + // ################# CARRIER WIPEOFF AND CORRELATORS ############################## + // perform carrier wipe-off and compute Early, Prompt and Late correlation + multicorrelator_fpga_8sc->set_output_vectors(d_correlator_outs); + multicorrelator_fpga_8sc->Carrier_wipeoff_multicorrelator_resampler( + d_rem_carr_phase_rad, d_carrier_phase_step_rad, + d_rem_code_phase_chips, d_code_phase_step_chips, + d_current_prn_length_samples); + d_previous_sample_counter = d_debug_sample_counter; + d_previous_counter_corr_0_in = d_counter_corr_0_in; + d_previous_counter_corr_0_out = d_counter_corr_0_out; + multicorrelator_fpga_8sc->read_sample_counters(&sample_counter, &secondary_sample_counter, &counter_corr_0_in, &counter_corr_0_out); + d_debug_sample_counter = sample_counter; + d_counter_corr_0_in = counter_corr_0_in; + d_counter_corr_0_out = counter_corr_0_out; + d_counter_corr_0_in_inc = counter_corr_0_in - d_previous_counter_corr_0_in; + d_counter_corr_0_out_inc = counter_corr_0_out - d_previous_counter_corr_0_out; + d_sample_counter_inc = d_debug_sample_counter - d_previous_sample_counter; + + // ################## PLL ########################################################## + // PLL discriminator + // Update PLL discriminator [rads/Ti -> Secs/Ti] + carr_error_hz = pll_cloop_two_quadrant_atan(d_correlator_outs[1]) / GPS_TWO_PI; // prompt output + // Carrier discriminator filter + carr_error_filt_hz = d_carrier_loop_filter.get_carrier_nco(carr_error_hz); + // New carrier Doppler frequency estimation + d_carrier_doppler_hz = d_acq_carrier_doppler_hz + carr_error_filt_hz; + // New code Doppler frequency estimation + d_code_freq_chips = GPS_L1_CA_CODE_RATE_HZ + ((d_carrier_doppler_hz * GPS_L1_CA_CODE_RATE_HZ) / GPS_L1_FREQ_HZ); + + // ################## DLL ########################################################## + // DLL discriminator + code_error_chips = dll_nc_e_minus_l_normalized(d_correlator_outs[0], d_correlator_outs[2]); // [chips/Ti] //early and late + // Code discriminator filter + code_error_filt_chips = d_code_loop_filter.get_code_nco(code_error_chips); // [chips/second] + double T_chip_seconds = 1.0 / static_cast(d_code_freq_chips); + double T_prn_seconds = T_chip_seconds * GPS_L1_CA_CODE_LENGTH_CHIPS; + double code_error_filt_secs = (T_prn_seconds * code_error_filt_chips*T_chip_seconds); //[seconds] + + // ################## CARRIER AND CODE NCO BUFFER ALIGNEMENT ####################### + // keep alignment parameters for the next input buffer + // Compute the next buffer length based in the new period of the PRN sequence and the code phase error estimation + double T_prn_samples = T_prn_seconds * static_cast(d_fs_in); + double K_blk_samples = T_prn_samples + d_rem_code_phase_samples + code_error_filt_secs * static_cast(d_fs_in); + next_prn_length_samples = round(K_blk_samples); +// offset_prn_samples = next_prn_length_samples - d_current_prn_length_samples; + + //################### PLL COMMANDS ################################################# + // carrier phase step (NCO phase increment per sample) [rads/sample] + d_carrier_phase_step_rad = GPS_TWO_PI * d_carrier_doppler_hz / static_cast(d_fs_in); + // remnant carrier phase to prevent overflow in the code NCO + d_rem_carr_phase_rad = d_rem_carr_phase_rad + d_carrier_phase_step_rad * d_current_prn_length_samples; + d_rem_carr_phase_rad = fmod(d_rem_carr_phase_rad, GPS_TWO_PI); + // carrier phase accumulator + d_acc_carrier_phase_rad -= d_carrier_phase_step_rad * d_current_prn_length_samples; + + //################### DLL COMMANDS ################################################# + // code phase step (Code resampler phase increment per sample) [chips/sample] + d_code_phase_step_chips = d_code_freq_chips / static_cast(d_fs_in); + // remnant code phase [chips] + d_rem_code_phase_samples = K_blk_samples - next_prn_length_samples; // rounding error < 1 sample + d_rem_code_phase_chips = d_code_freq_chips * (d_rem_code_phase_samples / static_cast(d_fs_in)); + + // ####### CN0 ESTIMATION AND LOCK DETECTORS ###### + if (d_cn0_estimation_counter < CN0_ESTIMATION_SAMPLES) + { + // fill buffer with prompt correlator output values + d_Prompt_buffer[d_cn0_estimation_counter] = d_correlator_outs[1]; //prompt + d_cn0_estimation_counter++; + } + else + { + d_cn0_estimation_counter = 0; + // Code lock indicator + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); + // Carrier lock indicator + d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); + // Loss of lock detection + if (d_carrier_lock_test < d_carrier_lock_threshold or d_CN0_SNV_dB_Hz < MINIMUM_VALID_CN0) + { + d_carrier_lock_fail_counter++; + } + else + { + if (d_carrier_lock_fail_counter > 0) d_carrier_lock_fail_counter--; + } + if (d_carrier_lock_fail_counter > MAXIMUM_LOCK_FAIL_COUNTER) + { + std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl; + d_debug_loss_of_track = 1; + LOG(INFO) << "Loss of lock in channel " << d_channel << "!"; + this->message_port_pub(pmt::mp("events"), pmt::from_long(3)); // 3 -> loss of lock + d_carrier_lock_fail_counter = 0; + d_enable_tracking = false; // TODO: check if disabling tracking is consistent with the channel state machine + multicorrelator_fpga_8sc->unlock_channel(); + + + } + } + + // ########### Output the tracking data to navigation and PVT ########## + current_synchro_data.Prompt_I = static_cast((d_correlator_outs[1]).real()); + current_synchro_data.Prompt_Q = static_cast((d_correlator_outs[1]).imag()); + current_synchro_data.Tracking_sample_counter = d_sample_counter + d_current_prn_length_samples; + current_synchro_data.Code_phase_samples = d_rem_code_phase_samples; + current_synchro_data.Carrier_phase_rads = d_acc_carrier_phase_rad; + current_synchro_data.Carrier_Doppler_hz = d_carrier_doppler_hz; + current_synchro_data.CN0_dB_hz = d_CN0_SNV_dB_Hz; + current_synchro_data.Flag_valid_symbol_output = true; + current_synchro_data.correlation_length_ms = 1; + } + else + { + for (int n = 0; n < d_n_correlator_taps; n++) + { + d_correlator_outs[n] = gr_complex(0,0); + } + + current_synchro_data.Tracking_sample_counter =d_sample_counter + d_current_prn_length_samples; + current_synchro_data.System = {'G'}; + current_synchro_data.correlation_length_ms = 1; + } + + //assign the GNURadio block output data + current_synchro_data.fs = d_fs_in; + *out[0] = current_synchro_data; + if (d_enable_tracking == true) // in the FPGA case dump data only when tracking is enabled, otherwise the dumped data is useless + { + if(d_dump) + { + // MULTIPLEXED FILE RECORDING - Record results to file + float prompt_I; + float prompt_Q; + float tmp_E, tmp_P, tmp_L; + double tmp_double; + unsigned long int tmp_long; + prompt_I = d_correlator_outs[1].real(); + prompt_Q = d_correlator_outs[1].imag(); + tmp_E = std::abs(d_correlator_outs[0]); + tmp_P = std::abs(d_correlator_outs[1]); + tmp_L = std::abs(d_correlator_outs[2]); + try + { + // EPR + d_dump_file.write(reinterpret_cast(&tmp_E), sizeof(float)); + d_dump_file.write(reinterpret_cast(&tmp_P), sizeof(float)); + d_dump_file.write(reinterpret_cast(&tmp_L), sizeof(float)); + // PROMPT I and Q (to analyze navigation symbols) + d_dump_file.write(reinterpret_cast(&prompt_I), sizeof(float)); + d_dump_file.write(reinterpret_cast(&prompt_Q), sizeof(float)); + // PRN start sample stamp + tmp_long = d_sample_counter + d_current_prn_length_samples; + d_dump_file.write(reinterpret_cast(&tmp_long), sizeof(unsigned long int)); + // accumulated carrier phase + d_dump_file.write(reinterpret_cast(&d_acc_carrier_phase_rad), sizeof(double)); + + // carrier and code frequency + d_dump_file.write(reinterpret_cast(&d_carrier_doppler_hz), sizeof(double)); + d_dump_file.write(reinterpret_cast(&d_code_freq_chips), sizeof(double)); + + // PLL commands + d_dump_file.write(reinterpret_cast(&carr_error_hz), sizeof(double)); + d_dump_file.write(reinterpret_cast(&carr_error_filt_hz), sizeof(double)); + + // DLL commands + d_dump_file.write(reinterpret_cast(&code_error_chips), sizeof(double)); + d_dump_file.write(reinterpret_cast(&code_error_filt_chips), sizeof(double)); + + // CN0 and carrier lock test + d_dump_file.write(reinterpret_cast(&d_CN0_SNV_dB_Hz), sizeof(double)); + d_dump_file.write(reinterpret_cast(&d_carrier_lock_test), sizeof(double)); + + // AUX vars (for debug purposes) + tmp_double = d_rem_code_phase_samples; + d_dump_file.write(reinterpret_cast(&tmp_double), sizeof(double)); + tmp_double = static_cast(d_sample_counter); + d_dump_file.write(reinterpret_cast(&tmp_double), sizeof(double)); + + // PRN + unsigned int prn_ = d_acquisition_gnss_synchro->PRN; + d_dump_file.write(reinterpret_cast(&prn_), sizeof(unsigned int)); + + } + catch (const std::ifstream::failure &e) + { + LOG(WARNING) << "Exception writing trk dump file " << e.what(); + } + + + } + } + + + d_current_prn_length_samples = next_prn_length_samples; + d_sample_counter += d_current_prn_length_samples; // count for the processed samples + + if (d_enable_tracking == true) + { + return 1; //output tracking result ALWAYS even in the case of d_enable_tracking==false + //return 0; // debug + } + else + { + return 0; + } + +} + + + +void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::set_channel(unsigned int channel) +{ + d_channel = channel; + multicorrelator_fpga_8sc->set_channel(d_channel); + LOG(INFO) << "Tracking Channel set to " << d_channel; + + // ############# ENABLE DATA FILE LOG ################# + if (d_dump == true) + { + if (d_dump_file.is_open() == false) + { + try + { + d_dump_filename.append(boost::lexical_cast(d_channel)); + d_dump_filename.append(".dat"); + d_dump_file.exceptions (std::ifstream::failbit | std::ifstream::badbit); + d_dump_file.open(d_dump_filename.c_str(), std::ios::out | std::ios::binary); + LOG(INFO) << "Tracking dump enabled on channel " << d_channel << " Log file: " << d_dump_filename.c_str(); + } + catch (const std::ifstream::failure &e) + { + LOG(WARNING) << "channel " << d_channel << " Exception opening trk dump file " << e.what(); + } + } + } +} + + +void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) +{ + d_acquisition_gnss_synchro = p_gnss_synchro; +} + +void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::reset(void) +{ + multicorrelator_fpga_8sc->unlock_channel(); +} diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h new file mode 100644 index 000000000..c497c08f2 --- /dev/null +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h @@ -0,0 +1,200 @@ +/*! + * \file gps_l1_ca_dll_pll_tracking_cc.h + * \brief Interface of a code DLL + carrier PLL tracking block + * \author Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com + * Javier Arribas, 2011. jarribas(at)cttc.es + * Cillian O'Driscoll, 2017. cillian.odriscoll(at)gmail.com + * + * Code DLL + carrier PLL according to the algorithms described in: + * 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 + * + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2015 (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_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H +#define GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H + +#include +#include +#include +#include +#include "gnss_synchro.h" +#include "tracking_2nd_DLL_filter.h" +#include "tracking_2nd_PLL_filter.h" +#include "fpga_multicorrelator_8sc.h" + +class Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc; + +typedef boost::shared_ptr + gps_l1_ca_dll_pll_tracking_fpga_sc_sptr; + +gps_l1_ca_dll_pll_tracking_fpga_sc_sptr +gps_l1_ca_dll_pll_make_tracking_fpga_sc(long if_freq, + long fs_in, unsigned + int vector_length, + bool dump, + std::string dump_filename, + float pll_bw_hz, + float dll_bw_hz, + float early_late_space_chips, + std::string device_name, + unsigned int device_base); + + + +/*! + * \brief This class implements a DLL + PLL tracking loop block + */ +class Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc: public gr::block +{ +public: + ~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc(); + + void set_channel(unsigned int channel); + void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro); + void start_tracking(); + + int general_work (int noutput_items, gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); + + void reset(void); + +private: + friend gps_l1_ca_dll_pll_tracking_fpga_sc_sptr + gps_l1_ca_dll_pll_make_tracking_fpga_sc(long if_freq, + long fs_in, unsigned + int vector_length, + bool dump, + std::string dump_filename, + float pll_bw_hz, + float dll_bw_hz, + float early_late_space_chips, + std::string device_name, + unsigned int device_base); + + Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc(long if_freq, + long fs_in, unsigned + int vector_length, + bool dump, + std::string dump_filename, + float pll_bw_hz, + float dll_bw_hz, + float early_late_space_chips, + std::string device_name, + unsigned int device_base); + + // tracking configuration vars + unsigned int d_vector_length; + bool d_dump; + + Gnss_Synchro* d_acquisition_gnss_synchro; + unsigned int d_channel; + + long d_if_freq; + long d_fs_in; + + double d_early_late_spc_chips; + + // remaining code phase and carrier phase between tracking loops + double d_rem_code_phase_samples; + double d_rem_code_phase_chips; + double d_rem_carr_phase_rad; + + // PLL and DLL filter library + Tracking_2nd_DLL_filter d_code_loop_filter; + Tracking_2nd_PLL_filter d_carrier_loop_filter; + + // acquisition + double d_acq_code_phase_samples; + double d_acq_carrier_doppler_hz; + // correlator + int d_n_correlator_taps; + //float* d_ca_code; + //int* d_ca_code_16sc; + + float* d_local_code_shift_chips; + gr_complex* d_correlator_outs; + std::shared_ptr multicorrelator_fpga_8sc; + + // tracking vars + double d_code_freq_chips; + double d_code_phase_step_chips; + double d_carrier_doppler_hz; + double d_carrier_phase_step_rad; + double d_acc_carrier_phase_rad; + double d_code_phase_samples; + + //PRN period in samples + int d_current_prn_length_samples; + + //processing samples counters + unsigned long int d_sample_counter; + unsigned long int d_acq_sample_stamp; + + // CN0 estimation and lock detector + int d_cn0_estimation_counter; + gr_complex* d_Prompt_buffer; + double d_carrier_lock_test; + double d_CN0_SNV_dB_Hz; + double d_carrier_lock_threshold; + int d_carrier_lock_fail_counter; + + // control vars + bool d_enable_tracking; + bool d_pull_in; + + // file dump + std::string d_dump_filename; + std::ofstream d_dump_file; + + std::map systemName; + std::string sys; + + // extra + int d_correlation_length_samples; + unsigned long int d_sample_counter_next; + double d_rem_carrier_phase_rad; + + double d_K_blk_samples_previous; + int d_offset_sample_previous; + int d_first_time; + + int d_kk = 0; + int d_numsamples_debug = 990; + int d_previous_sample_counter = 0; + int d_debug_sample_counter = 0; + int d_previous_counter_corr_0_in = 0; + int d_previous_counter_corr_0_out = 0; + int d_counter_corr_0_in_inc = 0; + int d_counter_corr_0_out_inc = 0; + int d_counter_corr_0_in = 0; + int d_counter_corr_0_out = 0; + int d_sample_counter_inc = 0; + int d_debug_loss_of_track = 0; +}; + +#endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H diff --git a/src/algorithms/tracking/libs/CMakeLists.txt b/src/algorithms/tracking/libs/CMakeLists.txt index 5c5ce7a2a..1cc68dabb 100644 --- a/src/algorithms/tracking/libs/CMakeLists.txt +++ b/src/algorithms/tracking/libs/CMakeLists.txt @@ -47,6 +47,7 @@ set(TRACKING_LIB_SOURCES if(ENABLE_FPGA) SET(TRACKING_LIB_SOURCES ${TRACKING_LIB_SOURCES} fpga_multicorrelator_8sc.cc) + SET(TRACKING_LIB_SOURCES ${TRACKING_LIB_SOURCES} fpga_multicorrelator_real_codes_8sc.cc) endif(ENABLE_FPGA) include_directories( @@ -54,6 +55,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/core/system_parameters ${CMAKE_SOURCE_DIR}/src/core/interfaces ${CMAKE_SOURCE_DIR}/src/core/receiver + ${CMAKE_SOURCE_DIR}/src/algorithms/libs ${VOLK_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS} ${GFlags_INCLUDE_DIRS} diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc index cec90a8f3..dd6f208ce 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc @@ -35,6 +35,7 @@ */ #include "fpga_multicorrelator_8sc.h" + #include // FPGA stuff @@ -63,6 +64,12 @@ // string manipulation #include +// constants +#include "GPS_L1_CA.h" + +#include "gps_sdr_signal_processing.h" + +#define NUM_PRNs 32 #define PAGE_SIZE 0x10000 #define MAX_LENGTH_DEVICEIO_NAME 50 #define CODE_RESAMPLER_NUM_BITS_PRECISION 20 @@ -77,38 +84,39 @@ #define LOCAL_CODE_FPGA_ENABLE_WRITE_MEMORY 0x0C000000 #define TEST_REGISTER_TRACK_WRITEVAL 0x55AA +int fpga_multicorrelator_8sc::read_sample_counter() +{ + return d_map_base[7]; +} + void fpga_multicorrelator_8sc::set_initial_sample(int samples_offset) { d_initial_sample_counter = samples_offset; + d_map_base[13] = d_initial_sample_counter; } - - + +//bool fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, +// const int* local_code_in, float *shifts_chips, int PRN) bool fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, - const lv_16sc_t* local_code_in, float *shifts_chips) + float *shifts_chips, int PRN) { - d_local_code_in = local_code_in; + //d_local_code_in = local_code_in; d_shifts_chips = shifts_chips; d_code_length_chips = code_length_chips; - - fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(); - + fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(PRN); return true; } - -bool fpga_multicorrelator_8sc::set_output_vectors(lv_16sc_t* corr_out) +bool fpga_multicorrelator_8sc::set_output_vectors(gr_complex* corr_out) { // Save CPU pointers d_corr_out = corr_out; - return true; } - void fpga_multicorrelator_8sc::update_local_code(float rem_code_phase_chips) { d_rem_code_phase_chips = rem_code_phase_chips; - fpga_multicorrelator_8sc::fpga_compute_code_shift_parameters(); fpga_multicorrelator_8sc::fpga_configure_code_parameters_in_fpga(); } @@ -120,32 +128,31 @@ bool fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( int signal_length_samples) { update_local_code(rem_code_phase_chips); - d_rem_carrier_phase_in_rad = rem_carrier_phase_in_rad; d_code_phase_step_chips = code_phase_step_chips; d_phase_step_rad = phase_step_rad; d_correlator_length_samples = signal_length_samples; - - fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(); - fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(); + +// if (first_time == 1) +// { + fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(); + fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(); +// first_time = 0; +// } + fpga_multicorrelator_8sc::fpga_launch_multicorrelator_fpga(); - int irq_count; ssize_t nb; - // wait for interrupt nb = read(d_device_descriptor, &irq_count, sizeof(irq_count)); if (nb != sizeof(irq_count)) { printf("Tracking_module Read failed to retrive 4 bytes!\n"); printf("Tracking_module Interrupt number %d\n", irq_count); } - fpga_multicorrelator_8sc::read_tracking_gps_results(); - return true; } - fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, std::string device_name, unsigned int device_base) { @@ -161,7 +168,7 @@ fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, d_initial_interp_counter = static_cast(volk_gnsssdr_malloc( n_correlators * sizeof(unsigned), volk_gnsssdr_get_alignment())); - d_local_code_in = nullptr; + //d_local_code_in = nullptr; d_shifts_chips = nullptr; d_corr_out = nullptr; d_code_length_chips = 0; @@ -172,22 +179,32 @@ fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, d_rem_carr_phase_rad_int = 0; d_phase_step_rad_int = 0; d_initial_sample_counter = 0; - d_channel = 0; d_correlator_length_samples = 0; + + // pre-compute all the codes + d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); + for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) + { + //gps_l1_ca_code_gen_int(&d_ca_codes[GPS_L1_CA_CODE_LENGTH_CHIPS*(PRN -1)], PRN, 0); + gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); + } + DLOG(INFO) << "TRACKING FPGA CLASS CREATED"; + } fpga_multicorrelator_8sc::~fpga_multicorrelator_8sc() { - close(d_device_descriptor); + delete[] d_ca_codes; + close_device(); } bool fpga_multicorrelator_8sc::free() { - // unlock the hardware - fpga_multicorrelator_8sc::unlock_channel(); // unlock the channel + // unlock the channel + fpga_multicorrelator_8sc::unlock_channel(); // free the FPGA dynamically created variables if (d_initial_index != nullptr) @@ -209,23 +226,19 @@ bool fpga_multicorrelator_8sc::free() void fpga_multicorrelator_8sc::set_channel(unsigned int channel) { char device_io_name[MAX_LENGTH_DEVICEIO_NAME]; // driver io name - d_channel = channel; // open the device corresponding to the assigned channel std::string mergedname; std::stringstream devicebasetemp; - int numdevice = d_device_base + d_channel; devicebasetemp << numdevice; mergedname = d_device_name + devicebasetemp.str(); strcpy(device_io_name, mergedname.c_str()); - printf("Opening Device Name : %s\n", device_io_name); if ((d_device_descriptor = open(device_io_name, O_RDWR | O_SYNC)) == -1) { LOG(WARNING) << "Cannot open deviceio" << device_io_name; } - d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); @@ -263,12 +276,11 @@ unsigned fpga_multicorrelator_8sc::fpga_acquisition_test_register( } -void fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(void) +void fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(int PRN) { int k, s; unsigned code_chip; unsigned select_fpga_correlator; - select_fpga_correlator = 0; for (s = 0; s < d_n_correlators; s++) @@ -276,7 +288,8 @@ void fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(void) d_map_base[11] = LOCAL_CODE_FPGA_CLEAR_ADDRESS_COUNTER; for (k = 0; k < d_code_length_chips; k++) { - if (lv_creal(d_local_code_in[k]) == 1) + //if (d_local_code_in[k] == 1) + if (d_ca_codes[((int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)) + k] == 1) { code_chip = 1; } @@ -301,18 +314,16 @@ void fpga_multicorrelator_8sc::fpga_compute_code_shift_parameters(void) for (i = 0; i < d_n_correlators; i++) { - // initial index calculation temp_calculation = floor( - d_shifts_chips[i] + d_rem_code_phase_chips); + d_shifts_chips[i] - d_rem_code_phase_chips); + if (temp_calculation < 0) { temp_calculation = temp_calculation + d_code_length_chips; // % operator does not work as in Matlab with negative numbers } d_initial_index[i] = static_cast( (static_cast(temp_calculation)) % d_code_length_chips); - - // initial interpolator counter calculation - temp_calculation = fmod(d_shifts_chips[i] + d_rem_code_phase_chips, - 1.0); + temp_calculation = fmod(d_shifts_chips[i] - d_rem_code_phase_chips, + 1.0); if (temp_calculation < 0) { temp_calculation = temp_calculation + 1.0; // fmod operator does not work as in Matlab with negative numbers @@ -339,7 +350,6 @@ void fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(void) float d_rem_carrier_phase_in_rad_temp; d_code_phase_step_chips_num = static_cast( roundf(MAX_CODE_RESAMPLER_COUNTER * d_code_phase_step_chips)); - if (d_rem_carrier_phase_in_rad > M_PI) { d_rem_carrier_phase_in_rad_temp = -2 * M_PI @@ -354,11 +364,9 @@ void fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(void) { d_rem_carrier_phase_in_rad_temp = d_rem_carrier_phase_in_rad; } - d_rem_carr_phase_rad_int = static_cast( roundf( (fabs(d_rem_carrier_phase_in_rad_temp) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); - if (d_rem_carrier_phase_in_rad_temp < 0) { d_rem_carr_phase_rad_int = -d_rem_carr_phase_rad_int; @@ -379,7 +387,6 @@ void fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(void) d_map_base[7] = d_correlator_length_samples - 1; d_map_base[9] = d_rem_carr_phase_rad_int; d_map_base[10] = d_phase_step_rad_int; - d_map_base[13] = d_initial_sample_counter; } @@ -389,7 +396,8 @@ void fpga_multicorrelator_8sc::fpga_launch_multicorrelator_fpga(void) int reenable = 1; write(d_device_descriptor, reinterpret_cast(&reenable), sizeof(int)); - d_map_base[14] = 0; // writing anything to reg 14 launches the tracking + // writing 1 to reg 14 launches the tracking + d_map_base[14] = 1; } @@ -414,8 +422,7 @@ void fpga_multicorrelator_8sc::read_tracking_gps_results(void) readval_imag = -2097152 + readval_imag; } readval_imag = readval_imag * 2; // the results are shifted two bits to the left due to the complex multiplier in the FPGA - - d_corr_out[k] = lv_cmake(readval_real, readval_imag); + d_corr_out[k] = gr_complex(readval_real,readval_imag); } } @@ -426,6 +433,20 @@ void fpga_multicorrelator_8sc::unlock_channel(void) d_map_base[12] = 1; // unlock the channel } +void fpga_multicorrelator_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"); + } +/* else + { + printf("memory uio unmapped\n"); + } */ + close(d_device_descriptor); +} + void fpga_multicorrelator_8sc::lock_channel(void) { @@ -433,3 +454,16 @@ void fpga_multicorrelator_8sc::lock_channel(void) d_map_base[12] = 0; // lock the channel } +void fpga_multicorrelator_8sc::read_sample_counters(int *sample_counter, int *secondary_sample_counter, int *counter_corr_0_in, int *counter_corr_0_out) +{ + *sample_counter = d_map_base[11]; + *secondary_sample_counter = d_map_base[8]; + *counter_corr_0_in = d_map_base[10]; + *counter_corr_0_out = d_map_base[9]; + +} + +void fpga_multicorrelator_8sc::reset_multicorrelator(void) +{ + d_map_base[14] = 2; // writing a 2 to d_map_base[14] resets the multicorrelator +} diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h index 801ae5332..0b726e121 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h @@ -37,6 +37,7 @@ #ifndef GNSS_SDR_FPGA_MULTICORRELATOR_8SC_H_ #define GNSS_SDR_FPGA_MULTICORRELATOR_8SC_H_ +#include #include #define MAX_LENGTH_DEVICEIO_NAME 50 @@ -49,22 +50,30 @@ class fpga_multicorrelator_8sc public: fpga_multicorrelator_8sc(int n_correlators, std::string device_name, unsigned int device_base); - ~fpga_multicorrelator_8sc();bool set_local_code_and_taps( - int code_length_chips, const lv_16sc_t* local_code_in, - float *shifts_chips);bool set_output_vectors(lv_16sc_t* corr_out); + ~fpga_multicorrelator_8sc(); + bool set_output_vectors(gr_complex* corr_out); +// bool set_local_code_and_taps( +// int code_length_chips, const int* local_code_in, +// float *shifts_chips, int PRN); + bool set_local_code_and_taps( + int code_length_chips, + float *shifts_chips, int PRN); + bool set_output_vectors(lv_16sc_t* corr_out); void update_local_code(float rem_code_phase_chips);bool Carrier_wipeoff_multicorrelator_resampler( float rem_carrier_phase_in_rad, float phase_step_rad, float rem_code_phase_chips, float code_phase_step_chips, int signal_length_samples);bool free(); - void set_channel(unsigned int channel); void set_initial_sample(int samples_offset); + int read_sample_counter(); void lock_channel(void); void unlock_channel(void); - + void read_sample_counters(int *sample_counter, int *secondary_sample_counter, int *counter_corr_0_in, int *counter_corr_0_out); // debug + + private: - const lv_16sc_t *d_local_code_in; - lv_16sc_t *d_corr_out; + //const int *d_local_code_in; + gr_complex * d_corr_out; float *d_shifts_chips; int d_code_length_chips; int d_n_correlators; @@ -94,21 +103,23 @@ private: std::string d_device_name; unsigned int d_device_base; - // results - //int *d_readval_real; - //int *d_readval_imag; - // FPGA private functions + + int* d_ca_codes; + + // private functions unsigned fpga_acquisition_test_register(unsigned writeval); - void fpga_configure_tracking_gps_local_code(void); + void fpga_configure_tracking_gps_local_code(int PRN); void fpga_compute_code_shift_parameters(void); void fpga_configure_code_parameters_in_fpga(void); void fpga_compute_signal_parameters_in_fpga(void); void fpga_configure_signal_parameters_in_fpga(void); void fpga_launch_multicorrelator_fpga(void); void read_tracking_gps_results(void); - - //void unlock_channel(void); - + void reset_multicorrelator(void); + void close_device(void); + + // debug + //unsigned int first_time = 1; }; #endif /* GNSS_SDR_FPGA_MULTICORRELATOR_H_ */ diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc new file mode 100644 index 000000000..942cadaff --- /dev/null +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc @@ -0,0 +1,148 @@ +/*! + * \file fpga_multicorrelator_real_codes_8sc.cc + * \brief High optimized CPU vector multiTAP correlator class with real-valued local codes + * \authors
    + *
  • Javier Arribas, 2015. jarribas(at)cttc.es + *
  • Cillian O'Driscoll, 2017. cillian.odriscoll(at)gmail.com + *
+ * + * Class that implements a high optimized vector multiTAP correlator class for CPUs + * + * ------------------------------------------------------------------------- + * + * 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 "cpu_multicorrelator_real_codes.h" +#include "fpga_multicorrelator_real_codes_8sc.h" +#include +#include +#include + + +fpga_multicorrelator_real_codes_8sc::fpga_multicorrelator_real_codes_8sc() +{ + d_sig_in = nullptr; + d_local_code_in = nullptr; + d_shifts_chips = nullptr; + d_corr_out = nullptr; + d_local_codes_resampled = nullptr; + d_code_length_chips = 0; + d_n_correlators = 0; +} + + +fpga_multicorrelator_real_codes_8sc::~fpga_multicorrelator_real_codes_8sc() +{ + if(d_local_codes_resampled != nullptr) + { + fpga_multicorrelator_real_codes_8sc::free(); + } +} + + +bool fpga_multicorrelator_real_codes_8sc::init( + int max_signal_length_samples, + int n_correlators) +{ + // ALLOCATE MEMORY FOR INTERNAL vectors + size_t size = max_signal_length_samples * sizeof(float); + + d_local_codes_resampled = static_cast(volk_gnsssdr_malloc(n_correlators * sizeof(float*), volk_gnsssdr_get_alignment())); + for (int n = 0; n < n_correlators; n++) + { + d_local_codes_resampled[n] = static_cast(volk_gnsssdr_malloc(size, volk_gnsssdr_get_alignment())); + } + d_n_correlators = n_correlators; + return true; +} + + + +bool fpga_multicorrelator_real_codes_8sc::set_local_code_and_taps( + int code_length_chips, + const float* local_code_in, + float *shifts_chips) +{ + d_local_code_in = local_code_in; + d_shifts_chips = shifts_chips; + d_code_length_chips = code_length_chips; + return true; +} + + +bool fpga_multicorrelator_real_codes_8sc::set_input_output_vectors(std::complex* corr_out, const std::complex* sig_in) +{ + // Save CPU pointers + d_sig_in = sig_in; + d_corr_out = corr_out; + return true; +} + + +void fpga_multicorrelator_real_codes_8sc::update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips) +{ + volk_gnsssdr_32f_xn_resampler_32f_xn(d_local_codes_resampled, + d_local_code_in, + rem_code_phase_chips, + code_phase_step_chips, + d_shifts_chips, + d_code_length_chips, + d_n_correlators, + correlator_length_samples); +} + + +bool fpga_multicorrelator_real_codes_8sc::Carrier_wipeoff_multicorrelator_resampler( + float rem_carrier_phase_in_rad, + float phase_step_rad, + float rem_code_phase_chips, + float code_phase_step_chips, + int signal_length_samples) +{ + update_local_code(signal_length_samples, rem_code_phase_chips, code_phase_step_chips); + // Regenerate phase at each call in order to avoid numerical issues + lv_32fc_t phase_offset_as_complex[1]; + phase_offset_as_complex[0] = lv_cmake(std::cos(rem_carrier_phase_in_rad), -std::sin(rem_carrier_phase_in_rad)); + // call VOLK_GNSSSDR kernel + volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn(d_corr_out, d_sig_in, std::exp(lv_32fc_t(0, - phase_step_rad)), phase_offset_as_complex, (const float**)d_local_codes_resampled, d_n_correlators, signal_length_samples); + return true; +} + + +bool fpga_multicorrelator_real_codes_8sc::free() +{ + // Free memory + if (d_local_codes_resampled != nullptr) + { + for (int n = 0; n < d_n_correlators; n++) + { + volk_gnsssdr_free(d_local_codes_resampled[n]); + } + volk_gnsssdr_free(d_local_codes_resampled); + d_local_codes_resampled = nullptr; + } + return true; +} + + diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h b/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h new file mode 100644 index 000000000..94d855ff8 --- /dev/null +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h @@ -0,0 +1,73 @@ +/*! + * \file fpga_multicorrelator_real_codes_8sc.h + * \brief High optimized CPU vector multiTAP correlator class using real-valued local codes + * \authors
    + *
  • Javier Arribas, 2015. jarribas(at)cttc.es + *
  • Cillian O'Driscoll, 2017, cillian.odriscoll(at)gmail.com + *
+ * + * Class that implements a high optimized vector multiTAP correlator class for CPUs + * + * ------------------------------------------------------------------------- + * + * 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_CPU_MULTICORRELATOR_REAL_CODES_H_ +//#define GNSS_SDR_CPU_MULTICORRELATOR_REAL_CODES_H_ + +#ifndef GNSS_SDR_FPGA_MULTICORRELATOR_REAL_CODES_8SC_H_ +#define GNSS_SDR_FPGA_MULTICORRELATOR_REAL_CODES_8SC_H_ + + +#include + +/*! + * \brief Class that implements carrier wipe-off and correlators. + */ +class fpga_multicorrelator_real_codes_8sc +{ +public: + fpga_multicorrelator_real_codes_8sc(); + ~fpga_multicorrelator_real_codes_8sc(); + bool init(int max_signal_length_samples, int n_correlators); + bool set_local_code_and_taps(int code_length_chips, const float* local_code_in, float *shifts_chips); + bool set_input_output_vectors(std::complex* corr_out, const std::complex* sig_in); + void update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips); + bool Carrier_wipeoff_multicorrelator_resampler(float rem_carrier_phase_in_rad, float phase_step_rad, float rem_code_phase_chips, float code_phase_step_chips, int signal_length_samples); + bool free(); + +private: + // Allocate the device input vectors + const std::complex *d_sig_in; + float **d_local_codes_resampled; + const float *d_local_code_in; + std::complex *d_corr_out; + float *d_shifts_chips; + int d_code_length_chips; + int d_n_correlators; +}; + + +#endif /* GNSS_SDR_FPGA_MULTICORRELATOR_REAL_CODES_8SC_H_ */ + diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index e7d096fab..d64dcb9a9 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -100,8 +100,8 @@ #include "rtklib_pvt.h" #if ENABLE_FPGA -#include "gps_l1_ca_dll_pll_c_aid_tracking_fpga.h" #include "gps_l1_ca_pcps_acquisition_fpga.h" +#include "gps_l1_ca_dll_pll_tracking_fpga.h" #endif #if OPENCL_BLOCKS @@ -1318,9 +1318,9 @@ std::unique_ptr GNSSBlockFactory::GetBlock( block = std::move(block_); } #if ENABLE_FPGA - else if (implementation.compare("GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga") == 0) + else if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking_Fpga") == 0) { - std::unique_ptr block_(new GpsL1CaDllPllCAidTrackingFpga(configuration.get(), role, in_streams, + std::unique_ptr block_(new GpsL1CaDllPllTrackingFpga(configuration.get(), role, in_streams, out_streams)); block = std::move(block_); } @@ -1607,9 +1607,9 @@ std::unique_ptr GNSSBlockFactory::GetTrkBlock( block = std::move(block_); } #if ENABLE_FPGA - else if (implementation.compare("GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga") == 0) + else if (implementation.compare("GPS_L1_CA_DLL_PLL_Tracking_Fpga") == 0) { - std::unique_ptr block_(new GpsL1CaDllPllCAidTrackingFpga(configuration.get(), role, in_streams, + std::unique_ptr block_(new GpsL1CaDllPllTrackingFpga(configuration.get(), role, in_streams, out_streams)); block = std::move(block_); } diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc index da2b3eb9c..91c611d2d 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc @@ -33,6 +33,7 @@ #include #include +#include #include #include #include // to test the FPGA we have to create a simultaneous task to send the samples using the DMA and stop the test @@ -53,7 +54,8 @@ #include "tracking_interface.h" #include "in_memory_configuration.h" #include "gnss_synchro.h" -#include "gps_l1_ca_dll_pll_c_aid_tracking_fpga.h" +//#include "gps_l1_ca_dll_pll_c_aid_tracking_fpga.h" +#include "gps_l1_ca_dll_pll_tracking_fpga.h" #include "tracking_true_obs_reader.h" #include "tracking_dump_reader.h" #include "signal_generator_flags.h" @@ -310,8 +312,10 @@ void GpsL1CADllPllTrackingTestFpga::configure_receiver() config->set_property("GNSS-SDR.internal_fs_sps", std::to_string(baseband_sampling_freq)); // Set Tracking + //config->set_property("Tracking_1C.implementation", + // "GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga"); config->set_property("Tracking_1C.implementation", - "GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga"); + "GPS_L1_CA_DLL_PLL_Tracking_Fpga"); config->set_property("Tracking_1C.item_type", "cshort"); config->set_property("Tracking_1C.if", "0"); config->set_property("Tracking_1C.dump", "true"); @@ -467,7 +471,8 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) }) << "Failure opening true observables file"; top_block = gr::make_top_block("Tracking test"); - std::shared_ptr tracking = std::make_shared (config.get(), "Tracking_1C", 1, 1); + //std::shared_ptr tracking = std::make_shared (config.get(), "Tracking_1C", 1, 1); + std::shared_ptr tracking = std::make_shared (config.get(), "Tracking_1C", 1, 1); boost::shared_ptr msg_rx = GpsL1CADllPllTrackingTestFpga_msg_rx_make(); From 376de5807fd0fd7d044a15b2395d147258cae902 Mon Sep 17 00:00:00 2001 From: mmajoral Date: Tue, 20 Mar 2018 18:06:20 +0100 Subject: [PATCH 004/108] Added FPGA-related changes --- src/core/receiver/control_thread.cc | 7 ++++++ src/core/receiver/gnss_flowgraph.cc | 33 ++++++++++++++++++++++++++++- src/core/receiver/gnss_flowgraph.h | 2 ++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index db3e3841b..15646a4d3 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -138,6 +138,13 @@ void ControlThread::run() keyboard_thread_ = boost::thread(&ControlThread::keyboard_listener, this); sysv_queue_thread_ = boost::thread(&ControlThread::sysv_queue_listener, this); + bool enable_FPGA = configuration_->property("Channel.enable_FPGA", false); + + if (enable_FPGA == true) + { + flowgraph_->start_acquisition_helper(); + } + // Main loop to read and process the control messages while (flowgraph_->running() && !stop_) { diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index e379220a5..b30c18c8d 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -107,6 +107,8 @@ void GNSSFlowgraph::connect() } for (int i = 0; i < sources_count_; i++) + { + if (configuration_->property(sig_source_.at(i)->role() + ".enable_FPGA", false)==false) { try { @@ -120,9 +122,12 @@ void GNSSFlowgraph::connect() return; } } + } // Signal Source > Signal conditioner > for (unsigned int i = 0; i < sig_conditioner_.size(); i++) + { + if (configuration_->property(sig_conditioner_.at(i)->role() + ".enable_FPGA", false)==false) { try { @@ -136,6 +141,7 @@ void GNSSFlowgraph::connect() return; } } + } for (unsigned int i = 0; i < channels_count_; i++) { @@ -184,6 +190,10 @@ void GNSSFlowgraph::connect() for (int i = 0; i < sources_count_; i++) { + //FPGA Accelerators do not need signal sources or conditioners + //as the samples are feed directly to the FPGA fabric, so, if enabled, do not connect any source + if (configuration_->property(sig_source_.at(i)->role() + ".enable_FPGA", false)==false) + { try { //TODO: Remove this array implementation and create generic multistream connector @@ -244,12 +254,17 @@ void GNSSFlowgraph::connect() return; } } + } DLOG(INFO) << "Signal source connected to signal conditioner"; // Signal conditioner (selected_signal_source) >> channels (i) (dependent of their associated SignalSource_ID) int selected_signal_conditioner_ID; for (unsigned int i = 0; i < channels_count_; i++) { + + bool FPGA_enabled = configuration_->property(sig_conditioner_.at(selected_signal_conditioner_ID)->role() + ".enable_FPGA", false); + if (FPGA_enabled == false) + { selected_signal_conditioner_ID = configuration_->property("Channel" + boost::lexical_cast(i) + ".RF_channel_ID", 0); try { @@ -265,7 +280,7 @@ void GNSSFlowgraph::connect() } DLOG(INFO) << "signal conditioner " << selected_signal_conditioner_ID << " connected to channel " << i; - + } // Signal Source > Signal conditioner >> Channels >> Observables try { @@ -285,7 +300,10 @@ void GNSSFlowgraph::connect() if (channels_state_[i] == 1) { + if (FPGA_enabled == false) + { channels_.at(i)->start_acquisition(); + } available_GNSS_signals_.pop_front(); LOG(INFO) << "Channel " << i << " assigned to " << channels_.at(i)->get_signal(); LOG(INFO) << "Channel " << i << " connected to observables and ready for acquisition"; @@ -295,11 +313,14 @@ void GNSSFlowgraph::connect() LOG(INFO) << "Channel " << i << " connected to observables in standby mode"; } //connect the sample counter to the channel 0 + if (FPGA_enabled == false) + { if (i == 0) { ch_out_sample_counter = gnss_sdr_make_sample_counter(); top_block_->connect(channels_.at(i)->get_right_block(), 0, ch_out_sample_counter, 0); } + } } /* @@ -326,6 +347,16 @@ void GNSSFlowgraph::connect() top_block_->dump(); } +void GNSSFlowgraph::start_acquisition_helper() +{ + for (unsigned int i = 0; i < channels_count_; i++) + { + if (channels_state_[i] == 1) + { + channels_.at(i)->start_acquisition(); + } + } +} void GNSSFlowgraph::wait() { diff --git a/src/core/receiver/gnss_flowgraph.h b/src/core/receiver/gnss_flowgraph.h index 615ee0dc4..a0f09e4bf 100644 --- a/src/core/receiver/gnss_flowgraph.h +++ b/src/core/receiver/gnss_flowgraph.h @@ -86,6 +86,8 @@ public: void wait(); + void start_acquisition_helper(); + /*! * \brief Applies an action to the flowgraph * From ec09016750f2634d9c8eb8d4e8de32f2d4e651d5 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Tue, 27 Mar 2018 14:24:07 +0200 Subject: [PATCH 005/108] Adding Local Oscillator generation for dual band operation using AD9361 FPGA source. Bug fix in FPGA flowgraph --- .../adapters/ad9361_fpga_signal_source.cc | 182 ++++++++++++++++++ .../adapters/ad9361_fpga_signal_source.h | 8 + .../signal_source/libs/ad9361_manager.cc | 166 ++++++++++++++++ .../signal_source/libs/ad9361_manager.h | 130 +++++++++++++ src/core/receiver/gnss_flowgraph.cc | 3 +- 5 files changed, 488 insertions(+), 1 deletion(-) create mode 100644 src/algorithms/signal_source/libs/ad9361_manager.cc create mode 100644 src/algorithms/signal_source/libs/ad9361_manager.h diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index 3aaf74a79..ff6860499 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -33,6 +33,7 @@ #include "ad9361_fpga_signal_source.h" #include "configuration_interface.h" #include "GPS_L1_CA.h" +#include "GPS_L2C.h" #include #include #include @@ -191,6 +192,13 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); + enable_dds_lo_=configuration->property(role + ".enable_dds_lo", false); + freq_rf_tx_hz_=configuration->property(role + ".freq_rf_tx_hz", GPS_L1_FREQ_HZ-GPS_L2_FREQ_HZ-1000); + freq_dds_tx_hz_=configuration->property(role + ".freq_dds_tx_hz", 1000); + scale_dds_dbfs_=configuration->property(role + ".scale_dds_dbfs", -3.0); + phase_dds_deg_=configuration->property(role + ".phase_dds_deg", 0.0); + tx_attenuation_db_=configuration->property(role + ".tx_attenuation_db", 0.0); + item_size_ = sizeof(gr_complex); std::cout << "device address: " << uri_ << std::endl; @@ -199,6 +207,8 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura // AD9361 Frontend IC device operation + int ret; + // Streaming devices struct iio_device *rx; @@ -258,6 +268,151 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura iio_channel_enable(rx0_i); iio_channel_enable(rx0_q); + + + struct iio_device *ad9361_phy; + ad9361_phy= iio_context_find_device(ctx, "ad9361-phy"); + ret=iio_device_attr_write(ad9361_phy,"trx_rate_governor","nominal"); + if (ret < 0) { + std::cout<<"Failed to set trx_rate_governor: "<. + * + * ------------------------------------------------------------------------- + */ +#include "ad9361_manager.h" +#include +#include //only for snprintf +#include +#include + +/* check return value of attr_write function */ +static void errchk(int v, const char* what) { + if (v < 0) + { + LOG(WARNING)<<"Error "<rfport); + wr_ch_lli(chn, "rf_bandwidth", cfg->bw_hz); + wr_ch_lli(chn, "sampling_frequency", cfg->fs_hz); + + // Configure LO channel + LOG(INFO)<<"* Acquiring AD9361 "<lo_hz); + return true; +} + + +static bool set_dds_cw_tone(struct iio_device *dac1, struct iio_channel *chn, double freq_hz, double scale_dbfs, double phase_deg) +{ + + //ENABLE DDS + int ret; + ret = iio_channel_attr_write_bool(iio_device_find_channel(dac1, "altvoltage0", true), "raw", true); + if (ret < 0) { + std::cout<<"Failed to toggle DDS: "<. + * + * ------------------------------------------------------------------------- + */ + +#ifndef __AD9361_MANAGER__ +#define __AD9361_MANAGER__ + + +#ifdef __APPLE__ +#include +#else +#include +#endif + + + +/* RX is input, TX is output */ +enum iodev { RX, TX }; + +/* common RX and TX streaming params */ +struct stream_cfg { + long long bw_hz; // Analog banwidth in Hz + long long fs_hz; // Baseband sample rate in Hz + long long lo_hz; // Local oscillator frequency in Hz + const char* rfport; // Port name +}; + + +enum dds_tone_type { + TX1_T1_I, + TX1_T2_I, + TX1_T1_Q, + TX1_T2_Q, + TX2_T1_I, + TX2_T2_I, + TX2_T1_Q, + TX2_T2_Q, + TX3_T1_I, + TX3_T2_I, + TX3_T1_Q, + TX3_T2_Q, + TX4_T1_I, + TX4_T2_I, + TX4_T1_Q, + TX4_T2_Q +}; + +enum dds_widget_type { + WIDGET_FREQUENCY, + WIDGET_SCALE, + WIDGET_PHASE +}; + +#define DDS_DISABLED 0 +#define DDS_ONE_TONE 1 +#define DDS_TWO_TONE 2 +#define DDS_INDEPDENT 3 +#define DDS_BUFFER 4 + + +/* static scratch mem for strings */ +static char tmpstr[64]; + +/* IIO structs required for streaming */ +static struct iio_context *ctx = NULL; +static struct iio_channel *rx0_i = NULL; +static struct iio_channel *rx0_q = NULL; + +/* check return value of attr_write function */ +static void errchk(int v, const char* what); + +/* write attribute: long long int */ +static void wr_ch_lli(struct iio_channel *chn, const char* what, long long val); + +/* write attribute: string */ +static void wr_ch_str(struct iio_channel *chn, const char* what, const char* str); + +/* helper function generating channel names */ +static char* get_ch_name(const char* type, int id); + +/* returns ad9361 phy device */ +static struct iio_device* get_ad9361_phy(struct iio_context *ctx); + +/* finds AD9361 streaming IIO devices */ +static bool get_ad9361_stream_dev(struct iio_context *ctx, enum iodev d, struct iio_device **dev); + +/* finds AD9361 streaming IIO channels */ +static bool get_ad9361_stream_ch(struct iio_context *ctx, enum iodev d, struct iio_device *dev, int chid, struct iio_channel **chn); + +/* finds AD9361 phy IIO configuration channel with id chid */ +static bool get_phy_chan(struct iio_context *ctx, enum iodev d, int chid, struct iio_channel **chn); + +/* finds AD9361 local oscillator IIO configuration channels */ +static bool get_lo_chan(struct iio_context *ctx, enum iodev d, struct iio_channel **chn); + +/* applies streaming configuration through IIO */ +bool cfg_ad9361_streaming_ch(struct iio_context *ctx, struct stream_cfg *cfg, enum iodev type, int chid); + + +static bool set_dds_cw_tone(struct iio_device *dac1, double freq_hz, double scale_dbfs, double phase_deg); + +#endif diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index b30c18c8d..8ba25be7f 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -262,7 +262,8 @@ void GNSSFlowgraph::connect() for (unsigned int i = 0; i < channels_count_; i++) { - bool FPGA_enabled = configuration_->property(sig_conditioner_.at(selected_signal_conditioner_ID)->role() + ".enable_FPGA", false); + bool FPGA_enabled = configuration_->property(sig_source_.at(0)->role() + ".enable_FPGA", false); + if (FPGA_enabled == false) { selected_signal_conditioner_ID = configuration_->property("Channel" + boost::lexical_cast(i) + ".RF_channel_ID", 0); From 428a2eb1b5565e101e09a7514e8a53b0253cdf5e Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Tue, 27 Mar 2018 14:44:56 +0200 Subject: [PATCH 006/108] Removing unused files --- .../signal_source/libs/ad9361_manager.cc | 166 ------------------ .../signal_source/libs/ad9361_manager.h | 130 -------------- 2 files changed, 296 deletions(-) delete mode 100644 src/algorithms/signal_source/libs/ad9361_manager.cc delete mode 100644 src/algorithms/signal_source/libs/ad9361_manager.h diff --git a/src/algorithms/signal_source/libs/ad9361_manager.cc b/src/algorithms/signal_source/libs/ad9361_manager.cc deleted file mode 100644 index 370d3e531..000000000 --- a/src/algorithms/signal_source/libs/ad9361_manager.cc +++ /dev/null @@ -1,166 +0,0 @@ -/*! - * \file ad9361_manager.cc - * \brief An Analog Devices AD9361 front-end configuration library wrapper for configure some functions via iiod link. - * \author Javier Arribas, jarribas(at)cttc.es - * - * This file contains information taken from librtlsdr: - * http://git.osmocom.org/rtl-sdr/ - * ------------------------------------------------------------------------- - * - * 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 "ad9361_manager.h" -#include -#include //only for snprintf -#include -#include - -/* check return value of attr_write function */ -static void errchk(int v, const char* what) { - if (v < 0) - { - LOG(WARNING)<<"Error "<rfport); - wr_ch_lli(chn, "rf_bandwidth", cfg->bw_hz); - wr_ch_lli(chn, "sampling_frequency", cfg->fs_hz); - - // Configure LO channel - LOG(INFO)<<"* Acquiring AD9361 "<lo_hz); - return true; -} - - -static bool set_dds_cw_tone(struct iio_device *dac1, struct iio_channel *chn, double freq_hz, double scale_dbfs, double phase_deg) -{ - - //ENABLE DDS - int ret; - ret = iio_channel_attr_write_bool(iio_device_find_channel(dac1, "altvoltage0", true), "raw", true); - if (ret < 0) { - std::cout<<"Failed to toggle DDS: "<. - * - * ------------------------------------------------------------------------- - */ - -#ifndef __AD9361_MANAGER__ -#define __AD9361_MANAGER__ - - -#ifdef __APPLE__ -#include -#else -#include -#endif - - - -/* RX is input, TX is output */ -enum iodev { RX, TX }; - -/* common RX and TX streaming params */ -struct stream_cfg { - long long bw_hz; // Analog banwidth in Hz - long long fs_hz; // Baseband sample rate in Hz - long long lo_hz; // Local oscillator frequency in Hz - const char* rfport; // Port name -}; - - -enum dds_tone_type { - TX1_T1_I, - TX1_T2_I, - TX1_T1_Q, - TX1_T2_Q, - TX2_T1_I, - TX2_T2_I, - TX2_T1_Q, - TX2_T2_Q, - TX3_T1_I, - TX3_T2_I, - TX3_T1_Q, - TX3_T2_Q, - TX4_T1_I, - TX4_T2_I, - TX4_T1_Q, - TX4_T2_Q -}; - -enum dds_widget_type { - WIDGET_FREQUENCY, - WIDGET_SCALE, - WIDGET_PHASE -}; - -#define DDS_DISABLED 0 -#define DDS_ONE_TONE 1 -#define DDS_TWO_TONE 2 -#define DDS_INDEPDENT 3 -#define DDS_BUFFER 4 - - -/* static scratch mem for strings */ -static char tmpstr[64]; - -/* IIO structs required for streaming */ -static struct iio_context *ctx = NULL; -static struct iio_channel *rx0_i = NULL; -static struct iio_channel *rx0_q = NULL; - -/* check return value of attr_write function */ -static void errchk(int v, const char* what); - -/* write attribute: long long int */ -static void wr_ch_lli(struct iio_channel *chn, const char* what, long long val); - -/* write attribute: string */ -static void wr_ch_str(struct iio_channel *chn, const char* what, const char* str); - -/* helper function generating channel names */ -static char* get_ch_name(const char* type, int id); - -/* returns ad9361 phy device */ -static struct iio_device* get_ad9361_phy(struct iio_context *ctx); - -/* finds AD9361 streaming IIO devices */ -static bool get_ad9361_stream_dev(struct iio_context *ctx, enum iodev d, struct iio_device **dev); - -/* finds AD9361 streaming IIO channels */ -static bool get_ad9361_stream_ch(struct iio_context *ctx, enum iodev d, struct iio_device *dev, int chid, struct iio_channel **chn); - -/* finds AD9361 phy IIO configuration channel with id chid */ -static bool get_phy_chan(struct iio_context *ctx, enum iodev d, int chid, struct iio_channel **chn); - -/* finds AD9361 local oscillator IIO configuration channels */ -static bool get_lo_chan(struct iio_context *ctx, enum iodev d, struct iio_channel **chn); - -/* applies streaming configuration through IIO */ -bool cfg_ad9361_streaming_ch(struct iio_context *ctx, struct stream_cfg *cfg, enum iodev type, int chid); - - -static bool set_dds_cw_tone(struct iio_device *dac1, double freq_hz, double scale_dbfs, double phase_deg); - -#endif From 982af827b4c973ec14aeb23cd7618750ec5a99d5 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Tue, 27 Mar 2018 19:00:25 +0200 Subject: [PATCH 007/108] Group all ad9361 configuration calls in one library --- .../adapters/ad9361_fpga_signal_source.cc | 371 +-------- .../signal_source/libs/CMakeLists.txt | 47 +- .../signal_source/libs/ad9361_manager.cc | 704 ++++++++++++++++++ .../signal_source/libs/ad9361_manager.h | 127 ++++ 4 files changed, 898 insertions(+), 351 deletions(-) create mode 100644 src/algorithms/signal_source/libs/ad9361_manager.cc create mode 100644 src/algorithms/signal_source/libs/ad9361_manager.h diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index ff6860499..cf9130767 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -32,6 +32,7 @@ #include "ad9361_fpga_signal_source.h" #include "configuration_interface.h" +#include "ad9361_manager.h" #include "GPS_L1_CA.h" #include "GPS_L2C.h" #include @@ -45,123 +46,6 @@ #include #endif - -/* RX is input, TX is output */ -enum iodev { RX, TX }; - -/* common RX and TX streaming params */ -struct stream_cfg { - long long bw_hz; // Analog banwidth in Hz - long long fs_hz; // Baseband sample rate in Hz - long long lo_hz; // Local oscillator frequency in Hz - const char* rfport; // Port name -}; - - -using google::LogMessage; - - -/* static scratch mem for strings */ -static char tmpstr[64]; - -/* IIO structs required for streaming */ -static struct iio_context *ctx = NULL; -static struct iio_channel *rx0_i = NULL; -static struct iio_channel *rx0_q = NULL; - -/* check return value of attr_write function */ -static void errchk(int v, const char* what) { - if (v < 0) { fprintf(stderr, "Error %d writing to channel \"%s\"\nvalue may not be supported.\n", v, what); } -} - -/* write attribute: long long int */ -static void wr_ch_lli(struct iio_channel *chn, const char* what, long long val) -{ - errchk(iio_channel_attr_write_longlong(chn, what, val), what); -} - -/* write attribute: string */ -static void wr_ch_str(struct iio_channel *chn, const char* what, const char* str) -{ - errchk(iio_channel_attr_write(chn, what, str), what); -} - - -/* helper function generating channel names */ -static char* get_ch_name(const char* type, int id) -{ - snprintf(tmpstr, sizeof(tmpstr), "%s%d", type, id); - return tmpstr; -} - -/* returns ad9361 phy device */ -static struct iio_device* get_ad9361_phy(struct iio_context *ctx) -{ - struct iio_device *dev = iio_context_find_device(ctx, "ad9361-phy"); - return dev; -} - -/* finds AD9361 streaming IIO devices */ -static bool get_ad9361_stream_dev(struct iio_context *ctx, enum iodev d, struct iio_device **dev) -{ - switch (d) { - case TX: *dev = iio_context_find_device(ctx, "cf-ad9361-dds-core-lpc"); return *dev != NULL; - case RX: *dev = iio_context_find_device(ctx, "cf-ad9361-lpc"); return *dev != NULL; - default: return false; - } -} - -/* finds AD9361 streaming IIO channels */ -static bool get_ad9361_stream_ch(struct iio_context *ctx, enum iodev d, struct iio_device *dev, int chid, struct iio_channel **chn) -{ - *chn = iio_device_find_channel(dev, get_ch_name("voltage", chid), d == TX); - if (!*chn) - *chn = iio_device_find_channel(dev, get_ch_name("altvoltage", chid), d == TX); - return *chn != NULL; -} - -/* finds AD9361 phy IIO configuration channel with id chid */ -static bool get_phy_chan(struct iio_context *ctx, enum iodev d, int chid, struct iio_channel **chn) -{ - switch (d) { - case RX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("voltage", chid), false); return *chn != NULL; - case TX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("voltage", chid), true); return *chn != NULL; - default: return false; - } -} - -/* finds AD9361 local oscillator IIO configuration channels */ -static bool get_lo_chan(struct iio_context *ctx, enum iodev d, struct iio_channel **chn) -{ - switch (d) { - // LO chan is always output, i.e. true - case RX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("altvoltage", 0), true); return *chn != NULL; - case TX: *chn = iio_device_find_channel(get_ad9361_phy(ctx), get_ch_name("altvoltage", 1), true); return *chn != NULL; - default: return false; - } -} - - -/* applies streaming configuration through IIO */ -bool cfg_ad9361_streaming_ch(struct iio_context *ctx, struct stream_cfg *cfg, enum iodev type, int chid) -{ - struct iio_channel *chn = NULL; - - // Configure phy and lo channels - printf("* Acquiring AD9361 phy channel %d\n", chid); - if (!get_phy_chan(ctx, type, chid, &chn)) { return false; } - wr_ch_str(chn, "rf_port_select", cfg->rfport); - wr_ch_lli(chn, "rf_bandwidth", cfg->bw_hz); - wr_ch_lli(chn, "sampling_frequency", cfg->fs_hz); - - // Configure LO channel - printf("* Acquiring AD9361 %s lo channel\n", type == TX ? "TX" : "RX"); - if (!get_lo_chan(ctx, type, &chn)) { return false; } - wr_ch_lli(chn, "frequency", cfg->lo_hz); - return true; -} - - Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configuration, std::string role, unsigned int in_stream, unsigned int out_stream, boost::shared_ptr queue) : @@ -170,7 +54,6 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura { std::string default_item_type = "gr_complex"; std::string default_dump_file = "./data/signal_source.dat"; - uri_ = configuration->property(role + ".device_address", std::string("192.168.2.1")); freq_ = configuration->property(role + ".freq", GPS_L1_FREQ_HZ); sample_rate_ = configuration->property(role + ".sampling_frequency", 2600000); bandwidth_ = configuration->property(role + ".bandwidth", 2000000); @@ -205,212 +88,24 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura std::cout << "LO frequency : " << freq_ << " Hz" << std::endl; std::cout << "sample rate: " << sample_rate_ << " Hz" << std::endl; - - // AD9361 Frontend IC device operation - int ret; - - - // Streaming devices - struct iio_device *rx; - - // RX stream config - // Stream configurations - struct stream_cfg rxcfg; - rxcfg.bw_hz = bandwidth_; // 2 MHz rf bandwidth - rxcfg.fs_hz = sample_rate_; // 2.5 MS/s rx sample rate - rxcfg.lo_hz = freq_; // 2.5 GHz rf frequency - rxcfg.rfport = rf_port_select_.c_str(); // port A (select for rf freq.) - - - std::cout<<"AD9361 Acquiring IIO context\n"; - ctx = iio_create_default_context(); - if (!ctx) - { - std::cout<<"No context\n"; - throw std::runtime_error("AD9361 IIO No context"); - } - - if (iio_context_get_devices_count(ctx) <= 0) - { - std::cout<<"No devices\n"; - throw std::runtime_error("AD9361 IIO No devices"); - } - - std::cout<<"* Acquiring AD9361 streaming devices\n"; - - if(!get_ad9361_stream_dev(ctx, RX, &rx)) - { - std::cout<<"No rx dev found\n"; - throw std::runtime_error("AD9361 IIO No rx dev found"); - }; - - std::cout<<"* Configuring AD9361 for streaming\n"; - if (!cfg_ad9361_streaming_ch(ctx, &rxcfg, RX, 0)) - { - std::cout<<"RX port 0 not found\n"; - throw std::runtime_error("AD9361 IIO RX port 0 not found"); - } - - std::cout<<"* Initializing AD9361 IIO streaming channels\n"; - if (!get_ad9361_stream_ch(ctx, RX, rx, 0, &rx0_i)) - { - std::cout<<"RX chan i not found\n"; - throw std::runtime_error("RX chan i not found"); - } - - if (!get_ad9361_stream_ch(ctx, RX, rx, 1, &rx0_q)) - { - std::cout<<"RX chan q not found\n"; - throw std::runtime_error("RX chan q not found"); - } - - std::cout<<"* Enabling IIO streaming channels\n"; - iio_channel_enable(rx0_i); - iio_channel_enable(rx0_q); - - - - struct iio_device *ad9361_phy; - ad9361_phy= iio_context_find_device(ctx, "ad9361-phy"); - ret=iio_device_attr_write(ad9361_phy,"trx_rate_governor","nominal"); - if (ret < 0) { - std::cout<<"Failed to set trx_rate_governor: "<. # +if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) + find_package(iio REQUIRED) + if(NOT IIO_FOUND) + message(STATUS "gnuradio-iio not found, its installation is required.") + message(STATUS "Please build and install the following projects:") + message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") + message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") + message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") + message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") + endif(NOT IIO_FOUND) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${IIO_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) + +endif(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) + +if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) + find_package(libiio REQUIRED) + if(NOT LIBIIO_FOUND) + message(STATUS "gnuradio-iio not found, its installation is required.") + message(STATUS "Please build and install the following projects:") + message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") + message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") + message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") + message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") + endif(NOT LIBIIO_FOUND) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${LIBIIO_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${LIBIIO_INCLUDE_DIRS}) + + ############################################### + # FMCOMMS2 based SDR Hardware + ############################################### + if(IIO_FOUND) + set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) + endif(IIO_FOUND) + +endif(ENABLE_FMCOMMS2 OR ENABLE_AD9361) + set (SIGNAL_SOURCE_LIB_SOURCES rtl_tcp_commands.cc - rtl_tcp_dongle_info.cc) + rtl_tcp_dongle_info.cc + ${OPT_SIGNAL_SOURCE_LIB_SOURCES}) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${Boost_INCLUDE_DIRS} + ${OPT_DRIVER_INCLUDE_DIRS} ) + file(GLOB SIGNAL_SOURCE_LIB_HEADERS "*.h") list(SORT SIGNAL_SOURCE_LIB_HEADERS) add_library(signal_source_lib ${SIGNAL_SOURCE_LIB_SOURCES} ${SIGNAL_SOURCE_LIB_HEADERS}) -source_group(Headers FILES ${SIGNAL_SOURCE_LIB_HEADERS}) \ No newline at end of file +source_group(Headers FILES ${SIGNAL_SOURCE_LIB_HEADERS}) + +target_link_libraries(signal_source_lib ${OPT_LIBRARIES}) + diff --git a/src/algorithms/signal_source/libs/ad9361_manager.cc b/src/algorithms/signal_source/libs/ad9361_manager.cc new file mode 100644 index 000000000..66a95ee14 --- /dev/null +++ b/src/algorithms/signal_source/libs/ad9361_manager.cc @@ -0,0 +1,704 @@ +/*! + * \file ad9361_manager.cc + * \brief An Analog Devices AD9361 front-end configuration library wrapper for configure some functions via iiod link. + * \author Javier Arribas, jarribas(at)cttc.es + * + * This file contains information taken from librtlsdr: + * http://git.osmocom.org/rtl-sdr/ + * ------------------------------------------------------------------------- + * + * 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 "ad9361_manager.h" +#include +#include +#include +#include + +/* check return value of attr_write function */ +void errchk(int v, const char* what) { + if (v < 0) + { + LOG(WARNING)<<"Error "<rfport); + wr_ch_lli(chn, "rf_bandwidth", cfg->bw_hz); + wr_ch_lli(chn, "sampling_frequency", cfg->fs_hz); + + // Configure LO channel + //LOG(INFO)<<"* Acquiring AD9361 "<lo_hz); + return true; +} + + +bool config_ad9361_rx_local(unsigned long bandwidth_, + unsigned long sample_rate_, + unsigned long freq_, + std::string rf_port_select_, + std::string gain_mode_rx1_, + std::string gain_mode_rx2_, + double rf_gain_rx1_, + double rf_gain_rx2_) + +{ + // RX stream config + // Stream configurations + struct stream_cfg rxcfg; + rxcfg.bw_hz = bandwidth_; // 2 MHz rf bandwidth + rxcfg.fs_hz = sample_rate_; // 2.5 MS/s rx sample rate + rxcfg.lo_hz = freq_; // 2.5 GHz rf frequency + rxcfg.rfport = rf_port_select_.c_str(); // port A (select for rf freq.) + + std::cout<<"AD9361 Acquiring IIO LOCAL context\n"; + struct iio_context *ctx; + // Streaming devices + struct iio_device *rx; + struct iio_channel *rx0_i; + struct iio_channel *rx0_q; + + ctx = iio_create_default_context(); + if (!ctx) + { + std::cout<<"No context\n"; + throw std::runtime_error("AD9361 IIO No context"); + } + + if (iio_context_get_devices_count(ctx) <= 0) + { + std::cout<<"No devices\n"; + throw std::runtime_error("AD9361 IIO No devices"); + } + + std::cout<<"* Acquiring AD9361 streaming devices\n"; + + if(!get_ad9361_stream_dev(ctx, RX, &rx)) + { + std::cout<<"No rx dev found\n"; + throw std::runtime_error("AD9361 IIO No rx dev found"); + }; + + std::cout<<"* Configuring AD9361 for streaming\n"; + if (!cfg_ad9361_streaming_ch(ctx, &rxcfg, RX, 0)) + { + std::cout<<"RX port 0 not found\n"; + throw std::runtime_error("AD9361 IIO RX port 0 not found"); + } + + std::cout<<"* Initializing AD9361 IIO streaming channels\n"; + if (!get_ad9361_stream_ch(ctx, RX, rx, 0, &rx0_i)) + { + std::cout<<"RX chan i not found\n"; + throw std::runtime_error("RX chan i not found"); + } + + if (!get_ad9361_stream_ch(ctx, RX, rx, 1, &rx0_q)) + { + std::cout<<"RX chan q not found\n"; + throw std::runtime_error("RX chan q not found"); + } + + std::cout<<"* Enabling IIO streaming channels\n"; + iio_channel_enable(rx0_i); + iio_channel_enable(rx0_q); + + struct iio_device *ad9361_phy; + ad9361_phy= iio_context_find_device(ctx, "ad9361-phy"); + int ret; + ret=iio_device_attr_write(ad9361_phy,"trx_rate_governor","nominal"); + if (ret < 0) { + std::cout<<"Failed to set trx_rate_governor: "<. + * + * ------------------------------------------------------------------------- + */ + +#ifndef __AD9361_MANAGER__ +#define __AD9361_MANAGER__ + +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +/* RX is input, TX is output */ +enum iodev { RX, TX }; + +/* common RX and TX streaming params */ +struct stream_cfg { + long long bw_hz; // Analog banwidth in Hz + long long fs_hz; // Baseband sample rate in Hz + long long lo_hz; // Local oscillator frequency in Hz + const char* rfport; // Port name +}; + + +/* check return value of attr_write function */ +void errchk(int v, const char* what); + +/* write attribute: long long int */ +void wr_ch_lli(struct iio_channel *chn, const char* what, long long val); + +/* write attribute: string */ +void wr_ch_str(struct iio_channel *chn, const char* what, const char* str); + +/* helper function generating channel names */ +char* get_ch_name(const char* type, int id, char* tmpstr); + +/* returns ad9361 phy device */ +struct iio_device* get_ad9361_phy(struct iio_context *ctx); + +/* finds AD9361 streaming IIO devices */ +bool get_ad9361_stream_dev(struct iio_context *ctx, enum iodev d, struct iio_device **dev); + +/* finds AD9361 streaming IIO channels */ +bool get_ad9361_stream_ch(struct iio_context *ctx, enum iodev d, struct iio_device *dev, int chid, struct iio_channel **chn); + +/* finds AD9361 phy IIO configuration channel with id chid */ +bool get_phy_chan(struct iio_context *ctx, enum iodev d, int chid, struct iio_channel **chn); + +/* finds AD9361 local oscillator IIO configuration channels */ +bool get_lo_chan(struct iio_context *ctx, enum iodev d, struct iio_channel **chn); + +/* applies streaming configuration through IIO */ +bool cfg_ad9361_streaming_ch(struct iio_context *ctx, struct stream_cfg *cfg, enum iodev type, int chid); + + +bool config_ad9361_rx_local(unsigned long bandwidth_, + unsigned long sample_rate_, + unsigned long freq_, + std::string rf_port_select_, + std::string gain_mode_rx1_, + std::string gain_mode_rx2_, + double rf_gain_rx1_, + double rf_gain_rx2_); + +bool config_ad9361_rx_remote(std::string remote_host, + unsigned long bandwidth_, + unsigned long sample_rate_, + unsigned long freq_, + std::string rf_port_select_, + std::string gain_mode_rx1_, + std::string gain_mode_rx2_, + double rf_gain_rx1_, + double rf_gain_rx2_); + +bool config_ad9361_lo_local(unsigned long bandwidth_, + unsigned long sample_rate_, + unsigned long freq_rf_tx_hz_, + double tx_attenuation_db_, + long long freq_dds_tx_hz_, + double scale_dds_dbfs_); + +bool config_ad9361_lo_remote(std::string remote_host, + unsigned long bandwidth_, + unsigned long sample_rate_, + unsigned long freq_rf_tx_hz_, + double tx_attenuation_db_, + long long freq_dds_tx_hz_, + double scale_dds_dbfs_); + + +bool ad9361_disable_lo_remote(std::string remote_host); + +bool ad9361_disable_lo_local(); + + +#endif From e1635a735d997b525bb5797f21d4916c1b45d735 Mon Sep 17 00:00:00 2001 From: mmajoral Date: Thu, 5 Apr 2018 15:05:46 +0200 Subject: [PATCH 008/108] Added the class switch_FPGA, which controls the switch in the FPGA that connects the analog frontend and the DMA to the queues of the HW accelerators. Removed some unused variables in the tracking. --- .../adapters/ad9361_fpga_signal_source.cc | 6 + .../adapters/ad9361_fpga_signal_source.h | 3 + .../signal_source/libs/CMakeLists.txt | 4 + .../signal_source/libs/fpga_switch.cc | 136 ++++++++++++++++ .../signal_source/libs/fpga_switch.h | 61 ++++++++ .../gps_l1_ca_dll_pll_tracking_fpga_sc.cc | 27 +--- .../gps_l1_ca_dll_pll_tracking_fpga_sc.h | 2 - src/algorithms/tracking/libs/CMakeLists.txt | 1 - .../tracking/libs/fpga_multicorrelator_8sc.cc | 27 +--- .../tracking/libs/fpga_multicorrelator_8sc.h | 12 +- .../fpga_multicorrelator_real_codes_8sc.cc | 148 ------------------ .../fpga_multicorrelator_real_codes_8sc.h | 73 --------- 12 files changed, 231 insertions(+), 269 deletions(-) create mode 100644 src/algorithms/signal_source/libs/fpga_switch.cc create mode 100644 src/algorithms/signal_source/libs/fpga_switch.h delete mode 100644 src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc delete mode 100644 src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index cf9130767..cba4e5439 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -108,6 +108,12 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura scale_dds_dbfs_); } + // turn switch to A/D position + std::string default_device_name = "/dev/uio13"; + std::string device_name = configuration->property(role + ".devicename", default_device_name); + int switch_position = configuration->property(role + ".switch_position", 0); + switch_fpga = std::make_shared (device_name); + switch_fpga->set_switch_position(switch_position); } diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h index 5371f7faf..6110a63c3 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h @@ -33,6 +33,7 @@ #define GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H_ #include "gnss_block_interface.h" +#include "fpga_switch.h" #include #include @@ -112,6 +113,8 @@ private: std::string dump_filename_; boost::shared_ptr queue_; + + std::shared_ptr switch_fpga; }; #endif /*GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H_*/ diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index 45131f918..5617be70a 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -58,6 +58,10 @@ set (SIGNAL_SOURCE_LIB_SOURCES rtl_tcp_dongle_info.cc ${OPT_SIGNAL_SOURCE_LIB_SOURCES}) +if(ENABLE_FPGA) + SET(SIGNAL_SOURCE_LIB_SOURCES ${SIGNAL_SOURCE_LIB_SOURCES} fpga_switch.cc) +endif(ENABLE_FPGA) + include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${Boost_INCLUDE_DIRS} diff --git a/src/algorithms/signal_source/libs/fpga_switch.cc b/src/algorithms/signal_source/libs/fpga_switch.cc new file mode 100644 index 000000000..e349a3c53 --- /dev/null +++ b/src/algorithms/signal_source/libs/fpga_switch.cc @@ -0,0 +1,136 @@ +/*! + * \file fpga_switch.cc + * \brief Switch that connects the HW accelerator queues to the analog front end or the DMA. + * \authors
    + *
  • Marc Majoral, 2017. mmajoral(at)cttc.cat + *
  • Javier Arribas, 2015. jarribas(at)cttc.es + *
+ * + * Class that controls a switch 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_switch.h" + +#include + +// FPGA stuff +#include + +// libraries used by DMA test code and GIPO test code +#include +#include +#include +#include + +// libraries used by DMA test code +#include +#include +#include +#include + +// libraries used by GPIO test code +#include +#include +#include + +// logging +#include + +// string manipulation +#include + +// constants +#define PAGE_SIZE 0x10000 +#define TEST_REGISTER_TRACK_WRITEVAL 0x55AA + +fpga_switch::fpga_switch(std::string device_name) +{ + if ((d_device_descriptor = open(device_name.c_str(), O_RDWR | O_SYNC)) == -1) + { + LOG(WARNING) << "Cannot open deviceio" << device_name; + printf("switch memory successfully mapped\n"); + } + d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE, + PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); + + if (d_map_base == reinterpret_cast(-1)) + { + LOG(WARNING) << "Cannot map the FPGA switch module into tracking memory"; + printf("could not map switch memory\n"); + } + + // sanity check : check test register + unsigned writeval = TEST_REGISTER_TRACK_WRITEVAL; + unsigned readval; + readval = fpga_switch::fpga_switch_test_register(writeval); + if (writeval != readval) + { + LOG(WARNING) << "Test register sanity check failed"; + } + else + { + LOG(INFO) << "Test register sanity check success !"; + } + + DLOG(INFO) << "Switch FPGA class created"; +} + +fpga_switch::~fpga_switch() +{ + close_device(); +} + +void fpga_switch::set_switch_position(int switch_position) +{ + d_map_base[0] = switch_position; +} + +unsigned fpga_switch::fpga_switch_test_register( + unsigned writeval) +{ + unsigned readval; + // write value to test register + d_map_base[3] = writeval; + // read value from test register + readval = d_map_base[3]; + // return read value + return readval; +} + +void fpga_switch::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_device_descriptor); +} + + diff --git a/src/algorithms/signal_source/libs/fpga_switch.h b/src/algorithms/signal_source/libs/fpga_switch.h new file mode 100644 index 000000000..c3ce2fbba --- /dev/null +++ b/src/algorithms/signal_source/libs/fpga_switch.h @@ -0,0 +1,61 @@ +/*! + * \file fpga_switch.h + * \brief Switch that connects the HW accelerator queues to the analog front end or the DMA. + * \authors
    + *
  • Marc Majoral, 2017. mmajoral(at)cttc.cat + *
  • Javier Arribas, 2016. jarribas(at)cttc.es + *
+ * + * Class that controls a switch 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 . + * + * ------------------------------------------------------------------------- + */ + +#ifndef GNSS_SDR_FPGA_SWITCH_H_ +#define GNSS_SDR_FPGA_SWITCH_H_ + +#include + +#define MAX_LENGTH_DEVICEIO_NAME 50 + +class fpga_switch +{ +public: + fpga_switch(std::string device_name); + ~fpga_switch(); + void set_switch_position(int switch_position); + +private: + int d_device_descriptor; // driver descriptor + volatile unsigned *d_map_base; // driver memory map + + // private functions + unsigned fpga_switch_test_register(unsigned writeval); + void close_device(void); + +}; + +#endif /* GNSS_SDR_FPGA_SWITCH_H_ */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc index a6ebb9bec..f346ff8bc 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc @@ -173,11 +173,6 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( d_carrier_phase_step_rad = 0.0; set_relative_rate(1.0 / static_cast(d_vector_length)); - - d_first_time = 1; - - - } void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::start_tracking() @@ -246,16 +241,14 @@ void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::start_tracking() d_code_phase_samples = d_acq_code_phase_samples; std::string sys_ = &d_acquisition_gnss_synchro->System; sys = sys_.substr(0,1); - //std::cout << "Tracking of GPS L1 C/A signal started on channel " << d_channel << " for satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) << std::endl; + std::cout << "Tracking of GPS L1 C/A signal started on channel " << d_channel << " for satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) << std::endl; LOG(INFO) << "Starting tracking of satellite " << Gnss_Satellite(systemName[sys], d_acquisition_gnss_synchro->PRN) << " on channel " << d_channel; // enable tracking d_pull_in = true; - multicorrelator_fpga_8sc->lock_channel(); d_enable_tracking = true; //do it in the end to avoid starting running tracking before finishing this function LOG(INFO) << "PULL-IN Doppler [Hz]=" << d_carrier_doppler_hz << " Code Phase correction [samples]=" << delay_correction_samples << " PULL-IN Code Phase [samples]=" << d_acq_code_phase_samples; - d_first_time = 1; } Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc() @@ -275,10 +268,7 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc() { volk_gnsssdr_free(d_local_code_shift_chips); volk_gnsssdr_free(d_correlator_outs); - //volk_gnsssdr_free(d_ca_code); delete[] d_Prompt_buffer; - //multicorrelator_cpu.free(); - //volk_gnsssdr_free(d_ca_code_16sc); multicorrelator_fpga_8sc->free(); } catch(const std::exception & ex) @@ -297,8 +287,6 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib int counter_corr_0_out; int sample_counter; - // samples offset -// int samples_offset; unsigned absolute_samples_offset; // int kk2; // process vars @@ -308,7 +296,6 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib double code_error_filt_chips = 0.0; int next_prn_length_samples = d_current_prn_length_samples; -// int offset_prn_samples = 0; // Block input data and block output stream pointers Gnss_Synchro **out = reinterpret_cast(&output_items[0]); @@ -324,6 +311,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib if (d_pull_in == true) { d_pull_in = false; + multicorrelator_fpga_8sc->lock_channel(); unsigned counter_value = multicorrelator_fpga_8sc->read_sample_counter(); unsigned num_frames = ceil((counter_value - current_synchro_data.Acq_samplestamp_samples - current_synchro_data.Acq_delay_samples)/d_correlation_length_samples); absolute_samples_offset = current_synchro_data.Acq_delay_samples + current_synchro_data.Acq_samplestamp_samples + num_frames*d_correlation_length_samples; @@ -382,7 +370,6 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib double T_prn_samples = T_prn_seconds * static_cast(d_fs_in); double K_blk_samples = T_prn_samples + d_rem_code_phase_samples + code_error_filt_secs * static_cast(d_fs_in); next_prn_length_samples = round(K_blk_samples); -// offset_prn_samples = next_prn_length_samples - d_current_prn_length_samples; //################### PLL COMMANDS ################################################# // carrier phase step (NCO phase increment per sample) [rads/sample] @@ -426,15 +413,12 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib if (d_carrier_lock_fail_counter > MAXIMUM_LOCK_FAIL_COUNTER) { std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl; - d_debug_loss_of_track = 1; LOG(INFO) << "Loss of lock in channel " << d_channel << "!"; this->message_port_pub(pmt::mp("events"), pmt::from_long(3)); // 3 -> loss of lock d_carrier_lock_fail_counter = 0; d_enable_tracking = false; // TODO: check if disabling tracking is consistent with the channel state machine multicorrelator_fpga_8sc->unlock_channel(); - - - } + } } // ########### Output the tracking data to navigation and PVT ########## @@ -535,14 +519,13 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib if (d_enable_tracking == true) { - return 1; //output tracking result ALWAYS even in the case of d_enable_tracking==false - //return 0; // debug + return 1; } else { return 0; } - + } diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h index c497c08f2..f7d2141c9 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h @@ -181,7 +181,6 @@ private: double d_K_blk_samples_previous; int d_offset_sample_previous; - int d_first_time; int d_kk = 0; int d_numsamples_debug = 990; @@ -194,7 +193,6 @@ private: int d_counter_corr_0_in = 0; int d_counter_corr_0_out = 0; int d_sample_counter_inc = 0; - int d_debug_loss_of_track = 0; }; #endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H diff --git a/src/algorithms/tracking/libs/CMakeLists.txt b/src/algorithms/tracking/libs/CMakeLists.txt index 1cc68dabb..88c4eb2a5 100644 --- a/src/algorithms/tracking/libs/CMakeLists.txt +++ b/src/algorithms/tracking/libs/CMakeLists.txt @@ -47,7 +47,6 @@ set(TRACKING_LIB_SOURCES if(ENABLE_FPGA) SET(TRACKING_LIB_SOURCES ${TRACKING_LIB_SOURCES} fpga_multicorrelator_8sc.cc) - SET(TRACKING_LIB_SOURCES ${TRACKING_LIB_SOURCES} fpga_multicorrelator_real_codes_8sc.cc) endif(ENABLE_FPGA) include_directories( diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc index dd6f208ce..ce2275422 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc @@ -95,23 +95,18 @@ void fpga_multicorrelator_8sc::set_initial_sample(int samples_offset) d_map_base[13] = d_initial_sample_counter; } -//bool fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, -// const int* local_code_in, float *shifts_chips, int PRN) -bool fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, +void fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, float *shifts_chips, int PRN) { - //d_local_code_in = local_code_in; + d_shifts_chips = shifts_chips; d_code_length_chips = code_length_chips; fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(PRN); - return true; } -bool fpga_multicorrelator_8sc::set_output_vectors(gr_complex* corr_out) +void fpga_multicorrelator_8sc::set_output_vectors(gr_complex* corr_out) { - // Save CPU pointers d_corr_out = corr_out; - return true; } void fpga_multicorrelator_8sc::update_local_code(float rem_code_phase_chips) @@ -122,24 +117,20 @@ void fpga_multicorrelator_8sc::update_local_code(float rem_code_phase_chips) } -bool fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( +void fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( float rem_carrier_phase_in_rad, float phase_step_rad, float rem_code_phase_chips, float code_phase_step_chips, int signal_length_samples) { + + update_local_code(rem_code_phase_chips); d_rem_carrier_phase_in_rad = rem_carrier_phase_in_rad; d_code_phase_step_chips = code_phase_step_chips; d_phase_step_rad = phase_step_rad; d_correlator_length_samples = signal_length_samples; - -// if (first_time == 1) -// { - fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(); - fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(); -// first_time = 0; -// } - + fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(); + fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(); fpga_multicorrelator_8sc::fpga_launch_multicorrelator_fpga(); int irq_count; ssize_t nb; @@ -150,7 +141,6 @@ bool fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( printf("Tracking_module Interrupt number %d\n", irq_count); } fpga_multicorrelator_8sc::read_tracking_gps_results(); - return true; } fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, @@ -186,7 +176,6 @@ fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) { - //gps_l1_ca_code_gen_int(&d_ca_codes[GPS_L1_CA_CODE_LENGTH_CHIPS*(PRN -1)], PRN, 0); gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); } DLOG(INFO) << "TRACKING FPGA CLASS CREATED"; diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h index 0b726e121..9bf44536e 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h @@ -51,15 +51,19 @@ public: fpga_multicorrelator_8sc(int n_correlators, std::string device_name, unsigned int device_base); ~fpga_multicorrelator_8sc(); - bool set_output_vectors(gr_complex* corr_out); + //bool set_output_vectors(gr_complex* corr_out); + void set_output_vectors(gr_complex* corr_out); // bool set_local_code_and_taps( // int code_length_chips, const int* local_code_in, // float *shifts_chips, int PRN); - bool set_local_code_and_taps( + //bool set_local_code_and_taps( + void set_local_code_and_taps( int code_length_chips, float *shifts_chips, int PRN); - bool set_output_vectors(lv_16sc_t* corr_out); - void update_local_code(float rem_code_phase_chips);bool Carrier_wipeoff_multicorrelator_resampler( + //bool set_output_vectors(lv_16sc_t* corr_out); + void update_local_code(float rem_code_phase_chips); + //bool Carrier_wipeoff_multicorrelator_resampler( + void Carrier_wipeoff_multicorrelator_resampler( float rem_carrier_phase_in_rad, float phase_step_rad, float rem_code_phase_chips, float code_phase_step_chips, int signal_length_samples);bool free(); diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc deleted file mode 100644 index 942cadaff..000000000 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.cc +++ /dev/null @@ -1,148 +0,0 @@ -/*! - * \file fpga_multicorrelator_real_codes_8sc.cc - * \brief High optimized CPU vector multiTAP correlator class with real-valued local codes - * \authors
    - *
  • Javier Arribas, 2015. jarribas(at)cttc.es - *
  • Cillian O'Driscoll, 2017. cillian.odriscoll(at)gmail.com - *
- * - * Class that implements a high optimized vector multiTAP correlator class for CPUs - * - * ------------------------------------------------------------------------- - * - * 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 "cpu_multicorrelator_real_codes.h" -#include "fpga_multicorrelator_real_codes_8sc.h" -#include -#include -#include - - -fpga_multicorrelator_real_codes_8sc::fpga_multicorrelator_real_codes_8sc() -{ - d_sig_in = nullptr; - d_local_code_in = nullptr; - d_shifts_chips = nullptr; - d_corr_out = nullptr; - d_local_codes_resampled = nullptr; - d_code_length_chips = 0; - d_n_correlators = 0; -} - - -fpga_multicorrelator_real_codes_8sc::~fpga_multicorrelator_real_codes_8sc() -{ - if(d_local_codes_resampled != nullptr) - { - fpga_multicorrelator_real_codes_8sc::free(); - } -} - - -bool fpga_multicorrelator_real_codes_8sc::init( - int max_signal_length_samples, - int n_correlators) -{ - // ALLOCATE MEMORY FOR INTERNAL vectors - size_t size = max_signal_length_samples * sizeof(float); - - d_local_codes_resampled = static_cast(volk_gnsssdr_malloc(n_correlators * sizeof(float*), volk_gnsssdr_get_alignment())); - for (int n = 0; n < n_correlators; n++) - { - d_local_codes_resampled[n] = static_cast(volk_gnsssdr_malloc(size, volk_gnsssdr_get_alignment())); - } - d_n_correlators = n_correlators; - return true; -} - - - -bool fpga_multicorrelator_real_codes_8sc::set_local_code_and_taps( - int code_length_chips, - const float* local_code_in, - float *shifts_chips) -{ - d_local_code_in = local_code_in; - d_shifts_chips = shifts_chips; - d_code_length_chips = code_length_chips; - return true; -} - - -bool fpga_multicorrelator_real_codes_8sc::set_input_output_vectors(std::complex* corr_out, const std::complex* sig_in) -{ - // Save CPU pointers - d_sig_in = sig_in; - d_corr_out = corr_out; - return true; -} - - -void fpga_multicorrelator_real_codes_8sc::update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips) -{ - volk_gnsssdr_32f_xn_resampler_32f_xn(d_local_codes_resampled, - d_local_code_in, - rem_code_phase_chips, - code_phase_step_chips, - d_shifts_chips, - d_code_length_chips, - d_n_correlators, - correlator_length_samples); -} - - -bool fpga_multicorrelator_real_codes_8sc::Carrier_wipeoff_multicorrelator_resampler( - float rem_carrier_phase_in_rad, - float phase_step_rad, - float rem_code_phase_chips, - float code_phase_step_chips, - int signal_length_samples) -{ - update_local_code(signal_length_samples, rem_code_phase_chips, code_phase_step_chips); - // Regenerate phase at each call in order to avoid numerical issues - lv_32fc_t phase_offset_as_complex[1]; - phase_offset_as_complex[0] = lv_cmake(std::cos(rem_carrier_phase_in_rad), -std::sin(rem_carrier_phase_in_rad)); - // call VOLK_GNSSSDR kernel - volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn(d_corr_out, d_sig_in, std::exp(lv_32fc_t(0, - phase_step_rad)), phase_offset_as_complex, (const float**)d_local_codes_resampled, d_n_correlators, signal_length_samples); - return true; -} - - -bool fpga_multicorrelator_real_codes_8sc::free() -{ - // Free memory - if (d_local_codes_resampled != nullptr) - { - for (int n = 0; n < d_n_correlators; n++) - { - volk_gnsssdr_free(d_local_codes_resampled[n]); - } - volk_gnsssdr_free(d_local_codes_resampled); - d_local_codes_resampled = nullptr; - } - return true; -} - - diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h b/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h deleted file mode 100644 index 94d855ff8..000000000 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_real_codes_8sc.h +++ /dev/null @@ -1,73 +0,0 @@ -/*! - * \file fpga_multicorrelator_real_codes_8sc.h - * \brief High optimized CPU vector multiTAP correlator class using real-valued local codes - * \authors
    - *
  • Javier Arribas, 2015. jarribas(at)cttc.es - *
  • Cillian O'Driscoll, 2017, cillian.odriscoll(at)gmail.com - *
- * - * Class that implements a high optimized vector multiTAP correlator class for CPUs - * - * ------------------------------------------------------------------------- - * - * 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_CPU_MULTICORRELATOR_REAL_CODES_H_ -//#define GNSS_SDR_CPU_MULTICORRELATOR_REAL_CODES_H_ - -#ifndef GNSS_SDR_FPGA_MULTICORRELATOR_REAL_CODES_8SC_H_ -#define GNSS_SDR_FPGA_MULTICORRELATOR_REAL_CODES_8SC_H_ - - -#include - -/*! - * \brief Class that implements carrier wipe-off and correlators. - */ -class fpga_multicorrelator_real_codes_8sc -{ -public: - fpga_multicorrelator_real_codes_8sc(); - ~fpga_multicorrelator_real_codes_8sc(); - bool init(int max_signal_length_samples, int n_correlators); - bool set_local_code_and_taps(int code_length_chips, const float* local_code_in, float *shifts_chips); - bool set_input_output_vectors(std::complex* corr_out, const std::complex* sig_in); - void update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips); - bool Carrier_wipeoff_multicorrelator_resampler(float rem_carrier_phase_in_rad, float phase_step_rad, float rem_code_phase_chips, float code_phase_step_chips, int signal_length_samples); - bool free(); - -private: - // Allocate the device input vectors - const std::complex *d_sig_in; - float **d_local_codes_resampled; - const float *d_local_code_in; - std::complex *d_corr_out; - float *d_shifts_chips; - int d_code_length_chips; - int d_n_correlators; -}; - - -#endif /* GNSS_SDR_FPGA_MULTICORRELATOR_REAL_CODES_8SC_H_ */ - From 0dac9489d532268c935c68656d3a06a645734ca5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 9 Apr 2018 21:09:25 +0200 Subject: [PATCH 009/108] Improve C/N0 estimation --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.cc | 8 ++++---- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.h | 2 +- .../galileo_e1_tcp_connector_tracking_cc.cc | 2 +- .../glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc | 2 +- .../glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc | 2 +- .../glonass_l1_ca_dll_pll_tracking_cc.cc | 2 +- .../glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc | 2 +- .../glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc | 2 +- .../glonass_l2_ca_dll_pll_tracking_cc.cc | 2 +- .../gps_l1_ca_dll_pll_c_aid_tracking_cc.cc | 5 +++-- .../gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc | 2 +- .../gps_l1_ca_dll_pll_c_aid_tracking_sc.cc | 2 +- .../gps_l1_ca_dll_pll_tracking_gpu_cc.cc | 2 +- .../gps_l1_ca_tcp_connector_tracking_cc.cc | 2 +- src/algorithms/tracking/libs/lock_detectors.cc | 10 +++++----- src/algorithms/tracking/libs/lock_detectors.h | 8 ++++---- 16 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 4ae6f8195..d7fcdc160 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -606,7 +606,7 @@ bool dll_pll_veml_tracking::acquire_secondary() } -bool dll_pll_veml_tracking::cn0_and_tracking_lock_status() +bool dll_pll_veml_tracking::cn0_and_tracking_lock_status(double coh_integration_time_s) { // ####### CN0 ESTIMATION AND LOCK DETECTORS ###### if (d_cn0_estimation_counter < FLAGS_cn0_samples) @@ -620,7 +620,7 @@ bool dll_pll_veml_tracking::cn0_and_tracking_lock_status() { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, static_cast(trk_parameters.fs_in), static_cast(d_code_length_chips)); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, coh_integration_time_s); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); // Loss of lock detection @@ -1233,7 +1233,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) d_L_accu = *d_Late; // Check lock status - if (!cn0_and_tracking_lock_status()) + if (!cn0_and_tracking_lock_status(static_cast(d_correlation_length_ms) * 1000.0)) { clear_tracking_vars(); d_state = 0; // loss-of-lock detected @@ -1411,7 +1411,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) save_correlation_results(); // check lock status - if (!cn0_and_tracking_lock_status()) + if (!cn0_and_tracking_lock_status(static_cast(d_correlation_length_ms) * 1000.0 * static_cast(trk_parameters.extend_correlation_symbols))) { clear_tracking_vars(); d_state = 0; // loss-of-lock detected diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h index e9e41ccbc..5d8ec0133 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h @@ -88,7 +88,7 @@ private: dll_pll_veml_tracking(dllpllconf_t conf_); - bool cn0_and_tracking_lock_status(); + bool cn0_and_tracking_lock_status(double coh_integration_time_s); bool acquire_secondary(); void do_correlation_step(const gr_complex *input_samples); void run_dll_pll(); diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc index a7c0062a2..61c77c9e2 100644 --- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc @@ -381,7 +381,7 @@ int Galileo_E1_Tcp_Connector_Tracking_cc::general_work(int noutput_items __attri d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, Galileo_E1_B_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, Galileo_E1_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc index df57be51e..3fc22a696 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -762,7 +762,7 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GLONASS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, GLONASS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc index 313756921..a7acbfe21 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -753,7 +753,7 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GLONASS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, GLONASS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc index d35b6159c..78de7f9b1 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc @@ -622,7 +622,7 @@ int Glonass_L1_Ca_Dll_Pll_Tracking_cc::general_work(int noutput_items __attribut { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GLONASS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, GLONASS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc index 53f8f704b..48f149716 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc @@ -759,7 +759,7 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GLONASS_L2_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, GLONASS_L2_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc index decc5d5ca..92d17ab5e 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc @@ -751,7 +751,7 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GLONASS_L2_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, GLONASS_L2_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc index f6428bc5c..2989718e6 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc @@ -622,7 +622,7 @@ int Glonass_L2_Ca_Dll_Pll_Tracking_cc::general_work(int noutput_items __attribut { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, d_fs_in, GLONASS_L2_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES, GLONASS_L2_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, CN0_ESTIMATION_SAMPLES); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc index c242a10b8..a5b92111b 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -741,7 +741,7 @@ int gps_l1_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __attrib { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, GPS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); // Loss of lock detection @@ -842,7 +842,8 @@ int gps_l1_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __attrib // PLL commands tmp_float = 1.0 / (d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S); d_dump_file.write(reinterpret_cast(&tmp_float), sizeof(float)); - tmp_float = 1.0 / (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);; + tmp_float = 1.0 / (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S); + ; d_dump_file.write(reinterpret_cast(&tmp_float), sizeof(float)); // DLL commands tmp_float = d_code_error_chips_Ti * CURRENT_INTEGRATION_TIME_S; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc index 1d1561a21..85f5c2e1c 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc @@ -558,7 +558,7 @@ int gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc::general_work( { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, GPS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc index 9a4332f06..9a01f1109 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -743,7 +743,7 @@ int gps_l1_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __attrib { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, GPS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc index 759128d0b..00fc6bd98 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc @@ -413,7 +413,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc::general_work(int noutput_items __attribut { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, GPS_L1_CA_CODE_PERIOD); // Carrier lock indicator d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); // Loss of lock detection diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc index cd4c86652..d447d4985 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc @@ -418,7 +418,7 @@ int Gps_L1_Ca_Tcp_Connector_Tracking_cc::general_work(int noutput_items __attrib else { d_cn0_estimation_counter = 0; - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, d_fs_in, GPS_L1_CA_CODE_LENGTH_CHIPS); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, GPS_L1_CA_CODE_PERIOD); d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); // ###### TRACKING UNLOCK NOTIFICATION ##### diff --git a/src/algorithms/tracking/libs/lock_detectors.cc b/src/algorithms/tracking/libs/lock_detectors.cc index 4457e361f..5194c4c3b 100644 --- a/src/algorithms/tracking/libs/lock_detectors.cc +++ b/src/algorithms/tracking/libs/lock_detectors.cc @@ -58,14 +58,14 @@ * \f$\hat{P}_{tot}=\frac{1}{N}\sum^{N-1}_{i=0}|Pc(i)|^2\f$ is the estimator of the total power, \f$|\cdot|\f$ is the absolute value, * \f$Re(\cdot)\f$ stands for the real part of the value, and \f$Pc(i)\f$ is the prompt correlator output for the sample index i. * - * The SNR value is converted to CN0 [dB-Hz], taking to account the receiver bandwidth and the PRN code gain, using the following formula: + * The SNR value is converted to CN0 [dB-Hz], taking to account the coherent integration time, using the following formula: * \f{equation} - * CN0_{dB}=10*log(\hat{\rho})+10*log(\frac{f_s}{2})-10*log(L_{PRN}), + * CN0_{dB}=10*log(\hat{\rho})-10*log(2 * T_{int}), * \f} - * where \f$f_s\f$ is the sampling frequency and \f$L_{PRN}\f$ is the PRN sequence length. + * where \f$T_{int}\f$ is the coherent integration time, in seconds. * */ -float cn0_svn_estimator(gr_complex* Prompt_buffer, int length, long fs_in, double code_length) +float cn0_svn_estimator(const gr_complex* Prompt_buffer, int length, double coh_integration_time_s) { double SNR = 0.0; double SNR_dB_Hz = 0.0; @@ -80,7 +80,7 @@ float cn0_svn_estimator(gr_complex* Prompt_buffer, int length, long fs_in, doubl Psig = Psig * Psig; Ptot /= static_cast(length); SNR = Psig / (Ptot - Psig); - SNR_dB_Hz = 10.0 * log10(SNR) + 10.0 * log10(static_cast(fs_in) / 2.0) - 10.0 * log10(code_length); + SNR_dB_Hz = 10.0 * log10(SNR) - 10.0 * log10(2.0 * coh_integration_time_s); return static_cast(SNR_dB_Hz); } diff --git a/src/algorithms/tracking/libs/lock_detectors.h b/src/algorithms/tracking/libs/lock_detectors.h index 22ec4945e..4955393d2 100644 --- a/src/algorithms/tracking/libs/lock_detectors.h +++ b/src/algorithms/tracking/libs/lock_detectors.h @@ -62,17 +62,17 @@ * \f$\hat{P}_{tot}=\frac{1}{N}\sum^{N-1}_{i=0}|Pc(i)|^2\f$ is the estimator of the total power, \f$|\cdot|\f$ is the absolute value, * \f$Re(\cdot)\f$ stands for the real part of the value, and \f$Pc(i)\f$ is the prompt correlator output for the sample index i. * - * The SNR value is converted to CN0 [dB-Hz], taking to account the receiver bandwidth and the PRN code gain, using the following formula: + * The SNR value is converted to CN0 [dB-Hz], taking to account the coherent integration time, using the following formula: * \f{equation} - * CN0_{dB}=10*log(\hat{\rho})+10*log(\frac{f_s}{2})-10*log(L_{PRN}), + * CN0_{dB}=10*log(\hat{\rho})-10*log(2 * T_{int}), * \f} - * where \f$f_s\f$ is the sampling frequency and \f$L_{PRN}\f$ is the PRN sequence length. + * where \f$T_{int}\f$ is the coherent integration time, in seconds. * Ref: Marco Pini, Emanuela Falletti and Maurizio Fantino, "Performance * Evaluation of C/N0 Estimators using a Real Time GNSS Software Receiver," * IEEE 10th International Symposium on Spread Spectrum Techniques and * Applications, pp.28-30, August 2008. */ -float cn0_svn_estimator(gr_complex* Prompt_buffer, int length, long fs_in, double code_length); +float cn0_svn_estimator(const gr_complex* Prompt_buffer, int length, double coh_integration_time_s); /*! \brief A carrier lock detector From d4a13f2bbd1624b9525b0ccc8dbdc3f730774192 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 9 Apr 2018 22:14:15 +0200 Subject: [PATCH 010/108] Fix CN0 estimation --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index d7fcdc160..8feeb7c5b 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -1233,7 +1233,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) d_L_accu = *d_Late; // Check lock status - if (!cn0_and_tracking_lock_status(static_cast(d_correlation_length_ms) * 1000.0)) + if (!cn0_and_tracking_lock_status(static_cast(d_correlation_length_ms) / 1000.0)) { clear_tracking_vars(); d_state = 0; // loss-of-lock detected @@ -1411,7 +1411,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) save_correlation_results(); // check lock status - if (!cn0_and_tracking_lock_status(static_cast(d_correlation_length_ms) * 1000.0 * static_cast(trk_parameters.extend_correlation_symbols))) + if (!cn0_and_tracking_lock_status((static_cast(d_correlation_length_ms) / 1000.0) * static_cast(trk_parameters.extend_correlation_symbols))) { clear_tracking_vars(); d_state = 0; // loss-of-lock detected From 80de8a9770b02731aff30d246f270a777c0048e3 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 9 Apr 2018 23:10:50 +0200 Subject: [PATCH 011/108] Fix C/N0 estimation --- src/algorithms/tracking/libs/lock_detectors.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/tracking/libs/lock_detectors.cc b/src/algorithms/tracking/libs/lock_detectors.cc index 5194c4c3b..966dd48f1 100644 --- a/src/algorithms/tracking/libs/lock_detectors.cc +++ b/src/algorithms/tracking/libs/lock_detectors.cc @@ -80,7 +80,7 @@ float cn0_svn_estimator(const gr_complex* Prompt_buffer, int length, double coh_ Psig = Psig * Psig; Ptot /= static_cast(length); SNR = Psig / (Ptot - Psig); - SNR_dB_Hz = 10.0 * log10(SNR) - 10.0 * log10(2.0 * coh_integration_time_s); + SNR_dB_Hz = 10.0 * log10(SNR) - 10.0 * log10(coh_integration_time_s); return static_cast(SNR_dB_Hz); } From c175ebf4ddfded3cd8476741d163847cb9501fcb Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 10 Apr 2018 19:54:59 +0200 Subject: [PATCH 012/108] Minor fixes --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.cc | 8 ++++---- src/algorithms/tracking/libs/lock_detectors.cc | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 8feeb7c5b..e121a36dd 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -1318,12 +1318,12 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) d_carrier_loop_filter.set_pdi(new_correlation_time); d_code_loop_filter.set_pdi(new_correlation_time); d_state = 3; // next state is the extended correlator integrator - LOG(INFO) << "Enabled " << trk_parameters.extend_correlation_symbols << " [symbols] extended correlator for CH " + LOG(INFO) << "Enabled " << trk_parameters.extend_correlation_symbols * static_cast(d_code_period * 1000.0) << " ms extended correlator in channel " << d_channel - << " : Satellite " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN); - std::cout << "Enabled " << trk_parameters.extend_correlation_symbols << " [symbols] extended correlator for CH " + << " for satellite " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN); + std::cout << "Enabled " << trk_parameters.extend_correlation_symbols * static_cast(d_code_period * 1000.0) << " ms extended correlator in channel " << d_channel - << " : Satellite " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN) << std::endl; + << " for satellite " << Gnss_Satellite(systemName, d_acquisition_gnss_synchro->PRN) << std::endl; // Set narrow taps delay values [chips] d_code_loop_filter.set_DLL_BW(trk_parameters.dll_bw_narrow_hz); d_carrier_loop_filter.set_PLL_BW(trk_parameters.pll_bw_narrow_hz); diff --git a/src/algorithms/tracking/libs/lock_detectors.cc b/src/algorithms/tracking/libs/lock_detectors.cc index 966dd48f1..44201a4fb 100644 --- a/src/algorithms/tracking/libs/lock_detectors.cc +++ b/src/algorithms/tracking/libs/lock_detectors.cc @@ -60,7 +60,7 @@ * * The SNR value is converted to CN0 [dB-Hz], taking to account the coherent integration time, using the following formula: * \f{equation} - * CN0_{dB}=10*log(\hat{\rho})-10*log(2 * T_{int}), + * CN0_{dB}=10*log(\hat{\rho})-10*log(T_{int}), * \f} * where \f$T_{int}\f$ is the coherent integration time, in seconds. * From 2138c1340bfef2c698f0982fa5fb0335fb1860a0 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Thu, 12 Apr 2018 18:03:30 +0200 Subject: [PATCH 013/108] Removing debug code in trk FPGA accelerators --- .../gps_l1_ca_dll_pll_tracking_fpga_sc.cc | 17 ----------------- .../gps_l1_ca_dll_pll_tracking_fpga_sc.h | 11 ----------- 2 files changed, 28 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc index f346ff8bc..b8a52b8c5 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc @@ -281,14 +281,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { - // debug - int secondary_sample_counter; - int counter_corr_0_in; - int counter_corr_0_out; - int sample_counter; - unsigned absolute_samples_offset; -// int kk2; // process vars double carr_error_hz = 0.0; double carr_error_filt_hz = 0.0; @@ -333,16 +326,6 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib d_rem_carr_phase_rad, d_carrier_phase_step_rad, d_rem_code_phase_chips, d_code_phase_step_chips, d_current_prn_length_samples); - d_previous_sample_counter = d_debug_sample_counter; - d_previous_counter_corr_0_in = d_counter_corr_0_in; - d_previous_counter_corr_0_out = d_counter_corr_0_out; - multicorrelator_fpga_8sc->read_sample_counters(&sample_counter, &secondary_sample_counter, &counter_corr_0_in, &counter_corr_0_out); - d_debug_sample_counter = sample_counter; - d_counter_corr_0_in = counter_corr_0_in; - d_counter_corr_0_out = counter_corr_0_out; - d_counter_corr_0_in_inc = counter_corr_0_in - d_previous_counter_corr_0_in; - d_counter_corr_0_out_inc = counter_corr_0_out - d_previous_counter_corr_0_out; - d_sample_counter_inc = d_debug_sample_counter - d_previous_sample_counter; // ################## PLL ########################################################## // PLL discriminator diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h index f7d2141c9..161d87530 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h @@ -182,17 +182,6 @@ private: double d_K_blk_samples_previous; int d_offset_sample_previous; - int d_kk = 0; - int d_numsamples_debug = 990; - int d_previous_sample_counter = 0; - int d_debug_sample_counter = 0; - int d_previous_counter_corr_0_in = 0; - int d_previous_counter_corr_0_out = 0; - int d_counter_corr_0_in_inc = 0; - int d_counter_corr_0_out_inc = 0; - int d_counter_corr_0_in = 0; - int d_counter_corr_0_out = 0; - int d_sample_counter_inc = 0; }; #endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H From 2681ffab8175727a32f2f27a83dfb346f480ebe6 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Thu, 12 Apr 2018 18:46:55 +0200 Subject: [PATCH 014/108] Removing unused msg port --- .../gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc index b8a52b8c5..7f8a4233b 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc @@ -93,7 +93,6 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // Telemetry bit synchronization message port input - this->message_port_register_in(pmt::mp("preamble_timestamp_s")); this->message_port_register_out(pmt::mp("events")); // initialize internal vars From 1428630e79c32a4930f1f0dea72fc94bf71f8905 Mon Sep 17 00:00:00 2001 From: Antonio Ramos Date: Fri, 13 Apr 2018 15:27:14 +0200 Subject: [PATCH 015/108] Add RX time counter --- src/algorithms/libs/CMakeLists.txt | 67 ++-- src/algorithms/libs/gnss_sdr_time_counter.cc | 126 ++++++++ src/algorithms/libs/gnss_sdr_time_counter.h | 65 ++++ src/core/receiver/gnss_flowgraph.cc | 311 ++++++++++--------- src/core/receiver/gnss_flowgraph.h | 6 + 5 files changed, 412 insertions(+), 163 deletions(-) create mode 100644 src/algorithms/libs/gnss_sdr_time_counter.cc create mode 100644 src/algorithms/libs/gnss_sdr_time_counter.h diff --git a/src/algorithms/libs/CMakeLists.txt b/src/algorithms/libs/CMakeLists.txt index ac182801e..fd34bf693 100644 --- a/src/algorithms/libs/CMakeLists.txt +++ b/src/algorithms/libs/CMakeLists.txt @@ -18,27 +18,52 @@ 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} diff --git a/src/algorithms/libs/gnss_sdr_time_counter.cc b/src/algorithms/libs/gnss_sdr_time_counter.cc new file mode 100644 index 000000000..f94aadcab --- /dev/null +++ b/src/algorithms/libs/gnss_sdr_time_counter.cc @@ -0,0 +1,126 @@ +/*! + * \file gnss_sdr_time_counter.cc + * \brief Simple block to report the current receiver time based on the output of the tracking or telemetry blocks + * \author Antonio Ramos 2018. antonio.ramos(at)gmail.com + * + * + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * GNSS-SDR is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GNSS-SDR is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNSS-SDR. If not, see . + * + * ------------------------------------------------------------------------- + */ + +#include "gnss_sdr_time_counter.h" +#include "gnss_synchro.h" +#include +#include +#include +#include + +gnss_sdr_time_counter::gnss_sdr_time_counter() : gr::block("time_counter", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) +{ + set_max_noutput_items(1); + current_T_rx_ms = 0; + current_s = 0; + current_m = 0; + current_h = 0; + current_days = 0; + report_interval_ms = 1000; // default reporting 1 second + flag_m = false; + flag_h = false; + flag_days = false; +} + + +gnss_sdr_time_counter_sptr gnss_sdr_make_time_counter() +{ + gnss_sdr_time_counter_sptr counter_(new gnss_sdr_time_counter()); + return counter_; +} + + +int gnss_sdr_time_counter::general_work(int noutput_items __attribute__((unused)), + gr_vector_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++; + 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..c0692252e --- /dev/null +++ b/src/algorithms/libs/gnss_sdr_time_counter.h @@ -0,0 +1,65 @@ +/*! + * \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, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); +}; + +#endif /*GNSS_SDR_SAMPLE_COUNTER_H_*/ diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index 0c5a42f9c..67e9fc698 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -62,8 +62,6 @@ GNSSFlowgraph::GNSSFlowgraph(std::shared_ptr configurati GNSSFlowgraph::~GNSSFlowgraph() {} - - void GNSSFlowgraph::start() { if (running_) @@ -108,41 +106,41 @@ void GNSSFlowgraph::connect() } for (int i = 0; i < sources_count_; i++) - { - if (configuration_->property(sig_source_.at(i)->role() + ".enable_FPGA", false)==false) { - try + if (configuration_->property(sig_source_.at(i)->role() + ".enable_FPGA", false) == false) { - sig_source_.at(i)->connect(top_block_); - } - catch (const std::exception& e) - { - LOG(INFO) << "Can't connect signal source block " << i << " internally"; - LOG(ERROR) << e.what(); - top_block_->disconnect_all(); - return; + try + { + sig_source_.at(i)->connect(top_block_); + } + catch (const std::exception& e) + { + LOG(INFO) << "Can't connect signal source block " << i << " internally"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } } } - } // Signal Source > Signal conditioner > for (unsigned int i = 0; i < sig_conditioner_.size(); i++) - { - if (configuration_->property(sig_conditioner_.at(i)->role() + ".enable_FPGA", false)==false) { - try + if (configuration_->property(sig_conditioner_.at(i)->role() + ".enable_FPGA", false) == false) { - sig_conditioner_.at(i)->connect(top_block_); - } - catch (const std::exception& e) - { - LOG(INFO) << "Can't connect signal conditioner block " << i << " internally"; - LOG(ERROR) << e.what(); - top_block_->disconnect_all(); - return; + try + { + sig_conditioner_.at(i)->connect(top_block_); + } + catch (const std::exception& e) + { + LOG(INFO) << "Can't connect signal conditioner block " << i << " internally"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } } } - } for (unsigned int i = 0; i < channels_count_; i++) { @@ -191,144 +189,173 @@ void GNSSFlowgraph::connect() for (int i = 0; i < sources_count_; i++) { - //FPGA Accelerators do not need signal sources or conditioners - //as the samples are feed directly to the FPGA fabric, so, if enabled, do not connect any source - if (configuration_->property(sig_source_.at(i)->role() + ".enable_FPGA", false)==false) - { - try + //FPGA Accelerators do not need signal sources or conditioners + //as the samples are feed directly to the FPGA fabric, so, if enabled, do not connect any source + if (configuration_->property(sig_source_.at(i)->role() + ".enable_FPGA", false) == false) { - //TODO: Remove this array implementation and create generic multistream connector - //(if a signal source has more than 1 stream, then connect it to the multistream signal conditioner) - if (sig_source_.at(i)->implementation().compare("Raw_Array_Signal_Source") == 0) + try { - //Multichannel Array - std::cout << "ARRAY MODE" << std::endl; - for (int j = 0; j < GNSS_SDR_ARRAY_SIGNAL_CONDITIONER_CHANNELS; j++) + //TODO: Remove this array implementation and create generic multistream connector + //(if a signal source has more than 1 stream, then connect it to the multistream signal conditioner) + if (sig_source_.at(i)->implementation().compare("Raw_Array_Signal_Source") == 0) { - std::cout << "connecting ch " << j << std::endl; - top_block_->connect(sig_source_.at(i)->get_right_block(), j, sig_conditioner_.at(i)->get_left_block(), j); - } - } - else - { - //TODO: Create a class interface for SignalSources, derived from GNSSBlockInterface. - //Include GetRFChannels in the interface to avoid read config parameters here - //read the number of RF channels for each front-end - RF_Channels = configuration_->property(sig_source_.at(i)->role() + ".RF_channels", 1); - - for (int j = 0; j < RF_Channels; j++) - { - //Connect the multichannel signal source to multiple signal conditioners - // GNURADIO max_streams=-1 means infinite ports! - LOG(INFO) << "sig_source_.at(i)->get_right_block()->output_signature()->max_streams()=" << sig_source_.at(i)->get_right_block()->output_signature()->max_streams(); - LOG(INFO) << "sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()=" << sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()->max_streams(); - - if (sig_source_.at(i)->get_right_block()->output_signature()->max_streams() > 1) + //Multichannel Array + std::cout << "ARRAY MODE" << std::endl; + for (int j = 0; j < GNSS_SDR_ARRAY_SIGNAL_CONDITIONER_CHANNELS; j++) { - LOG(INFO) << "connecting sig_source_ " << i << " stream " << j << " to conditioner " << j; - top_block_->connect(sig_source_.at(i)->get_right_block(), j, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); + std::cout << "connecting ch " << j << std::endl; + top_block_->connect(sig_source_.at(i)->get_right_block(), j, sig_conditioner_.at(i)->get_left_block(), j); } - else + } + else + { + //TODO: Create a class interface for SignalSources, derived from GNSSBlockInterface. + //Include GetRFChannels in the interface to avoid read config parameters here + //read the number of RF channels for each front-end + RF_Channels = configuration_->property(sig_source_.at(i)->role() + ".RF_channels", 1); + + for (int j = 0; j < RF_Channels; j++) { - if (j == 0) + //Connect the multichannel signal source to multiple signal conditioners + // GNURADIO max_streams=-1 means infinite ports! + LOG(INFO) << "sig_source_.at(i)->get_right_block()->output_signature()->max_streams()=" << sig_source_.at(i)->get_right_block()->output_signature()->max_streams(); + LOG(INFO) << "sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()=" << sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()->max_streams(); + + if (sig_source_.at(i)->get_right_block()->output_signature()->max_streams() > 1) { - // RF_channel 0 backward compatibility with single channel sources - LOG(INFO) << "connecting sig_source_ " << i << " stream " << 0 << " to conditioner " << j; - top_block_->connect(sig_source_.at(i)->get_right_block(), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); + LOG(INFO) << "connecting sig_source_ " << i << " stream " << j << " to conditioner " << j; + top_block_->connect(sig_source_.at(i)->get_right_block(), j, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); } else { - // Multiple channel sources using multiple output blocks of single channel (requires RF_channel selector in call) - LOG(INFO) << "connecting sig_source_ " << i << " stream " << j << " to conditioner " << j; - top_block_->connect(sig_source_.at(i)->get_right_block(j), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); + if (j == 0) + { + // RF_channel 0 backward compatibility with single channel sources + LOG(INFO) << "connecting sig_source_ " << i << " stream " << 0 << " to conditioner " << j; + top_block_->connect(sig_source_.at(i)->get_right_block(), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); + } + else + { + // Multiple channel sources using multiple output blocks of single channel (requires RF_channel selector in call) + LOG(INFO) << "connecting sig_source_ " << i << " stream " << j << " to conditioner " << j; + top_block_->connect(sig_source_.at(i)->get_right_block(j), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); + } } + signal_conditioner_ID++; } - signal_conditioner_ID++; } } + catch (const std::exception& e) + { + LOG(WARNING) << "Can't connect signal source " << i << " to signal conditioner " << i; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } + } + } + DLOG(INFO) << "Signal source connected to signal conditioner"; + bool FPGA_enabled = configuration_->property(sig_source_.at(0)->role() + ".enable_FPGA", false); + +#if ENABLE_FPGA + + if (FPGA_enabled == false) + { + //connect the signal source to sample counter + //connect the sample counter to Observables + try + { + double fs = static_cast(configuration_->property("GNSS-SDR.internal_fs_sps", 0)); + if (fs == 0.0) + { + LOG(WARNING) << "Set GNSS-SDR.internal_fs_sps in configuration file"; + std::cout << "Set GNSS-SDR.internal_fs_sps in configuration file" << std::endl; + throw(std::invalid_argument("Set GNSS-SDR.internal_fs_sps in configuration")); + } + ch_out_sample_counter = gnss_sdr_make_sample_counter(fs, sig_conditioner_.at(0)->get_right_block()->output_signature()->sizeof_stream_item(0)); + top_block_->connect(sig_conditioner_.at(0)->get_right_block(), 0, ch_out_sample_counter, 0); + top_block_->connect(ch_out_sample_counter, 0, observables_->get_left_block(), channels_count_); //extra port for the sample counter pulse } catch (const std::exception& e) { - LOG(WARNING) << "Can't connect signal source " << i << " to signal conditioner " << i; + LOG(WARNING) << "Can't connect sample counter"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } + } + else + { + //create a software-defined 1kHz gnss_synchro pulse for the observables block + try + { + //null source + null_source_ = gr::blocks::null_source::make(sizeof(Gnss_Synchro)); + //throttle 1kHz + throttle_ = gr::blocks::throttle::make(sizeof(Gnss_Synchro), 1000); // 1000 samples per second (1kHz) + time_counter_ = gnss_sdr_make_time_counter(); + top_block_->connect(null_source_, 0, throttle_, 0); + top_block_->connect(throttle_, 0, time_counter_, 0); + top_block_->connect(time_counter_, 0, observables_->get_left_block(), channels_count_); + } + catch (const std::exception& e) + { + LOG(WARNING) << "Can't connect sample counter"; LOG(ERROR) << e.what(); top_block_->disconnect_all(); return; } } - } - DLOG(INFO) << "Signal source connected to signal conditioner"; - bool FPGA_enabled = configuration_->property(sig_source_.at(0)->role() + ".enable_FPGA", false); +#else - if (FPGA_enabled==false) - { - //connect the signal source to sample counter - //connect the sample counter to Observables - try - { - double fs = static_cast(configuration_->property("GNSS-SDR.internal_fs_sps", 0)); - if (fs == 0.0) - { - LOG(WARNING) << "Set GNSS-SDR.internal_fs_sps in configuration file"; - std::cout << "Set GNSS-SDR.internal_fs_sps in configuration file" << std::endl; - throw(std::invalid_argument("Set GNSS-SDR.internal_fs_sps in configuration")); - } - ch_out_sample_counter = gnss_sdr_make_sample_counter(fs, sig_conditioner_.at(0)->get_right_block()->output_signature()->sizeof_stream_item(0)); - top_block_->connect(sig_conditioner_.at(0)->get_right_block(), 0, ch_out_sample_counter, 0); - top_block_->connect(ch_out_sample_counter, 0, observables_->get_left_block(), channels_count_); //extra port for the sample counter pulse - } - catch (const std::exception& e) - { - LOG(WARNING) << "Can't connect sample counter"; - LOG(ERROR) << e.what(); - top_block_->disconnect_all(); - return; - } - }else{ - //create a software-defined 1kHz gnss_synchro pulse for the observables block - try - { - //null source - null_source_= gr::blocks::null_source::make(sizeof(Gnss_Synchro)); - //throttle 1kHz - throttle_ = gr::blocks::throttle::make(sizeof(Gnss_Synchro),1000);// 1000 samples per second (1kHz) - top_block_->connect(null_source_, 0, throttle_, 0); - top_block_->connect(throttle_, 0, observables_->get_left_block(), channels_count_); //extra port for the sample counter pulse + //connect the signal source to sample counter + //connect the sample counter to Observables + try + { + double fs = static_cast(configuration_->property("GNSS-SDR.internal_fs_sps", 0)); + if (fs == 0.0) + { + LOG(WARNING) << "Set GNSS-SDR.internal_fs_sps in configuration file"; + std::cout << "Set GNSS-SDR.internal_fs_sps in configuration file" << std::endl; + throw(std::invalid_argument("Set GNSS-SDR.internal_fs_sps in configuration")); + } + ch_out_sample_counter = gnss_sdr_make_sample_counter(fs, sig_conditioner_.at(0)->get_right_block()->output_signature()->sizeof_stream_item(0)); + top_block_->connect(sig_conditioner_.at(0)->get_right_block(), 0, ch_out_sample_counter, 0); + top_block_->connect(ch_out_sample_counter, 0, observables_->get_left_block(), channels_count_); //extra port for the sample counter pulse + } + catch (const std::exception& e) + { + LOG(WARNING) << "Can't connect sample counter"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } - } - catch (const std::exception& e) - { - LOG(WARNING) << "Can't connect sample counter"; - LOG(ERROR) << e.what(); - top_block_->disconnect_all(); - return; - } - } +#endif // Signal conditioner (selected_signal_source) >> channels (i) (dependent of their associated SignalSource_ID) int selected_signal_conditioner_ID; for (unsigned int i = 0; i < channels_count_; i++) { - - - if (FPGA_enabled == false) - { - selected_signal_conditioner_ID = configuration_->property("Channel" + boost::lexical_cast(i) + ".RF_channel_ID", 0); - try + if (FPGA_enabled == false) { - top_block_->connect(sig_conditioner_.at(selected_signal_conditioner_ID)->get_right_block(), 0, - channels_.at(i)->get_left_block(), 0); - } - catch (const std::exception& e) - { - LOG(WARNING) << "Can't connect signal conditioner " << selected_signal_conditioner_ID << " to channel " << i; - LOG(ERROR) << e.what(); - top_block_->disconnect_all(); - return; - } + selected_signal_conditioner_ID = configuration_->property("Channel" + boost::lexical_cast(i) + ".RF_channel_ID", 0); + try + { + top_block_->connect(sig_conditioner_.at(selected_signal_conditioner_ID)->get_right_block(), 0, + channels_.at(i)->get_left_block(), 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << "Can't connect signal conditioner " << selected_signal_conditioner_ID << " to channel " << i; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } - DLOG(INFO) << "signal conditioner " << selected_signal_conditioner_ID << " connected to channel " << i; - } + DLOG(INFO) << "signal conditioner " << selected_signal_conditioner_ID << " connected to channel " << i; + } // Signal Source > Signal conditioner >> Channels >> Observables try { @@ -348,10 +375,10 @@ void GNSSFlowgraph::connect() if (channels_state_[i] == 1) { - if (FPGA_enabled == false) - { - channels_.at(i)->start_acquisition(); - } + if (FPGA_enabled == false) + { + channels_.at(i)->start_acquisition(); + } available_GNSS_signals_.pop_front(); LOG(INFO) << "Channel " << i << " assigned to " << channels_.at(i)->get_signal(); LOG(INFO) << "Channel " << i << " connected to observables and ready for acquisition"; @@ -491,12 +518,12 @@ void GNSSFlowgraph::set_configuration(std::shared_ptr co void GNSSFlowgraph::start_acquisition_helper() { for (unsigned int i = 0; i < channels_count_; i++) - { - if (channels_state_[i] == 1) - { - channels_.at(i)->start_acquisition(); - } - } + { + if (channels_state_[i] == 1) + { + channels_.at(i)->start_acquisition(); + } + } } void GNSSFlowgraph::init() diff --git a/src/core/receiver/gnss_flowgraph.h b/src/core/receiver/gnss_flowgraph.h index 84a426920..d2d95dc29 100644 --- a/src/core/receiver/gnss_flowgraph.h +++ b/src/core/receiver/gnss_flowgraph.h @@ -49,6 +49,9 @@ #include #include +#if ENABLE_FPGA +#include "gnss_sdr_time_counter.h" +#endif class GNSSBlockInterface; class ChannelInterface; @@ -144,6 +147,9 @@ private: std::vector> channels_; gnss_sdr_sample_counter_sptr ch_out_sample_counter; +#if ENABLE_FPGA + gnss_sdr_time_counter_sptr time_counter_; +#endif gr::blocks::null_source::sptr null_source_; gr::blocks::throttle::sptr throttle_; gr::top_block_sptr top_block_; From ab534e77911275f86370663bdb72c0b88a06c423 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 13 Apr 2018 18:31:35 +0200 Subject: [PATCH 016/108] Fix build bug --- src/algorithms/signal_source/libs/CMakeLists.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index 5617be70a..10fdd0d4c 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -53,13 +53,12 @@ if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) endif(ENABLE_FMCOMMS2 OR ENABLE_AD9361) -set (SIGNAL_SOURCE_LIB_SOURCES - rtl_tcp_commands.cc - rtl_tcp_dongle_info.cc - ${OPT_SIGNAL_SOURCE_LIB_SOURCES}) +if(ENABLE_AD9361) + set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) +endif(ENABLE_AD9361) if(ENABLE_FPGA) - SET(SIGNAL_SOURCE_LIB_SOURCES ${SIGNAL_SOURCE_LIB_SOURCES} fpga_switch.cc) + SET(OPT_SIGNAL_SOURCE_LIB_SOURCES ${OPT_SIGNAL_SOURCE_LIB_SOURCES} fpga_switch.cc) endif(ENABLE_FPGA) include_directories( @@ -68,6 +67,10 @@ include_directories( ${OPT_DRIVER_INCLUDE_DIRS} ) +set (SIGNAL_SOURCE_LIB_SOURCES + rtl_tcp_commands.cc + rtl_tcp_dongle_info.cc + ${OPT_SIGNAL_SOURCE_LIB_SOURCES}) file(GLOB SIGNAL_SOURCE_LIB_HEADERS "*.h") list(SORT SIGNAL_SOURCE_LIB_HEADERS) From 6a3770c7629e2cd92f9d3694ec7262e0453e5ece Mon Sep 17 00:00:00 2001 From: mmajoral Date: Thu, 19 Apr 2018 12:09:08 +0200 Subject: [PATCH 017/108] - set output vectors is only done in the class constructor, no need to do it continuously - no need to multiply by two the results of the multicorrelator HW accelerators --- .../gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc | 3 ++- src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc index 7f8a4233b..069b426db 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc @@ -172,6 +172,8 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( d_carrier_phase_step_rad = 0.0; set_relative_rate(1.0 / static_cast(d_vector_length)); + + multicorrelator_fpga_8sc->set_output_vectors(d_correlator_outs); } void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::start_tracking() @@ -320,7 +322,6 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib // ################# CARRIER WIPEOFF AND CORRELATORS ############################## // perform carrier wipe-off and compute Early, Prompt and Late correlation - multicorrelator_fpga_8sc->set_output_vectors(d_correlator_outs); multicorrelator_fpga_8sc->Carrier_wipeoff_multicorrelator_resampler( d_rem_carr_phase_rad, d_carrier_phase_step_rad, d_rem_code_phase_chips, d_code_phase_step_chips, diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc index dba1da094..9c9e6af0b 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc @@ -403,14 +403,12 @@ void fpga_multicorrelator_8sc::read_tracking_gps_results(void) { readval_real = -2097152 + readval_real; } - readval_real = readval_real * 2; // the results are shifted two bits to the left due to the complex multiplier in the FPGA readval_imag = d_map_base[1 + d_n_correlators + k]; if (readval_imag >= 1048576) // 0x100000 (21 bits two's complement) { readval_imag = -2097152 + readval_imag; } - readval_imag = readval_imag * 2; // the results are shifted two bits to the left due to the complex multiplier in the FPGA d_corr_out[k] = gr_complex(readval_real,readval_imag); } } From c0375c99ff1d0af815f61651dd489596dc2aa594 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Mon, 23 Apr 2018 12:37:43 +0200 Subject: [PATCH 018/108] Adding GPS L1 C/A CN0 control in GPS DLL/PLL unit test --- .../gps_l1_ca_dll_pll_tracking_test.cc | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc index 89f70f914..0d0bf4cf0 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc @@ -54,7 +54,8 @@ #include "test_flags.h" DEFINE_bool(plot_gps_l1_tracking_test, false, "Plots results of GpsL1CADllPllTrackingTest with gnuplot"); - +DEFINE_double(CN0_dBHz, std::numeric_limits::infinity(), "Enable noise generator and set the CN0 [dB-Hz]"); +DEFINE_int32(extend_correlation_symbols, 1, "Set the tracking coherent correlation to N symbols (up to 20 for GPS L1 C/A)"); // ######## GNURADIO BLOCK MESSAGE RECEVER ######### class GpsL1CADllPllTrackingTest_msg_rx; @@ -121,7 +122,7 @@ public: std::string p3; std::string p4; std::string p5; - + std::string p6; std::string implementation = "GPS_L1_CA_DLL_PLL_Tracking"; //"GPS_L1_CA_DLL_PLL_C_Aid_Tracking"; const int baseband_sampling_freq = FLAGS_fs_gen_sps; @@ -183,6 +184,7 @@ int GpsL1CADllPllTrackingTest::configure_generator() p3 = std::string("-rinex_obs_file=") + FLAGS_filename_rinex_obs; // RINEX 2.10 observation file output p4 = std::string("-sig_out_file=") + FLAGS_filename_raw_data; // Baseband signal output file. Will be stored in int8_t IQ multiplexed samples p5 = std::string("-sampling_freq=") + std::to_string(baseband_sampling_freq); //Baseband sampling frequency [MSps] + p6 = std::string("-CN0_dBHz=") + std::to_string(FLAGS_CN0_dBHz); // Signal generator CN0 return 0; } @@ -191,7 +193,7 @@ int GpsL1CADllPllTrackingTest::generate_signal() { int child_status; - char* const parmList[] = {&generator_binary[0], &generator_binary[0], &p1[0], &p2[0], &p3[0], &p4[0], &p5[0], NULL}; + char* const parmList[] = {&generator_binary[0], &generator_binary[0], &p1[0], &p2[0], &p3[0], &p4[0], &p5[0],&p6[0], NULL}; int pid; if ((pid = fork()) == -1) @@ -223,12 +225,12 @@ void GpsL1CADllPllTrackingTest::configure_receiver() config->set_property("Tracking_1C.implementation", implementation); config->set_property("Tracking_1C.item_type", "gr_complex"); config->set_property("Tracking_1C.pll_bw_hz", "20.0"); - config->set_property("Tracking_1C.dll_bw_hz", "2.0"); + config->set_property("Tracking_1C.dll_bw_hz", "1.5"); config->set_property("Tracking_1C.early_late_space_chips", "0.5"); - config->set_property("Tracking_1C.pll_bw_narrow_hz", "20.0"); - config->set_property("Tracking_1C.dll_bw_narrow_hz", "2.0"); + config->set_property("Tracking_1C.extend_correlation_symbols", std::to_string(FLAGS_extend_correlation_symbols)); + config->set_property("Tracking_1C.pll_bw_narrow_hz", "2.0"); + config->set_property("Tracking_1C.dll_bw_narrow_hz", "1.0"); config->set_property("Tracking_1C.early_late_space_narrow_chips", "0.5"); - config->set_property("Tracking_1C.extend_correlation_ms", "1"); config->set_property("Tracking_1C.dump", "true"); config->set_property("Tracking_1C.dump_filename", "./tracking_ch_"); } @@ -471,6 +473,7 @@ TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults) std::vector late; std::vector promptI; std::vector promptQ; + std::vector CN0_dBHz; epoch_counter = 0; while (trk_dump.read_binary_obs()) @@ -488,6 +491,7 @@ TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults) late.push_back(trk_dump.abs_L); promptI.push_back(trk_dump.prompt_I); promptQ.push_back(trk_dump.prompt_Q); + CN0_dBHz.push_back(trk_dump.CN0_SNV_dB_Hz); } // Align initial measurements and cut the tracking pull-in transitory @@ -555,6 +559,17 @@ TEST_F(GpsL1CADllPllTrackingTest, ValidationOfResults) g2.savetops("Constellation"); g2.savetopdf("Constellation", 18); g2.showonscreen(); // window output + + Gnuplot g3("linespoints"); + g3.set_title("GPS L1 C/A tracking CN0 output (satellite PRN #" + std::to_string(FLAGS_test_satellite_PRN) + ")"); + g3.set_grid(); + g3.set_xlabel("Time [s]"); + g3.set_ylabel("Reported CN0 [dB-Hz]"); + g3.cmd("set key box opaque"); + g3.plot_xy(timevec, CN0_dBHz, "Prompt", decimate); + g3.savetops("CN0_output"); + g3.savetopdf("CN0_output", 18); + g3.showonscreen(); // window output } catch (const GnuplotException& ge) { From 8b8e4887b857ee926cacc57d55a49bd8e8e9a662 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 24 Apr 2018 18:34:37 +0200 Subject: [PATCH 019/108] Fix experiment --- src/utils/reproducibility/ieee-access18/L2-access18.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/reproducibility/ieee-access18/L2-access18.conf b/src/utils/reproducibility/ieee-access18/L2-access18.conf index 57e1af0a3..e4bc4ae44 100644 --- a/src/utils/reproducibility/ieee-access18/L2-access18.conf +++ b/src/utils/reproducibility/ieee-access18/L2-access18.conf @@ -56,7 +56,7 @@ Resampler.item_type=gr_complex Channels_2S.count=10 -Channels.in_acquisition=1 +;Channels.in_acquisition=1 Channel0.signal=2S Channel1.signal=2S From 512bf3f4cf9d0925953520d664f1266c25263293 Mon Sep 17 00:00:00 2001 From: mmajoral Date: Fri, 27 Apr 2018 20:00:50 +0200 Subject: [PATCH 020/108] Created a generic gnuradio block acquisition class for the FPGA. --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 236 +++++++------- .../gps_l1_ca_pcps_acquisition_fpga.h | 41 +-- .../gnuradio_blocks/CMakeLists.txt | 2 +- .../gps_pcps_acquisition_fpga_sc.cc | 298 ------------------ .../gps_pcps_acquisition_fpga_sc.h | 219 ------------- .../gnuradio_blocks/pcps_acquisition_fpga.cc | 247 +++++++++++++++ .../gnuradio_blocks/pcps_acquisition_fpga.h | 216 +++++++++++++ .../acquisition/libs/CMakeLists.txt | 2 +- ...acquisition_8sc.cc => fpga_acquisition.cc} | 140 +++----- ...a_acquisition_8sc.h => fpga_acquisition.h} | 33 +- 10 files changed, 655 insertions(+), 779 deletions(-) delete mode 100644 src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc delete mode 100644 src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h create mode 100644 src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc create mode 100644 src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h rename src/algorithms/acquisition/libs/{gps_fpga_acquisition_8sc.cc => fpga_acquisition.cc} (55%) rename src/algorithms/acquisition/libs/{gps_fpga_acquisition_8sc.h => fpga_acquisition.h} (78%) 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 00ff2008c..f585fdbc0 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,18 @@ + /*! * \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 @@ -30,88 +34,109 @@ * * ------------------------------------------------------------------------- */ - -#include "gps_l1_ca_pcps_acquisition_fpga.h" -#include +#include +#include +#include #include -#include "GPS_L1_CA.h" +#include "gps_l1_ca_pcps_acquisition_fpga.h" #include "configuration_interface.h" +#include "gps_sdr_signal_processing.h" +#include "GPS_L1_CA.h" +#include "gnss_sdr_flags.h" + +#define NUM_PRNs 32 using google::LogMessage; 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) + 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); - fs_in = configuration_->property("GNSS-SDR.internal_fs_sps", 2048000); - ifreq = configuration_->property(role + ".if", 0); - dump = configuration_->property(role + ".dump", false); + + long fs_in_deprecated = configuration_->property("GNSS-SDR.internal_fs_hz", 2048000); + fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); + acq_parameters.fs_in = fs_in_; + if_ = configuration_->property(role + ".if", 0); + acq_parameters.freq = if_; doppler_max_ = configuration_->property(role + ".doppler_max", 5000); - 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); - std::string default_device_name = "/dev/uio0"; - device_name = configuration_->property(role + ".devicename", - default_device_name); - if (item_type_.compare("cshort") == 0) + if (FLAGS_doppler_max != 0) doppler_max_ = FLAGS_doppler_max; + acq_parameters.doppler_max = doppler_max_; + sampled_ms_ = configuration_->property(role + ".coherent_integration_time_ms", 1); + acq_parameters.sampled_ms = sampled_ms_; + 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); + 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"; + 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; + + // 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) + + // Direct FFT + gr::fft::fft_complex* 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 + 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(FATAL) << item_type_ << " FPGA only accepts chsort"; - } + gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in_, 0); // generate PRN code + // fill in zero padding + for (int s=code_length_;sget_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.all_fft_codes = d_all_fft_codes; + //acq_parameters + // 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; } @@ -119,123 +144,94 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( GpsL1CaPcpsAcquisitionFpga::~GpsL1CaPcpsAcquisitionFpga() { + //delete[] code_; + 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(); + 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..d65e677e7 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 +#include "gnss_synchro.h" +#include "pcps_acquisition_fpga.h" +#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,21 @@ public: private: ConfigurationInterface* configuration_; - gps_pcps_acquisition_fpga_sc_sptr gps_acquisition_fpga_sc_; - size_t item_size_; - std::string item_type_; + pcps_acquisition_fpga_sptr acquisition_fpga_; unsigned int vector_length_; + unsigned int code_length_; unsigned int channel_; - float threshold_; unsigned int doppler_max_; unsigned int doppler_step_; - unsigned int max_dwells_; + unsigned int sampled_ms_; + long fs_in_; + long if_; Gnss_Synchro* gnss_synchro_; std::string role_; unsigned int in_streams_; unsigned int out_streams_; + lv_16sc_t *d_all_fft_codes; // memory that contains all the code ffts - float calculate_threshold(float pfa); }; -#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/gps_pcps_acquisition_fpga_sc.cc b/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc deleted file mode 100644 index 53b54686d..000000000 --- a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.cc +++ /dev/null @@ -1,298 +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" - -#include - -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::block("gps_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 < gps_fpga_acquisition_8sc> - (device_name, vector_length, d_fft_size, doppler_max, 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; - //printf("ACQ : Block samples for PRN %d\n", d_gnss_synchro->PRN); -// 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; - 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(); - } - - } - - - //printf("ACQ : unblocking samples for satellite %d\n", d_gnss_synchro->PRN); -// acquisition_fpga_8sc->unblock_samples(); // unblock samples before sending positive or negative acquisition message to let the samples flow when the - // set local code function is called - 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)); - } - DLOG(INFO) << "Done. Consumed 1 item."; -} - - -int gps_pcps_acquisition_fpga_sc::general_work(int noutput_items, - gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items __attribute__((unused)), - 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 a8316c634..000000000 --- a/src/algorithms/acquisition/gnuradio_blocks/gps_pcps_acquisition_fpga_sc.h +++ /dev/null @@ -1,219 +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). - *
    - *
  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 - *
- * - * 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_GPS_PCPS_ACQUISITION_FPGA_SC_H_ -#define GNSS_SDR_GPS_PCPS_ACQUISITION_FPGA_SC_H_ - -#include -#include -#include -#include -#include -#include "gnss_synchro.h" -#include "gps_fpga_acquisition_8sc.h" - -#include - -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; - //void set_active2(bool active); - boost::thread d_acq_thread; - -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_GPS_PCPS_ACQUISITION_SC_H_*/ 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..4f21ffa7a --- /dev/null +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -0,0 +1,247 @@ +/*! + * \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 "pcps_acquisition_fpga.h" +#include "GPS_L1_CA.h" // for GPS_TWO_PI +#include "GLONASS_L1_L2_CA.h" // for GLONASS_TWO_PI" +#include +#include + +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; + int effective_fft_size = d_fft_size; + float fft_normalization_factor = static_cast(d_fft_size) * static_cast(d_fft_size); + + d_input_power = 0.0; + d_mag = 0.0; + //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: " + << 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 / (effective_fft_size - 1); + input_power_computed = (d_input_power - d_mag) / (effective_fft_size - 1); + d_input_power = (d_input_power - d_mag) / (effective_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..d140f538c --- /dev/null +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h @@ -0,0 +1,216 @@ +/*! + * \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). + *
    + *
  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 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 "gnss_synchro.h" +#include +#include "fpga_acquisition.h" + +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; + std::string dump_filename; + unsigned int select_queue_Fpga; + std::string device_name; + unsigned int code_length; + 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/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/gps_fpga_acquisition_8sc.cc b/src/algorithms/acquisition/libs/fpga_acquisition.cc similarity index 55% rename from src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc rename to src/algorithms/acquisition/libs/fpga_acquisition.cc index 16280e1d4..213183ba5 100644 --- a/src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.cc +++ b/src/algorithms/acquisition/libs/fpga_acquisition.cc @@ -1,12 +1,12 @@ /*! - * \file gps_fpga_acquisition_8sc.cc + * \file fpga_acquisition.cc * \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,65 +33,46 @@ * ------------------------------------------------------------------------- */ -#include "gps_fpga_acquisition_8sc.h" +#include "fpga_acquisition.h" #include "gps_sdr_signal_processing.h" -#include -// allocate memory dynamically -#include - -// libraries used by DMA test code and GIPO test code -#include +// libraries used by the GIPO #include -#include -#include - -// libraries used by DMA test code -#include -#include -#include -#include - -// libraries used by GPIO test code -#include -#include #include // logging #include -// volk -#include - // GPS L1 #include "GPS_L1_CA.h" #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 +#define TEST_REG_SANITY_CHECK 0x55AA -bool gps_fpga_acquisition_8sc::init() +bool fpga_acquisition::init() { // configure the acquisition with the main initialization values - gps_fpga_acquisition_8sc::configure_acquisition(); + fpga_acquisition::configure_acquisition(); return true; } -bool gps_fpga_acquisition_8sc::set_local_code(unsigned int PRN) +bool fpga_acquisition::set_local_code(unsigned int PRN) { // select the code with the chosen PRN - gps_fpga_acquisition_8sc::fpga_configure_acquisition_local_code( + fpga_acquisition::fpga_configure_acquisition_local_code( &d_all_fft_codes[d_nsamples_total * (PRN - 1)]); return true; } -gps_fpga_acquisition_8sc::gps_fpga_acquisition_8sc(std::string device_name, - unsigned int vector_length, unsigned int nsamples, +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) + 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; @@ -104,98 +85,49 @@ gps_fpga_acquisition_8sc::gps_fpga_acquisition_8sc(std::string device_name, d_doppler_step = 0; d_fd = 0; // driver descriptor d_map_base = nullptr; // driver memory map - // 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 - gr_complex* d_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++) - { - gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in, 0); // generate PRN code - // fill in zero padding - for (int s=nsamples;sget_inbuf() + offset, code, sizeof(gr_complex) * nsamples_total); // 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(), nsamples_total); // conjugate values - max = 0; // initialize maximum value - for (unsigned int i = 0; i < nsamples_total; 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 < 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(d_fft_codes_padded[i].real() * (pow(2, 7) - 1) / max), - static_cast(d_fft_codes_padded[i].imag() * (pow(2, 7) - 1) / max)); + d_all_fft_codes = all_fft_codes; - } - } // open communication with HW accelerator - //printf("opening device %s\n", d_device_name.c_str()); if ((d_fd = open(d_device_name.c_str(), O_RDWR | O_SYNC)) == -1) { LOG(WARNING) << "Cannot open deviceio" << d_device_name; - //std::cout << "acquisition cannot open deviceio"; } 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"; - //std::cout << "acquisition : could not map the fpga registers to the driver" << std::endl; } + // 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 writeval = TEST_REG_SANITY_CHECK; unsigned readval; - readval = gps_fpga_acquisition_8sc::fpga_acquisition_test_register(writeval); + readval = fpga_acquisition::fpga_acquisition_test_register(writeval); if (writeval != readval) { LOG(WARNING) << "Acquisition test register sanity check failed"; - //std:: cout << "Acquisition test register sanity check failed" << std::endl; } else { - //std::cout << "Acquisition test register sanity check success !" << std::endl; LOG(INFO) << "Acquisition test register sanity check success !"; } - gps_fpga_acquisition_8sc::reset_acquisition(); + fpga_acquisition::reset_acquisition(); DLOG(INFO) << "Acquisition FPGA class created"; - // temporary buffers that we can delete - delete[] code; - delete d_fft_if; - delete[] d_fft_codes_padded; + } -gps_fpga_acquisition_8sc::~gps_fpga_acquisition_8sc() +fpga_acquisition::~fpga_acquisition() { close_device(); - delete[] d_all_fft_codes; } -bool gps_fpga_acquisition_8sc::free() +bool fpga_acquisition::free() { return true; } -unsigned gps_fpga_acquisition_8sc::fpga_acquisition_test_register(unsigned writeval) +unsigned fpga_acquisition::fpga_acquisition_test_register(unsigned writeval) { unsigned readval; // write value to test register @@ -206,7 +138,7 @@ unsigned gps_fpga_acquisition_8sc::fpga_acquisition_test_register(unsigned write return readval; } -void gps_fpga_acquisition_8sc::fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[]) +void fpga_acquisition::fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[]) { unsigned short local_code; unsigned int k, tmp, tmp2; @@ -224,7 +156,7 @@ void gps_fpga_acquisition_8sc::fpga_configure_acquisition_local_code(lv_16sc_t f } } -void gps_fpga_acquisition_8sc::run_acquisition(void) +void fpga_acquisition::run_acquisition(void) { // enable interrupts int reenable = 1; @@ -243,7 +175,7 @@ void gps_fpga_acquisition_8sc::run_acquisition(void) } } -void gps_fpga_acquisition_8sc::configure_acquisition() +void fpga_acquisition::configure_acquisition() { d_map_base[0] = d_select_queue; d_map_base[1] = d_vector_length; @@ -251,7 +183,7 @@ void gps_fpga_acquisition_8sc::configure_acquisition() d_map_base[5] = (int) log2((float) d_vector_length); // log2 FFTlength } -void gps_fpga_acquisition_8sc::set_phase_step(unsigned int doppler_index) +void fpga_acquisition::set_phase_step(unsigned int doppler_index) { float phase_step_rad_real; float phase_step_rad_int_temp; @@ -274,7 +206,7 @@ void gps_fpga_acquisition_8sc::set_phase_step(unsigned int doppler_index) d_map_base[3] = phase_step_rad_int; } -void gps_fpga_acquisition_8sc::read_acquisition_results(uint32_t* max_index, +void fpga_acquisition::read_acquisition_results(uint32_t* max_index, float* max_magnitude, unsigned *initial_sample, float *power_sum) { unsigned readval = 0; @@ -288,18 +220,18 @@ void gps_fpga_acquisition_8sc::read_acquisition_results(uint32_t* max_index, *max_index = readval; } -void gps_fpga_acquisition_8sc::block_samples() +void fpga_acquisition::block_samples() { d_map_base[14] = 1; // block the samples } -void gps_fpga_acquisition_8sc::unblock_samples() +void fpga_acquisition::unblock_samples() { d_map_base[14] = 0; // unblock the samples } -void gps_fpga_acquisition_8sc::close_device() +void fpga_acquisition::close_device() { unsigned * aux = const_cast(d_map_base); if (munmap(static_cast(aux), PAGE_SIZE) == -1) @@ -309,7 +241,7 @@ void gps_fpga_acquisition_8sc::close_device() close(d_fd); } -void gps_fpga_acquisition_8sc::reset_acquisition(void) +void fpga_acquisition::reset_acquisition(void) { d_map_base[6] = 2; // 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 78% rename from src/algorithms/acquisition/libs/gps_fpga_acquisition_8sc.h rename to src/algorithms/acquisition/libs/fpga_acquisition.h index 609abf0d9..45cae5475 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,26 +33,26 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_GPS_SDR_FPGA_ACQUISITION_8SC_H_ -#define GNSS_GPS_SDR_FPGA_ACQUISITION_8SC_H_ +#ifndef GNSS_SDR_FPGA_ACQUISITION_H_ +#define GNSS_SDR_FPGA_ACQUISITION_H_ #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();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 sampled_ms, unsigned select_queue, + lv_16sc_t *all_fft_codes); + ~fpga_acquisition();bool init();bool set_local_code( + unsigned int PRN); bool free(); void run_acquisition(void); void set_phase_step(unsigned int doppler_index); @@ -60,7 +60,7 @@ public: unsigned *initial_sample, float *power_sum); void block_samples(); void unblock_samples(); - //void open_device(); + /*! * \brief Set maximum Doppler grid search * \param doppler_max - Maximum Doppler shift considered in the grid search [Hz]. @@ -69,6 +69,7 @@ public: { d_doppler_max = doppler_max; } + /*! * \brief Set Doppler steps for the grid search * \param doppler_step - Frequency bin of the search grid [Hz]. @@ -102,4 +103,4 @@ private: void close_device(); }; -#endif /* GNSS_GPS_SDR_FPGA_MULTICORRELATOR_H_ */ +#endif /* GNSS_SDR_FPGA_ACQUISITION_H_ */ From 1573c40938eb9fa77391893e9c790bb5ce2465c8 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 28 Apr 2018 12:33:46 +0200 Subject: [PATCH 021/108] Expose some tracking parameters to the configuration Replace GPS_L5i_DLL_PLL_Tracking by GPS_L5_DLL_PLL_Tracking since now it can also track the Q component. Old name still recognized for backward compatibility Fix typo in flag documentation --- src/algorithms/libs/gnss_sdr_flags.cc | 2 +- src/algorithms/libs/gnss_sdr_flags.h | 2 +- .../tracking/adapters/CMakeLists.txt | 2 +- .../galileo_e1_dll_pll_veml_tracking.cc | 13 +++++ .../adapters/galileo_e5a_dll_pll_tracking.cc | 13 +++++ .../adapters/gps_l1_ca_dll_pll_tracking.cc | 13 +++++ .../adapters/gps_l2_m_dll_pll_tracking.cc | 13 +++++ ...tracking.cc => gps_l5_dll_pll_tracking.cc} | 37 ++++++++---- ...l_tracking.h => gps_l5_dll_pll_tracking.h} | 20 +++---- .../gnuradio_blocks/dll_pll_veml_tracking.cc | 56 +++++++++++-------- .../gnuradio_blocks/dll_pll_veml_tracking.h | 5 +- src/core/receiver/gnss_block_factory.cc | 20 +++---- 12 files changed, 135 insertions(+), 61 deletions(-) rename src/algorithms/tracking/adapters/{gps_l5i_dll_pll_tracking.cc => gps_l5_dll_pll_tracking.cc} (81%) rename src/algorithms/tracking/adapters/{gps_l5i_dll_pll_tracking.h => gps_l5_dll_pll_tracking.h} (85%) 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); //property(role + ".cn0_samples", 20); + if (FLAGS_cn0_samples != 20) cn0_samples = FLAGS_cn0_samples; + trk_param.cn0_samples = cn0_samples; + int cn0_min = configuration->property(role + ".cn0_min", 25); + if (FLAGS_cn0_min != 25) cn0_min = FLAGS_cn0_min; + trk_param.cn0_min = cn0_min; + int max_lock_fail = configuration->property(role + ".max_lock_fail", 50); + if (FLAGS_max_lock_fail != 50) max_lock_fail = FLAGS_max_lock_fail; + trk_param.max_lock_fail = max_lock_fail; + double carrier_lock_th = configuration->property(role + ".carrier_lock_th", 0.85); + if (FLAGS_carrier_lock_th != 0.85) carrier_lock_th = FLAGS_carrier_lock_th; + trk_param.carrier_lock_th = carrier_lock_th; + //################# MAKE TRACKING GNURadio object ################### if (item_type.compare("gr_complex") == 0) { diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc index e4de78c22..0e95e1004 100644 --- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc @@ -101,6 +101,19 @@ GalileoE5aDllPllTracking::GalileoE5aDllPllTracking( trk_param.system = 'E'; char sig_[3] = "5X"; std::memcpy(trk_param.signal, sig_, 3); + int cn0_samples = configuration->property(role + ".cn0_samples", 20); + if (FLAGS_cn0_samples != 20) cn0_samples = FLAGS_cn0_samples; + trk_param.cn0_samples = cn0_samples; + int cn0_min = configuration->property(role + ".cn0_min", 25); + if (FLAGS_cn0_min != 25) cn0_min = FLAGS_cn0_min; + trk_param.cn0_min = cn0_min; + int max_lock_fail = configuration->property(role + ".max_lock_fail", 50); + if (FLAGS_max_lock_fail != 50) max_lock_fail = FLAGS_max_lock_fail; + trk_param.max_lock_fail = max_lock_fail; + double carrier_lock_th = configuration->property(role + ".carrier_lock_th", 0.85); + if (FLAGS_carrier_lock_th != 0.85) carrier_lock_th = FLAGS_carrier_lock_th; + trk_param.carrier_lock_th = carrier_lock_th; + //################# MAKE TRACKING GNURadio object ################### if (item_type.compare("gr_complex") == 0) { diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc index c43c1de8a..f0257d5b8 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc @@ -105,6 +105,19 @@ GpsL1CaDllPllTracking::GpsL1CaDllPllTracking( trk_param.system = 'G'; char sig_[3] = "1C"; std::memcpy(trk_param.signal, sig_, 3); + int cn0_samples = configuration->property(role + ".cn0_samples", 20); + if (FLAGS_cn0_samples != 20) cn0_samples = FLAGS_cn0_samples; + trk_param.cn0_samples = cn0_samples; + int cn0_min = configuration->property(role + ".cn0_min", 25); + if (FLAGS_cn0_min != 25) cn0_min = FLAGS_cn0_min; + trk_param.cn0_min = cn0_min; + int max_lock_fail = configuration->property(role + ".max_lock_fail", 50); + if (FLAGS_max_lock_fail != 50) max_lock_fail = FLAGS_max_lock_fail; + trk_param.max_lock_fail = max_lock_fail; + double carrier_lock_th = configuration->property(role + ".carrier_lock_th", 0.85); + if (FLAGS_carrier_lock_th != 0.85) carrier_lock_th = FLAGS_carrier_lock_th; + trk_param.carrier_lock_th = carrier_lock_th; + //################# MAKE TRACKING GNURadio object ################### if (item_type.compare("gr_complex") == 0) { diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc index 7ed9444a6..794983979 100644 --- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc @@ -92,6 +92,19 @@ GpsL2MDllPllTracking::GpsL2MDllPllTracking( trk_param.system = 'G'; char sig_[3] = "2S"; std::memcpy(trk_param.signal, sig_, 3); + int cn0_samples = configuration->property(role + ".cn0_samples", 20); + if (FLAGS_cn0_samples != 20) cn0_samples = FLAGS_cn0_samples; + trk_param.cn0_samples = cn0_samples; + int cn0_min = configuration->property(role + ".cn0_min", 25); + if (FLAGS_cn0_min != 25) cn0_min = FLAGS_cn0_min; + trk_param.cn0_min = cn0_min; + int max_lock_fail = configuration->property(role + ".max_lock_fail", 50); + if (FLAGS_max_lock_fail != 50) max_lock_fail = FLAGS_max_lock_fail; + trk_param.max_lock_fail = max_lock_fail; + double carrier_lock_th = configuration->property(role + ".carrier_lock_th", 0.85); + if (FLAGS_carrier_lock_th != 0.85) carrier_lock_th = FLAGS_carrier_lock_th; + trk_param.carrier_lock_th = carrier_lock_th; + //################# MAKE TRACKING GNURadio object ################### if (item_type.compare("gr_complex") == 0) { diff --git a/src/algorithms/tracking/adapters/gps_l5i_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc similarity index 81% rename from src/algorithms/tracking/adapters/gps_l5i_dll_pll_tracking.cc rename to src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc index 38ab6f55e..f41797fe6 100644 --- a/src/algorithms/tracking/adapters/gps_l5i_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc @@ -1,7 +1,7 @@ /*! - * \file gps_l5i_dll_pll_tracking.cc + * \file gps_l5_dll_pll_tracking.cc * \brief Interface of an adapter of a DLL+PLL tracking loop block - * for GPS L5i to a TrackingInterface + * for GPS L5 to a TrackingInterface * \author Javier Arribas, 2017. jarribas(at)cttc.es * * Code DLL + carrier PLL according to the algorithms described in: @@ -35,7 +35,7 @@ */ -#include "gps_l5i_dll_pll_tracking.h" +#include "gps_l5_dll_pll_tracking.h" #include "configuration_interface.h" #include "GPS_L5.h" #include "gnss_sdr_flags.h" @@ -45,7 +45,7 @@ using google::LogMessage; -GpsL5iDllPllTracking::GpsL5iDllPllTracking( +GpsL5DllPllTracking::GpsL5DllPllTracking( ConfigurationInterface* configuration, std::string role, unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams) { @@ -101,6 +101,19 @@ GpsL5iDllPllTracking::GpsL5iDllPllTracking( trk_param.system = 'G'; char sig_[3] = "L5"; std::memcpy(trk_param.signal, sig_, 3); + int cn0_samples = configuration->property(role + ".cn0_samples", 20); + if (FLAGS_cn0_samples != 20) cn0_samples = FLAGS_cn0_samples; + trk_param.cn0_samples = cn0_samples; + int cn0_min = configuration->property(role + ".cn0_min", 25); + if (FLAGS_cn0_min != 25) cn0_min = FLAGS_cn0_min; + trk_param.cn0_min = cn0_min; + int max_lock_fail = configuration->property(role + ".max_lock_fail", 50); + if (FLAGS_max_lock_fail != 50) max_lock_fail = FLAGS_max_lock_fail; + trk_param.max_lock_fail = max_lock_fail; + double carrier_lock_th = configuration->property(role + ".carrier_lock_th", 0.85); + if (FLAGS_carrier_lock_th != 0.85) carrier_lock_th = FLAGS_carrier_lock_th; + trk_param.carrier_lock_th = carrier_lock_th; + //################# MAKE TRACKING GNURadio object ################### if (item_type.compare("gr_complex") == 0) { @@ -117,12 +130,12 @@ GpsL5iDllPllTracking::GpsL5iDllPllTracking( } -GpsL5iDllPllTracking::~GpsL5iDllPllTracking() +GpsL5DllPllTracking::~GpsL5DllPllTracking() { } -void GpsL5iDllPllTracking::start_tracking() +void GpsL5DllPllTracking::start_tracking() { tracking_->start_tracking(); } @@ -131,20 +144,20 @@ void GpsL5iDllPllTracking::start_tracking() /* * Set tracking channel unique ID */ -void GpsL5iDllPllTracking::set_channel(unsigned int channel) +void GpsL5DllPllTracking::set_channel(unsigned int channel) { channel_ = channel; tracking_->set_channel(channel); } -void GpsL5iDllPllTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) +void GpsL5DllPllTracking::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) { tracking_->set_gnss_synchro(p_gnss_synchro); } -void GpsL5iDllPllTracking::connect(gr::top_block_sptr top_block) +void GpsL5DllPllTracking::connect(gr::top_block_sptr top_block) { if (top_block) { /* top_block is not null */ @@ -153,7 +166,7 @@ void GpsL5iDllPllTracking::connect(gr::top_block_sptr top_block) } -void GpsL5iDllPllTracking::disconnect(gr::top_block_sptr top_block) +void GpsL5DllPllTracking::disconnect(gr::top_block_sptr top_block) { if (top_block) { /* top_block is not null */ @@ -162,13 +175,13 @@ void GpsL5iDllPllTracking::disconnect(gr::top_block_sptr top_block) } -gr::basic_block_sptr GpsL5iDllPllTracking::get_left_block() +gr::basic_block_sptr GpsL5DllPllTracking::get_left_block() { return tracking_; } -gr::basic_block_sptr GpsL5iDllPllTracking::get_right_block() +gr::basic_block_sptr GpsL5DllPllTracking::get_right_block() { return tracking_; } diff --git a/src/algorithms/tracking/adapters/gps_l5i_dll_pll_tracking.h b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h similarity index 85% rename from src/algorithms/tracking/adapters/gps_l5i_dll_pll_tracking.h rename to src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h index 31a6d41f9..119776b9f 100644 --- a/src/algorithms/tracking/adapters/gps_l5i_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h @@ -1,7 +1,7 @@ /*! - * \file gps_l5idll_pll_tracking.h + * \file gps_l5_dll_pll_tracking.h * \brief Interface of an adapter of a DLL+PLL tracking loop block - * for GPS L5i to a TrackingInterface + * for GPS L5 to a TrackingInterface * \author Javier Arribas, 2017. jarribas(at)cttc.es * * Code DLL + carrier PLL according to the algorithms described in: @@ -34,8 +34,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GPS_L5i_DLL_PLL_TRACKING_H_ -#define GNSS_SDR_GPS_L5i_DLL_PLL_TRACKING_H_ +#ifndef GNSS_SDR_GPS_L5_DLL_PLL_TRACKING_H_ +#define GNSS_SDR_GPS_L5_DLL_PLL_TRACKING_H_ #include "tracking_interface.h" #include "dll_pll_veml_tracking.h" @@ -46,25 +46,25 @@ class ConfigurationInterface; /*! * \brief This class implements a code DLL + carrier PLL tracking loop */ -class GpsL5iDllPllTracking : public TrackingInterface +class GpsL5DllPllTracking : public TrackingInterface { public: - GpsL5iDllPllTracking(ConfigurationInterface* configuration, + GpsL5DllPllTracking(ConfigurationInterface* configuration, std::string role, unsigned int in_streams, unsigned int out_streams); - virtual ~GpsL5iDllPllTracking(); + virtual ~GpsL5DllPllTracking(); inline std::string role() override { return role_; } - //! Returns "GPS_L5i_DLL_PLL_Tracking" + //! Returns "GPS_L5_DLL_PLL_Tracking" inline std::string implementation() override { - return "GPS_L5i_DLL_PLL_Tracking"; + return "GPS_L5_DLL_PLL_Tracking"; } inline size_t item_size() override @@ -99,4 +99,4 @@ private: unsigned int out_streams_; }; -#endif // GNSS_SDR_GPS_L5i_DLL_PLL_TRACKING_H_ +#endif // GNSS_SDR_GPS_L5_DLL_PLL_TRACKING_H_ diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index d53eaad66..515e21ada 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -48,7 +48,6 @@ #include "gps_l2c_signal.h" #include "GPS_L5.h" #include "gps_l5_signal.h" -#include "gnss_sdr_flags.h" #include #include #include @@ -93,6 +92,18 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_secondary_code_length = 0; d_secondary_code_string = nullptr; signal_type = std::string(trk_parameters.signal); + + std::map map_signal_pretty_name; + map_signal_pretty_name["1C"] = "L1 C/A"; + map_signal_pretty_name["1B"] = "E1"; + map_signal_pretty_name["1G"] = "L1 C/A"; + map_signal_pretty_name["2S"] = "L2C"; + map_signal_pretty_name["2G"] = "L2 C/A"; + map_signal_pretty_name["5X"] = "E5a"; + map_signal_pretty_name["L5"] = "L5"; + + signal_pretty_name = map_signal_pretty_name[signal_type]; + if (trk_parameters.system == 'G') { systemName = "GPS"; @@ -135,17 +146,19 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_code_length_chips = static_cast(GPS_L5i_CODE_LENGTH_CHIPS); // GPS L5 does not have pilot secondary code d_secondary = true; + interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(GPS_L5q_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5q_NH_CODE_STR); - interchange_iq = true; + signal_pretty_name = signal_pretty_name + "Q"; + //interchange_iq = true; } else { d_secondary_code_length = static_cast(GPS_L5i_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5i_NH_CODE_STR); - interchange_iq = false; + signal_pretty_name = signal_pretty_name + "I"; } } else @@ -180,10 +193,12 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_secondary = true; d_secondary_code_length = static_cast(Galileo_E1_C_SECONDARY_CODE_LENGTH); d_secondary_code_string = const_cast(&Galileo_E1_C_SECONDARY_CODE); + signal_pretty_name = signal_pretty_name + "C"; } else { d_secondary = false; + signal_pretty_name = signal_pretty_name + "B"; } interchange_iq = false; // Note that E1-B and E1-C are in anti-phase, NOT IN QUADRATURE. See Galileo ICD. } @@ -197,16 +212,18 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_code_samples_per_chip = 1; d_code_length_chips = static_cast(Galileo_E5a_CODE_LENGTH_CHIPS); d_secondary = true; + interchange_iq = false; if (trk_parameters.track_pilot) { - interchange_iq = true; d_secondary_code_length = static_cast(Galileo_E5a_Q_SECONDARY_CODE_LENGTH); + signal_pretty_name = signal_pretty_name + "Q"; + // interchange_iq = true; } else { - interchange_iq = false; d_secondary_code_length = static_cast(Galileo_E5a_I_SECONDARY_CODE_LENGTH); d_secondary_code_string = const_cast(&Galileo_E5a_I_SECONDARY_CODE); + signal_pretty_name = signal_pretty_name + "I"; } } else @@ -338,11 +355,11 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl // CN0 estimation and lock detector buffers d_cn0_estimation_counter = 0; - d_Prompt_buffer = new gr_complex[FLAGS_cn0_samples]; + d_Prompt_buffer = new gr_complex[trk_parameters.cn0_samples]; d_carrier_lock_test = 1.0; d_CN0_SNV_dB_Hz = 0.0; d_carrier_lock_fail_counter = 0; - d_carrier_lock_threshold = FLAGS_carrier_lock_th; + d_carrier_lock_threshold = trk_parameters.carrier_lock_th; clear_tracking_vars(); @@ -361,16 +378,6 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_code_phase_samples = 0.0; d_last_prompt = gr_complex(0.0, 0.0); d_state = 0; // initial state: standby - - map_signal_pretty_name["1C"] = "L1 C/A"; - map_signal_pretty_name["1B"] = "E1"; - map_signal_pretty_name["1G"] = "L1 C/A"; - map_signal_pretty_name["2S"] = "L2C"; - map_signal_pretty_name["2G"] = "L2 C/A"; - map_signal_pretty_name["5X"] = "E5a"; - map_signal_pretty_name["L5"] = "L5"; - - signal_pretty_name = map_signal_pretty_name[signal_type]; } @@ -618,7 +625,8 @@ bool dll_pll_veml_tracking::acquire_secondary() bool dll_pll_veml_tracking::cn0_and_tracking_lock_status(double coh_integration_time_s) { // ####### CN0 ESTIMATION AND LOCK DETECTORS ###### - if (d_cn0_estimation_counter < FLAGS_cn0_samples) + + if (d_cn0_estimation_counter < trk_parameters.cn0_samples) { // fill buffer with prompt correlator output values d_Prompt_buffer[d_cn0_estimation_counter] = d_P_accu; @@ -629,11 +637,11 @@ bool dll_pll_veml_tracking::cn0_and_tracking_lock_status(double coh_integration_ { d_cn0_estimation_counter = 0; // Code lock indicator - d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, FLAGS_cn0_samples, coh_integration_time_s); + d_CN0_SNV_dB_Hz = cn0_svn_estimator(d_Prompt_buffer, trk_parameters.cn0_samples, coh_integration_time_s); // Carrier lock indicator - d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, FLAGS_cn0_samples); + d_carrier_lock_test = carrier_lock_detector(d_Prompt_buffer, trk_parameters.cn0_samples); // Loss of lock detection - if (d_carrier_lock_test < d_carrier_lock_threshold or d_CN0_SNV_dB_Hz < FLAGS_cn0_min) + if (d_carrier_lock_test < d_carrier_lock_threshold or d_CN0_SNV_dB_Hz < trk_parameters.cn0_min) { d_carrier_lock_fail_counter++; } @@ -641,7 +649,7 @@ bool dll_pll_veml_tracking::cn0_and_tracking_lock_status(double coh_integration_ { if (d_carrier_lock_fail_counter > 0) d_carrier_lock_fail_counter--; } - if (d_carrier_lock_fail_counter > FLAGS_max_lock_fail) + if (d_carrier_lock_fail_counter > trk_parameters.max_lock_fail) { std::cout << "Loss of lock in channel " << d_channel << "!" << std::endl; LOG(INFO) << "Loss of lock in channel " << d_channel << "!"; @@ -1242,7 +1250,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) d_L_accu = *d_Late; // Check lock status - if (!cn0_and_tracking_lock_status(static_cast(d_correlation_length_ms) / 1000.0)) + if (!cn0_and_tracking_lock_status(d_code_period)) { clear_tracking_vars(); d_state = 0; // loss-of-lock detected @@ -1420,7 +1428,7 @@ int dll_pll_veml_tracking::general_work(int noutput_items __attribute__((unused) save_correlation_results(); // check lock status - if (!cn0_and_tracking_lock_status((static_cast(d_correlation_length_ms) / 1000.0) * static_cast(trk_parameters.extend_correlation_symbols))) + if (!cn0_and_tracking_lock_status(d_code_period * static_cast(trk_parameters.extend_correlation_symbols))) { clear_tracking_vars(); d_state = 0; // loss-of-lock detected diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h index 6d1719173..5a77abe40 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h @@ -56,6 +56,10 @@ typedef struct float early_late_space_narrow_chips; float very_early_late_space_narrow_chips; int extend_correlation_symbols; + int cn0_samples; + int cn0_min; + int max_lock_fail; + double carrier_lock_th; bool track_pilot; char system; char signal[3]; @@ -119,7 +123,6 @@ private: std::string systemName; std::string signal_type; std::string *d_secondary_code_string; - std::map map_signal_pretty_name; std::string signal_pretty_name; //tracking state machine diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 0cf956706..bbc88df91 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -91,7 +91,7 @@ #include "glonass_l1_ca_dll_pll_c_aid_tracking.h" #include "glonass_l2_ca_dll_pll_tracking.h" #include "glonass_l2_ca_dll_pll_c_aid_tracking.h" -#include "gps_l5i_dll_pll_tracking.h" +#include "gps_l5_dll_pll_tracking.h" #include "gps_l1_ca_telemetry_decoder.h" #include "gps_l2c_telemetry_decoder.h" #include "gps_l5_telemetry_decoder.h" @@ -250,13 +250,13 @@ std::unique_ptr GNSSBlockFactory::GetObservables(std::shared GPS_channels += configuration->property("Channels_2S.count", 0); GPS_channels += configuration->property("Channels_L5.count", 0); unsigned int Glonass_channels = configuration->property("Channels_1G.count", 0); - unsigned int extra_channels = 1; // For monitor channel sample counter + unsigned int extra_channels = 1; // For monitor channel sample counter return GetBlock(configuration, "Observables", implementation, - Galileo_channels + + Galileo_channels + GPS_channels + Glonass_channels + extra_channels, - Galileo_channels + + Galileo_channels + GPS_channels + Glonass_channels); } @@ -617,7 +617,6 @@ std::unique_ptr GNSSBlockFactory::GetChannel_1G( } - //********* GLONASS L2 C/A CHANNEL ***************** std::unique_ptr GNSSBlockFactory::GetChannel_2G( std::shared_ptr configuration, @@ -687,7 +686,6 @@ std::unique_ptr GNSSBlockFactory::GetChannel_2G( } - //********* GPS L5 CHANNEL ***************** std::unique_ptr GNSSBlockFactory::GetChannel_L5( std::shared_ptr configuration, @@ -779,7 +777,7 @@ std::unique_ptr>> GNSSBlockFacto Channels_1B_count + Channels_5X_count + Channels_1G_count + - Channels_2G_count + + Channels_2G_count + Channels_L5_count; std::unique_ptr>> channels(new std::vector>(total_channels)); @@ -1437,9 +1435,9 @@ std::unique_ptr GNSSBlockFactory::GetBlock( out_streams)); block = std::move(block_); } - else if (implementation.compare("GPS_L5i_DLL_PLL_Tracking") == 0) + else if ((implementation.compare("GPS_L5i_DLL_PLL_Tracking") == 0) or (implementation.compare("GPS_L5_DLL_PLL_Tracking") == 0)) { - std::unique_ptr block_(new GpsL5iDllPllTracking(configuration.get(), role, in_streams, + std::unique_ptr block_(new GpsL5DllPllTracking(configuration.get(), role, in_streams, out_streams)); block = std::move(block_); } @@ -1766,9 +1764,9 @@ std::unique_ptr GNSSBlockFactory::GetTrkBlock( out_streams)); block = std::move(block_); } - else if (implementation.compare("GPS_L5i_DLL_PLL_Tracking") == 0) + else if ((implementation.compare("GPS_L5i_DLL_PLL_Tracking") == 0) or (implementation.compare("GPS_L5_DLL_PLL_Tracking") == 0)) { - std::unique_ptr block_(new GpsL5iDllPllTracking(configuration.get(), role, in_streams, + std::unique_ptr block_(new GpsL5DllPllTracking(configuration.get(), role, in_streams, out_streams)); block = std::move(block_); } From a92e6de3d99d6cec0a7353ab57ab539006bc4580 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 01:19:48 +0200 Subject: [PATCH 022/108] Add support for aarch64 --- .../cmake/Modules/VolkAddTest.cmake | 33 +++++---- .../arm_cortex_a15_hardfp_native.cmake | 8 +++ .../arm_cortex_a9_hardfp_native.cmake | 8 +++ .../volk_gnsssdr/cmake/msvc/sys/time.h | 72 +++++++++++++++++++ .../volk_gnsssdr/gen/archs.xml | 14 +++- .../volk_gnsssdr/gen/machines.xml | 10 ++- .../volk_gnsssdr_16i_resamplerxnpuppet_16i.h | 2 +- .../volk_gnsssdr_16i_xn_resampler_16i_xn.h | 2 +- ...nsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h | 12 ++-- ...dr_16ic_16i_rotator_dotprodxnpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_conjugate_16ic.h | 4 +- .../volk_gnsssdr_16ic_convert_32fc.h | 4 +- .../volk_gnsssdr_16ic_resampler_fast_16ic.h | 4 +- ...lk_gnsssdr_16ic_resamplerfastpuppet_16ic.h | 4 +- ..._gnsssdr_16ic_resamplerfastxnpuppet_16ic.h | 2 +- ...volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h | 2 +- .../volk_gnsssdr_16ic_rotatorpuppet_16ic.h | 8 +-- .../volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h | 8 +-- .../volk_gnsssdr_16ic_x2_dot_prod_16ic.h | 12 ++-- .../volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h | 12 ++-- ...olk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h | 6 +- .../volk_gnsssdr_16ic_x2_multiply_16ic.h | 4 +- ...gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h | 12 ++-- ...sdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_xn_resampler_16ic_xn.h | 2 +- ...k_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h | 4 +- .../volk_gnsssdr_32f_index_max_32u.h | 4 +- .../volk_gnsssdr_32f_resamplerxnpuppet_32f.h | 2 +- .../volk_gnsssdr_32f_sincos_32fc.h | 4 +- .../volk_gnsssdr_32f_xn_resampler_32f_xn.h | 2 +- .../volk_gnsssdr_32fc_convert_16ic.h | 4 +- .../volk_gnsssdr_32fc_convert_8ic.h | 4 +- ...volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h | 2 +- ...gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h | 4 +- ...sdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h | 2 +- .../volk_gnsssdr_32fc_xn_resampler_32fc_xn.h | 2 +- .../volk_gnsssdr_8ic_conjugate_8ic.h | 4 +- .../volk_gnsssdr_8ic_x2_dot_prod_8ic.h | 4 +- .../volk_gnsssdr_s32f_sincos_32fc.h | 4 +- .../volk_gnsssdr_s32f_sincospuppet_32fc.h | 4 +- .../volk_gnsssdr/lib/CMakeLists.txt | 34 ++++++++- .../volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c | 53 +++++++++++++- 42 files changed, 289 insertions(+), 101 deletions(-) create mode 100644 src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a15_hardfp_native.cmake create mode 100644 src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a9_hardfp_native.cmake create mode 100644 src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/sys/time.h 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..ea6b82ba1 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 @@ -176,20 +176,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 +203,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/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..274e63aea --- /dev/null +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a15_hardfp_native.cmake @@ -0,0 +1,8 @@ +######################################################################## +# 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..b8302c872 --- /dev/null +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Toolchains/arm_cortex_a9_hardfp_native.cmake @@ -0,0 +1,8 @@ +######################################################################## +# 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-a9 -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/msvc/sys/time.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/sys/time.h new file mode 100644 index 000000000..fc62a7041 --- /dev/null +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/sys/time.h @@ -0,0 +1,72 @@ +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_SYS_TIME_H_ +#define _MSC_SYS_TIME_H_ + +#ifndef NOMINMAX +#define NOMINMAX +#endif + +//http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/430449b3-f6dd-4e18-84de-eebd26a8d668 +#include < time.h > +#include //I've omitted this line. +#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) +#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 +#else +#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL +#endif + +#if _MSC_VER < 1900 +struct timespec +{ + time_t tv_sec; /* Seconds since 00:00:00 GMT, */ + + /* 1 January 1970 */ + + long tv_nsec; /* Additional nanoseconds since */ + + /* tv_sec */ +}; +#endif + +struct timezone +{ + int tz_minuteswest; /* minutes W of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; + +static inline int gettimeofday(struct timeval *tv, struct timezone *tz) +{ + FILETIME ft; + unsigned __int64 tmpres = 0; + static int tzflag; + + if (NULL != tv) + { + GetSystemTimeAsFileTime(&ft); + + tmpres |= ft.dwHighDateTime; + tmpres <<= 32; + tmpres |= ft.dwLowDateTime; + + /*converting file time to unix epoch*/ + tmpres -= DELTA_EPOCH_IN_MICROSECS; + tv->tv_sec = (long)(tmpres / 1000000UL); + tv->tv_usec = (long)(tmpres % 1000000UL); + } + + if (NULL != tz) + { + if (!tzflag) + { + _tzset(); + tzflag++; + } + tz->tz_minuteswest = _timezone / 60; + tz->tz_dsttime = _daylight; + } + + return 0; +} diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/archs.xml b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/archs.xml index ff1de1e15..a8bee46a2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/archs.xml +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/archs.xml @@ -13,12 +13,24 @@ - -mfpu=neon -funsafe-math-optimizations 16 + + -mfpu=neon + -funsafe-math-optimizations + 16 + + + + + -funsafe-math-optimizations + 16 + + + -m32 diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/machines.xml b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/machines.xml index b60f336cd..e7c6eaf20 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/machines.xml +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/machines.xml @@ -5,7 +5,15 @@ -generic neon softfp|hardfp orc| +generic neon orc| + + + +generic neon neonv7 softfp|hardfp orc| + + + +generic neon neonv8 diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h index ffce85d32..12e95411e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h @@ -249,7 +249,7 @@ static inline void volk_gnsssdr_16i_resamplerxnpuppet_16i_a_avx(int16_t* result, #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16i_resamplerxnpuppet_16i_neon(int16_t* result, const int16_t* local_code, unsigned int num_points) { int code_length_chips = 2046; diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h index 3628ccf8c..7547ca5d8 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h @@ -526,7 +526,7 @@ static inline void volk_gnsssdr_16i_xn_resampler_16i_xn_u_avx(int16_t** result, #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16i_xn_resampler_16i_xn_neon(int16_t** result, const int16_t* local_code, float rem_code_phase_chips, float code_phase_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points) { diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h index fbf7e31f1..71d4d3c86 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h @@ -1049,7 +1049,7 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn_u_avx2(lv_16sc } #endif /* LV_HAVE_AVX2 */ -//#ifdef LV_HAVE_NEON +//#ifdef LV_HAVE_NEONV7 //#include //static inline void volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn_neon(lv_16sc_t* result, const lv_16sc_t* in_common, const lv_32fc_t phase_inc, lv_32fc_t* phase, const int16_t** in_a, int num_a_vectors, unsigned int num_points) @@ -1228,10 +1228,10 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn_u_avx2(lv_16sc //} //} -//#endif [> LV_HAVE_NEON <] +//#endif [> LV_HAVE_NEONV7 <] -//#ifdef LV_HAVE_NEON +//#ifdef LV_HAVE_NEONV7 //#include //#include @@ -1419,10 +1419,10 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn_u_avx2(lv_16sc //} //} -//#endif [> LV_HAVE_NEON <] +//#endif [> LV_HAVE_NEONV7 <] -//#ifdef LV_HAVE_NEON +//#ifdef LV_HAVE_NEONV7 //#include //#include @@ -1601,6 +1601,6 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn_u_avx2(lv_16sc //} //} -//#endif [> LV_HAVE_NEON <] +//#endif [> LV_HAVE_NEONV7 <] #endif /*INCLUDED_volk_gnsssdr_16ic_16i_dot_prod_16ic_xn_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h index 6880b8d11..7466ac2c2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h @@ -317,7 +317,7 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_u_avx2(lv_ //#endif // AVX2 -//#ifdef LV_HAVE_NEON +//#ifdef LV_HAVE_NEONV7 //static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) //{ //// phases must be normalized. Phase rotator expects a complex exponential input! @@ -348,7 +348,7 @@ static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_u_avx2(lv_ //#endif // NEON -//#ifdef LV_HAVE_NEON +//#ifdef LV_HAVE_NEONV7 //static inline void volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic_neon_vma(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) //{ //// phases must be normalized. Phase rotator expects a complex exponential input! diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h index b294d5ca9..cefef96c6 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h @@ -202,7 +202,7 @@ static inline void volk_gnsssdr_16ic_conjugate_16ic_u_avx2(lv_16sc_t* cVector, c // // -//#ifdef LV_HAVE_NEON +//#ifdef LV_HAVE_NEONV7 //#include // //static inline void volk_gnsssdr_16ic_conjugate_16ic_neon(lv_16sc_t* cVector, const lv_16sc_t* aVector, unsigned int num_points) @@ -228,6 +228,6 @@ static inline void volk_gnsssdr_16ic_conjugate_16ic_u_avx2(lv_16sc_t* cVector, c // *c++ = lv_conj(*a++); // } //} -//#endif /* LV_HAVE_NEON */ +//#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_16ic_conjugate_16ic_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h index 5d66452e0..eaaedaba5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h @@ -180,7 +180,7 @@ static inline void volk_gnsssdr_16ic_convert_32fc_a_axv(lv_32fc_t* outputVector, #endif /* LV_HAVE_AVX */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_convert_32fc_neon(lv_32fc_t* outputVector, const lv_16sc_t* inputVector, unsigned int num_points) @@ -210,6 +210,6 @@ static inline void volk_gnsssdr_16ic_convert_32fc_neon(lv_32fc_t* outputVector, _in++; } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_32fc_convert_16ic_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h index cca2efa0d..d2f43e708 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h @@ -256,7 +256,7 @@ static inline void volk_gnsssdr_16ic_resampler_fast_16ic_u_sse2(lv_16sc_t* resul #endif /* LV_HAVE_SSE2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_resampler_fast_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, float rem_code_phase_chips, float code_phase_step_chips, int code_length_chips, unsigned int num_output_samples) //, int* scratch_buffer, float* scratch_buffer_float) @@ -342,6 +342,6 @@ static inline void volk_gnsssdr_16ic_resampler_fast_16ic_neon(lv_16sc_t* result, } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /*INCLUDED_volk_gnsssdr_16ic_resampler_fast_16ic_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h index 038e70108..03032e01d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h @@ -72,7 +72,7 @@ static inline void volk_gnsssdr_16ic_resamplerfastpuppet_16ic_u_sse2(lv_16sc_t* #endif /* LV_HAVE_SSE2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_resamplerfastpuppet_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points) { @@ -82,6 +82,6 @@ static inline void volk_gnsssdr_16ic_resamplerfastpuppet_16ic_neon(lv_16sc_t* re volk_gnsssdr_16ic_resampler_fast_16ic_neon(result, local_code, rem_code_phase_chips, code_phase_step_chips, code_length_chips, num_points); } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif // INCLUDED_volk_gnsssdr_16ic_resamplerfastpuppet_16ic_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h index 934af8e88..9eff06510 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h @@ -128,7 +128,7 @@ static inline void volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic_u_sse2(lv_16sc_t #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points) { float code_phase_step_chips = 0.1; diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h index 4582d6961..8ca8e7e33 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h @@ -250,7 +250,7 @@ static inline void volk_gnsssdr_16ic_resamplerxnpuppet_16ic_a_avx(lv_16sc_t* res #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_resamplerxnpuppet_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, unsigned int num_points) { int code_length_chips = 2046; diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h index 245eed773..0438931e0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h @@ -137,7 +137,7 @@ static inline void volk_gnsssdr_16ic_rotatorpuppet_16ic_u_sse3_reload(lv_16sc_t* #endif /* LV_HAVE_SSE3 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_rotatorpuppet_16ic_neon(lv_16sc_t* outVector, const lv_16sc_t* inVector, unsigned int num_points) { // phases must be normalized. Phase rotator expects a complex exponential input! @@ -150,10 +150,10 @@ static inline void volk_gnsssdr_16ic_rotatorpuppet_16ic_neon(lv_16sc_t* outVecto volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_neon(outVector, inVector, phase_inc[0], phase, num_points); } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_rotatorpuppet_16ic_neon_reload(lv_16sc_t* outVector, const lv_16sc_t* inVector, unsigned int num_points) { // phases must be normalized. Phase rotator expects a complex exponential input! @@ -166,7 +166,7 @@ static inline void volk_gnsssdr_16ic_rotatorpuppet_16ic_neon_reload(lv_16sc_t* o volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_neon_reload(outVector, inVector, phase_inc[0], phase, num_points); } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_16ic_rotatorpuppet_16ic_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h index 0de39ebc3..b43a5d95e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h @@ -645,7 +645,7 @@ static inline void volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_u_sse3_reload(lv_16sc #endif /* LV_HAVE_SSE3 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_neon(lv_16sc_t* outVector, const lv_16sc_t* inVector, const lv_32fc_t phase_inc, lv_32fc_t* phase, unsigned int num_points) @@ -778,10 +778,10 @@ static inline void volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_neon(lv_16sc_t* outVe } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_neon_reload(lv_16sc_t* outVector, const lv_16sc_t* inVector, const lv_32fc_t phase_inc, lv_32fc_t* phase, unsigned int num_points) @@ -972,6 +972,6 @@ static inline void volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_neon_reload(lv_16sc_t } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_16ic_s32fc_x2_rotator_16ic_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h index ccf815d56..d7563e1f5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h @@ -393,7 +393,7 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_a_axv2(lv_16sc_t* out, con #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_neon(lv_16sc_t* out, const lv_16sc_t* in_a, const lv_16sc_t* in_b, unsigned int num_points) @@ -462,10 +462,10 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_neon(lv_16sc_t* out, const } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_neon_vma(lv_16sc_t* out, const lv_16sc_t* in_a, const lv_16sc_t* in_b, unsigned int num_points) @@ -515,10 +515,10 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_neon_vma(lv_16sc_t* out, c } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_neon_optvma(lv_16sc_t* out, const lv_16sc_t* in_a, const lv_16sc_t* in_b, unsigned int num_points) @@ -569,6 +569,6 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_neon_optvma(lv_16sc_t* out } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /*INCLUDED_volk_gnsssdr_16ic_x2_dot_prod_16ic_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h index 065fc75a8..5410222d0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h @@ -489,7 +489,7 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_u_avx2(lv_16sc_t* resul #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_neon(lv_16sc_t* result, const lv_16sc_t* in_common, const lv_16sc_t** in_a, int num_a_vectors, unsigned int num_points) @@ -575,10 +575,10 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_neon(lv_16sc_t* result, } } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_neon_vma(lv_16sc_t* result, const lv_16sc_t* in_common, const lv_16sc_t** in_a, int num_a_vectors, unsigned int num_points) @@ -653,10 +653,10 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_neon_vma(lv_16sc_t* res } } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_neon_optvma(lv_16sc_t* result, const lv_16sc_t* in_common, const lv_16sc_t** in_a, int num_a_vectors, unsigned int num_points) @@ -736,6 +736,6 @@ static inline void volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_neon_optvma(lv_16sc_t* } } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /*INCLUDED_volk_gnsssdr_16ic_xn_dot_prod_16ic_xn_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h index ad2ec4a77..9faf03be6 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h @@ -188,7 +188,7 @@ static inline void volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic_u_avx2(lv_16sc_t* r #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) { @@ -213,7 +213,7 @@ static inline void volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic_neon(lv_16sc_t* res #endif // NEON -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic_neon_vma(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) { @@ -237,7 +237,7 @@ static inline void volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic_neon_vma(lv_16sc_t* #endif // NEON -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic_neon_optvma(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) { diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h index 9548f8954..29d4f5465 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h @@ -292,7 +292,7 @@ static inline void volk_gnsssdr_16ic_x2_multiply_16ic_a_avx2(lv_16sc_t* out, con #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_multiply_16ic_neon(lv_16sc_t* out, const lv_16sc_t* in_a, const lv_16sc_t* in_b, unsigned int num_points) @@ -338,6 +338,6 @@ static inline void volk_gnsssdr_16ic_x2_multiply_16ic_neon(lv_16sc_t* out, const *out++ = (*a_ptr++) * (*b_ptr++); } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7*/ #endif /*INCLUDED_volk_gnsssdr_16ic_x2_multiply_16ic_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h index 60b5b7b38..44444efd5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h @@ -1300,7 +1300,7 @@ static inline void volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn_a_avx2_reload(l #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn_neon(lv_16sc_t* result, const lv_16sc_t* in_common, const lv_32fc_t phase_inc, lv_32fc_t* phase, const lv_16sc_t** in_a, int num_a_vectors, unsigned int num_points) @@ -1486,10 +1486,10 @@ static inline void volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn_neon(lv_16sc_t* } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include #include @@ -1683,10 +1683,10 @@ static inline void volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn_neon_vma(lv_16s } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include #include @@ -1872,6 +1872,6 @@ static inline void volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn_neon_optvma(lv_ } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /*INCLUDED_volk_gnsssdr_16ic_x2_dot_prod_16ic_xn_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h index 9b30bdbbd..8196c09a6 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h @@ -317,7 +317,7 @@ static inline void volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic_u_avx2_relo #endif // AVX2 -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic_neon(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) { // phases must be normalized. Phase rotator expects a complex exponential input! @@ -348,7 +348,7 @@ static inline void volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic_neon(lv_16s #endif // NEON -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic_neon_vma(lv_16sc_t* result, const lv_16sc_t* local_code, const lv_16sc_t* in, unsigned int num_points) { // phases must be normalized. Phase rotator expects a complex exponential input! diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h index 661f4ace9..64eeb6d4a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h @@ -525,7 +525,7 @@ static inline void volk_gnsssdr_16ic_xn_resampler_16ic_xn_u_avx(lv_16sc_t** resu #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_xn_resampler_16ic_xn_neon(lv_16sc_t** result, const lv_16sc_t* local_code, float rem_code_phase_chips, float code_phase_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points) { diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h index 112c213df..68b75f813 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h @@ -285,7 +285,7 @@ static inline void volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn_u_sse2(lv_16sc_t* #endif /* LV_HAVE_SSE2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn_neon(lv_16sc_t** result, const lv_16sc_t* local_code, float* rem_code_phase_chips, float code_phase_step_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_output_samples) @@ -384,6 +384,6 @@ static inline void volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn_neon(lv_16sc_t** } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /*INCLUDED_volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h index ace8271ea..af22131f1 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h @@ -481,7 +481,7 @@ static inline void volk_gnsssdr_32f_index_max_32u_generic(uint32_t* target, cons #endif /*LV_HAVE_GENERIC*/ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_32f_index_max_32u_neon(uint32_t* target, const float* src0, uint32_t num_points) @@ -546,6 +546,6 @@ static inline void volk_gnsssdr_32f_index_max_32u_neon(uint32_t* target, const f } } -#endif /*LV_HAVE_NEON*/ +#endif /*LV_HAVE_NEONV7*/ #endif /*INCLUDED_volk_gnsssdr_32f_index_max_32u_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h index b425ecb9b..b27579ff3 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h @@ -246,7 +246,7 @@ static inline void volk_gnsssdr_32f_resamplerxnpuppet_32f_u_avx(float* result, c } #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_32f_resamplerxnpuppet_32f_neon(float* result, const float* local_code, unsigned int num_points) { int code_length_chips = 2046; diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_sincos_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_sincos_32fc.h index b067c5f3d..8936901b0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_sincos_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_sincos_32fc.h @@ -642,7 +642,7 @@ static inline void volk_gnsssdr_32f_sincos_32fc_generic_fxpt(lv_32fc_t* out, con #endif /* LV_HAVE_GENERIC */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include /* Adapted from http://gruntthepeon.free.fr/ssemath/neon_mathfun.h, original code from Julien Pommier */ /* Based on algorithms from the cephes library http://www.netlib.org/cephes/ */ @@ -747,7 +747,7 @@ static inline void volk_gnsssdr_32f_sincos_32fc_neon(lv_32fc_t* out, const float } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_32f_sincos_32fc_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h index f130032ea..ef009d1cf 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h @@ -527,7 +527,7 @@ static inline void volk_gnsssdr_32f_xn_resampler_32f_xn_u_avx(float** result, co #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_32f_xn_resampler_32f_xn_neon(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h index 892a7c0e8..afb79afcc 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h @@ -386,7 +386,7 @@ static inline void volk_gnsssdr_32fc_convert_16ic_a_avx2(lv_16sc_t* outputVector #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_32fc_convert_16ic_neon(lv_16sc_t* outputVector, const lv_32fc_t* inputVector, unsigned int num_points) @@ -450,7 +450,7 @@ static inline void volk_gnsssdr_32fc_convert_16ic_neon(lv_16sc_t* outputVector, } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #ifdef LV_HAVE_GENERIC diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h index ab8d32e32..82bc4940e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h @@ -373,7 +373,7 @@ static inline void volk_gnsssdr_32fc_convert_8ic_a_sse2(lv_8sc_t* outputVector, #endif /* LV_HAVE_SSE2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_32fc_convert_8ic_neon(lv_8sc_t* outputVector, const lv_32fc_t* inputVector, unsigned int num_points) @@ -464,6 +464,6 @@ static inline void volk_gnsssdr_32fc_convert_8ic_neon(lv_8sc_t* outputVector, co } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_32fc_convert_8ic_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h index 1655b5ccd..598e3b821 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h @@ -306,7 +306,7 @@ static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_u_avx2(lv_32fc_t* re #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_32fc_resamplerxnpuppet_32fc_neon(lv_32fc_t* result, const lv_32fc_t* local_code, unsigned int num_points) { int code_length_chips = 2046; diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h index c3c77233a..257ae2900 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h @@ -647,7 +647,7 @@ static inline void volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn_a_avx(lv_32fc_t #endif /* LV_HAVE_AVX */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn_neon(lv_32fc_t* result, const lv_32fc_t* in_common, const lv_32fc_t phase_inc, lv_32fc_t* phase, const lv_32fc_t** in_a, int num_a_vectors, unsigned int num_points) @@ -800,6 +800,6 @@ static inline void volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn_neon(lv_32fc_t* (*phase) = _phase; } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h index 846539fc9..9bbe75662 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h @@ -220,7 +220,7 @@ static inline void volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc_a_avx(lv_32 #endif // AVX -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc_neon(lv_32fc_t* result, const lv_32fc_t* local_code, const lv_32fc_t* in, unsigned int num_points) { // phases must be normalized. Phase rotator expects a complex exponential input! diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h index 3e6227a17..aaa43fec7 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h @@ -682,7 +682,7 @@ static inline void volk_gnsssdr_32fc_xn_resampler_32fc_xn_a_avx2(lv_32fc_t** res #endif -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_32fc_xn_resampler_32fc_xn_neon(lv_32fc_t** result, const lv_32fc_t* local_code, float rem_code_phase_chips, float code_phase_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h index 177b1114d..814788d61 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h @@ -348,7 +348,7 @@ static inline void volk_gnsssdr_8ic_conjugate_8ic_u_orc(lv_8sc_t* cVector, const #endif /* LV_HAVE_ORC */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_8ic_conjugate_8ic_neon(lv_8sc_t* cVector, const lv_8sc_t* aVector, unsigned int num_points) @@ -374,6 +374,6 @@ static inline void volk_gnsssdr_8ic_conjugate_8ic_neon(lv_8sc_t* cVector, const *c++ = lv_conj(*a++); } } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_8ic_conjugate_8ic_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h index 88a689f8b..33102b385 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h @@ -436,7 +436,7 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_u_orc(lv_8sc_t* result, cons #endif /* LV_HAVE_ORC */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_neon(lv_8sc_t* result, const lv_8sc_t* in_a, const lv_8sc_t* in_b, unsigned int num_points) @@ -495,6 +495,6 @@ static inline void volk_gnsssdr_8ic_x2_dot_prod_8ic_neon(lv_8sc_t* result, const *result += dotProduct; } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /*INCLUDED_volk_gnsssdr_8ic_x2_dot_prod_8ic_H*/ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincos_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincos_32fc.h index d6d58e4d0..50ac028d0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincos_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincos_32fc.h @@ -833,7 +833,7 @@ static inline void volk_gnsssdr_s32f_sincos_32fc_u_avx2(lv_32fc_t *out, const fl #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 #include /* Adapted from http://gruntthepeon.free.fr/ssemath/neon_mathfun.h, original code from Julien Pommier */ /* Based on algorithms from the cephes library http://www.netlib.org/cephes/ */ @@ -948,6 +948,6 @@ static inline void volk_gnsssdr_s32f_sincos_32fc_neon(lv_32fc_t *out, const floa (*phase) = _phase; } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_s32f_sincos_32fc_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h index e4f7c942f..9b1595e9d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h @@ -103,13 +103,13 @@ static inline void volk_gnsssdr_s32f_sincospuppet_32fc_u_avx2(lv_32fc_t* out, co #endif /* LV_HAVE_AVX2 */ -#ifdef LV_HAVE_NEON +#ifdef LV_HAVE_NEONV7 static inline void volk_gnsssdr_s32f_sincospuppet_32fc_neon(lv_32fc_t* out, const float phase_inc, unsigned int num_points) { float phase[1]; phase[0] = 3; volk_gnsssdr_s32f_sincos_32fc_neon(out, phase_inc, phase, num_points); } -#endif /* LV_HAVE_NEON */ +#endif /* LV_HAVE_NEONV7 */ #endif /* INCLUDED_volk_gnsssdr_s32f_sincospuppet_32fc_H */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt index bf0bdd3a2..c6bf3c949 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt @@ -256,6 +256,36 @@ if(NOT CPU_IS_x86) OVERRULE_ARCH(avx "Architecture is not x86 or x86_64") endif(NOT CPU_IS_x86) +######################################################################## +# Select neon based on ARM ISA version +######################################################################## + +# First, compile a test program to see if compiler supports neon. + +include(CheckCSourceCompiles) + +check_c_source_compiles("#include \nint main(){ uint8_t *dest; uint8x8_t res; vst1_u8(dest, res); }" + neon_compile_result) + +if(neon_compile_result) + check_c_source_compiles("int main(){asm volatile(\"vrev32.8 q0, q0\");}" + have_neonv7_result ) + check_c_source_compiles("int main(){asm volatile(\"sub v1.4s,v1.4s,v1.4s\");}" + have_neonv8_result ) + + if (have_neonv7_result) + OVERRULE_ARCH(neonv8 "CPU is armv7") + endif() + + if (have_neonv8_result) + OVERRULE_ARCH(neonv7 "CPU is armv8") + endif() +else(neon_compile_result) + OVERRULE_ARCH(neon "Compiler doesn't support NEON") + OVERRULE_ARCH(neonv7 "Compiler doesn't support NEON") + OVERRULE_ARCH(neonv8 "Compiler doesn't support NEON") +endif(neon_compile_result) + ######################################################################## # implement overruling in the ORC case, # since ORC always passes flag detection @@ -423,7 +453,7 @@ include_directories( # on by default, but let users turn it off ######################################################################## if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") - set(ASM_ARCHS_AVAILABLE "neon") + set(ASM_ARCHS_AVAILABLE "neonv7" "neonv8") set(FULL_C_FLAGS "${CMAKE_C_FLAGS}" "${CMAKE_CXX_COMPILER_ARG1}") @@ -432,7 +462,7 @@ if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") # set up the assembler flags and include the source files foreach(ARCH ${ASM_ARCHS_AVAILABLE}) string(REGEX MATCH "${ARCH}" ASM_ARCH "${available_archs}") - if( ASM_ARCH STREQUAL "neon" ) + if( ASM_ARCH STREQUAL "neonv7" ) message(STATUS "---- Adding ASM files") # we always use ATT syntax message(STATUS "-- Detected neon architecture; enabling ASM") # setup architecture specific assembler flags diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c index f04f2d9ff..d690bc993 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c @@ -128,12 +128,12 @@ static inline unsigned int get_avx2_enabled(void) #include #include #include -#define VOLK_CPU_ARM +#define VOLK_CPU_ARMV7 #endif -static int has_neon(void) +static int has_neonv7(void) { -#if defined(VOLK_CPU_ARM) +#if defined(VOLK_CPU_ARMV7) FILE *auxvec_f; unsigned long auxvec[2]; unsigned int found_neon = 0; @@ -156,6 +156,53 @@ static int has_neon(void) return 0; #endif } + +//\todo: Fix this to really check for neon on aarch64 +//neon detection is linux specific +#if defined(__aarch64__) && defined(__linux__) +#include +#include +#include +#define VOLK_CPU_ARMV8 +#endif + +static int has_neonv8(void) +{ +#if defined(VOLK_CPU_ARMV8) + FILE *auxvec_f; + unsigned long auxvec[2]; + unsigned int found_neon = 0; + auxvec_f = fopen("/proc/self/auxv", "rb"); + if (!auxvec_f) return 0; + + size_t r = 1; + //so auxv is basically 32b of ID and 32b of value + //so it goes like this + while (!found_neon && r) + { + r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f); + if ((auxvec[0] == AT_HWCAP) && (auxvec[1] & HWCAP_ASIMD)) + found_neon = 1; + } + + fclose(auxvec_f); + return found_neon; +#else + return 0; +#endif +} + +static int has_neon(void) +{ +#if defined(VOLK_CPU_ARMV8) || defined(VOLK_CPU_ARMV7) + if (has_neonv7() || has_neonv8()) + return 1; + else + return 0; +#else + return 0; +#endif +} // clang-format off %for arch in archs: From 01429132bd581500b2875d9c070a21add4d7da4d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 02:51:50 +0200 Subject: [PATCH 023/108] Avoid clash of redefined macros with Volk --- .../acquisition/gnuradio_blocks/pcps_acquisition.cc | 2 +- src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h | 2 +- .../volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h | 4 ++-- .../glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc | 1 - .../gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h | 2 +- .../glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc | 1 - .../gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h | 2 +- .../gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc | 1 - .../gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc | 1 - .../gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h | 2 +- .../gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc | 1 - .../gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h | 2 +- 12 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc index 62e55dd31..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 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/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h index 4159bdef7..84be60772 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h @@ -21,9 +21,9 @@ // clang-format off %for i, arch in enumerate(archs): -//#ifndef LV_${arch.name.upper()} +#ifndef LV_${arch.name.upper()} #define LV_${arch.name.upper()} ${i} -//#endif +#endif %endfor // clang-format on #endif /*INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED*/ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc index c7540b169..1f429eee3 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -49,7 +49,6 @@ #include #include #include -#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h index 8a26c0e73..11ed0e145 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc index 9b653dfa8..b8bd3de86 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc @@ -47,7 +47,6 @@ #include #include #include -#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h index 6ee493185..38cf9d8b9 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h @@ -45,7 +45,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc index ee5843ee9..295f894d6 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc index 14d5683c8..5f9a6ec23 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.cc @@ -42,7 +42,6 @@ #include #include #include -#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h index fd6630eef..1bd8bb0c1 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_fpga_sc.h @@ -46,7 +46,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc index 37898c14c..fdfd0c04d 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -40,7 +40,6 @@ #include #include #include -#include #include #include #include diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h index ec68aed0f..0e690f74f 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h @@ -45,7 +45,7 @@ #include #include #include -#include +#include #include #include #include From e74b72b9dff6094da56997a0f4d1ed6ff4bc4617 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 04:16:56 +0200 Subject: [PATCH 024/108] Reorder includes --- .../gps_l1_ca_dll_pll_tracking_gpu_cc.cc | 15 ++++++------- .../gps_l1_ca_dll_pll_tracking_gpu_cc.h | 11 +++++----- .../gps_l1_ca_tcp_connector_tracking_cc.cc | 22 +++++++++---------- .../gps_l1_ca_tcp_connector_tracking_cc.h | 8 +++---- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc index f39448ce3..e1f0c31c3 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc @@ -29,21 +29,20 @@ */ #include "gps_l1_ca_dll_pll_tracking_gpu_cc.h" -#include -#include -#include -#include -#include -#include -#include #include "gps_sdr_signal_processing.h" #include "tracking_discriminators.h" #include "lock_detectors.h" #include "GPS_L1_CA.h" #include "control_message_factory.h" #include "gnss_sdr_flags.h" -// includes +#include #include +#include +#include +#include +#include +#include +#include using google::LogMessage; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h index 2743f5c99..be8959f49 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h @@ -36,14 +36,15 @@ #ifndef GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_GPU_CC_H #define GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_GPU_CC_H -#include -#include -#include -#include +#include "cuda_multicorrelator.h" #include "gnss_synchro.h" #include "tracking_2nd_DLL_filter.h" #include "tracking_FLL_PLL_filter.h" -#include "cuda_multicorrelator.h" +#include +#include +#include +#include + class Gps_L1_Ca_Dll_Pll_Tracking_GPU_cc; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc index 1eb6e960a..a650238cc 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc @@ -36,22 +36,22 @@ */ #include "gps_l1_ca_tcp_connector_tracking_cc.h" -#include -#include -#include +#include "control_message_factory.h" +#include "gnss_sdr_flags.h" +#include "gps_sdr_signal_processing.h" +#include "GPS_L1_CA.h" +#include "lock_detectors.h" +#include "tcp_communication.h" +#include "tcp_packet_data.h" +#include "tracking_discriminators.h" #include #include #include #include #include -#include "gps_sdr_signal_processing.h" -#include "tracking_discriminators.h" -#include "lock_detectors.h" -#include "GPS_L1_CA.h" -#include "control_message_factory.h" -#include "gnss_sdr_flags.h" -#include "tcp_communication.h" -#include "tcp_packet_data.h" +#include +#include +#include using google::LogMessage; diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h index 89140e4b6..21bf6f02c 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h @@ -37,13 +37,13 @@ #ifndef GNSS_SDR_GPS_L1_CA_TCP_CONNECTOR_TRACKING_CC_H #define GNSS_SDR_GPS_L1_CA_TCP_CONNECTOR_TRACKING_CC_H +#include "cpu_multicorrelator.h" +#include "gnss_synchro.h" +#include "tcp_communication.h" +#include #include #include #include -#include -#include "gnss_synchro.h" -#include "cpu_multicorrelator.h" -#include "tcp_communication.h" class Gps_L1_Ca_Tcp_Connector_Tracking_cc; From 471bb17b3cfa8d7cd22ff9b24e284d903a23a807 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 10:23:19 +0200 Subject: [PATCH 025/108] Improve readability --- src/algorithms/channel/libs/channel_fsm.cc | 9 +++++++++ .../channel/libs/channel_msg_receiver_cc.cc | 5 +++-- .../adapters/array_signal_conditioner.cc | 15 +++++++++------ .../conditioner/adapters/signal_conditioner.cc | 16 ++++++++++------ 4 files changed, 31 insertions(+), 14 deletions(-) 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(); From 223d6a357b40f0d7f21d2cc0a6ac1eb4748e08e1 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 12:02:40 +0200 Subject: [PATCH 026/108] Add header --- cmake/Modules/FindGFORTRAN.cmake | 16 ++++++++++++ cmake/Modules/FindGFlags.cmake | 25 +++++++++++++------ cmake/Modules/FindGLOG.cmake | 17 +++++++++++++ cmake/Modules/FindGPSTK.cmake | 17 +++++++++++++ cmake/Modules/FindGnuradio.cmake | 17 +++++++++++++ cmake/Modules/FindGperftools.cmake | 17 +++++++++++++ cmake/Modules/FindGrDbfcttc.cmake | 17 +++++++++++++ cmake/Modules/FindGrGN3S.cmake | 17 +++++++++++++ cmake/Modules/FindGrOsmoSDR.cmake | 17 +++++++++++++ cmake/Modules/FindLibOsmoSDR.cmake | 17 +++++++++++++ cmake/Modules/FindLog4cpp.cmake | 17 +++++++++++++ cmake/Modules/FindMATIO.cmake | 17 +++++++++++++ cmake/Modules/FindORC.cmake | 17 +++++++++++++ cmake/Modules/FindOpenBLAS.cmake | 17 +++++++++++++ cmake/Modules/FindOpenCL.cmake | 17 +++++++++++++ cmake/Modules/FindTeleorbit.cmake | 17 +++++++++++++ cmake/Modules/FindUHD.cmake | 17 +++++++++++++ cmake/Modules/FindVolk.cmake | 17 +++++++++++++ cmake/Modules/FindVolkGnssSdr.cmake | 17 +++++++++++++ cmake/Modules/Findiio.cmake | 17 +++++++++++++ cmake/Modules/Findlibiio.cmake | 17 +++++++++++++ cmake/Modules/SetupPython.cmake | 17 +++++++++++++ cmake/Modules/TestForARM.cmake | 17 +++++++++++++ cmake/Modules/TestForSSE.cmake | 18 +++++++++++++ cmake/Toolchains/oe-sdk_cross.cmake | 17 +++++++++++++ cmake/Toolchains/zynq-7000.cmake | 19 +++++++++++++- cmake/cmake_uninstall.cmake.in | 19 +++++++++++++- .../volk_gnsssdr/cmake/Modules/FindORC.cmake | 21 +++++++++++++--- .../cmake/Modules/VolkAddTest.cmake | 24 ++++++++---------- .../cmake/Modules/VolkBoost.cmake | 16 ++++++------ .../cmake/Modules/VolkBuildTypes.cmake | 16 ++++++------ .../cmake/Modules/VolkGnsssdrConfig.cmake.in | 17 +++++++++++++ .../Modules/VolkGnsssdrConfigVersion.cmake.in | 16 ++++++------ .../cmake/Modules/VolkPython.cmake | 16 ++++++------ .../cmake/Modules/VolkVersion.cmake | 16 ++++++------ .../arm_cortex_a15_hardfp_native.cmake | 17 +++++++++++++ .../arm_cortex_a9_hardfp_native.cmake | 17 +++++++++++++ .../cmake/cmake_uninstall.cmake.in | 18 +++++++++++++ .../volk_gnsssdr/cmake/msvc/config.h | 19 ++++++++++++++ 39 files changed, 613 insertions(+), 71 deletions(-) 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 fc7af0d45..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) diff --git a/cmake/Modules/Findlibiio.cmake b/cmake/Modules/Findlibiio.cmake index 334dcf8d7..9b39f82e3 100644 --- a/cmake/Modules/Findlibiio.cmake +++ b/cmake/Modules/Findlibiio.cmake @@ -1,3 +1,20 @@ +# Copyright (C) 2011-2018 (see AUTHORS file for a list of contributors) +# +# This file is part of GNSS-SDR. +# +# GNSS-SDR is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GNSS-SDR is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNSS-SDR. If not, see . + INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(PC_LIBIIO libiio) diff --git a/cmake/Modules/SetupPython.cmake b/cmake/Modules/SetupPython.cmake index d3c2b3a12..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/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 ea6b82ba1..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() 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 index 274e63aea..850220b28 100644 --- 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 @@ -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 building native on a ARM Cortex A8 w/ NEON # Usage: cmake -DCMAKE_TOOLCHAIN_FILE= 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 index b8302c872..b4b79185e 100644 --- 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 @@ -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 building native on a ARM Cortex A8 w/ NEON # Usage: cmake -DCMAKE_TOOLCHAIN_FILE= diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in index 2c34c8199..7719dec23 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in @@ -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 . + + 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") diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h index 5da8f1bff..5b3c7f8f4 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2010-2015 (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 . + */ + #ifndef _MSC_VER // [ #error "Use this header only with Microsoft Visual C++ compilers!" #endif // _MSC_VER ] From a2eb5d534406652edc153c713e9a3175a52e10db Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 13:26:21 +0200 Subject: [PATCH 027/108] Improve readability, reorder includes --- ...o_e5a_noncoherent_iq_acquisition_caf_cc.cc | 16 ++++--- .../pcps_opencl_acquisition_cc.cc | 31 ++++++++----- .../pcps_opencl_acquisition_cc.h | 10 ++--- .../input_filter/gnuradio_blocks/notch_cc.cc | 12 +++-- .../gnuradio_blocks/notch_lite_cc.cc | 15 +++++-- .../gnuradio_blocks/pulse_blanking_cc.cc | 11 +++-- .../direct_resampler_conditioner_cb.cc | 15 ++++--- .../direct_resampler_conditioner_cc.cc | 8 +++- .../direct_resampler_conditioner_cs.cc | 14 +++--- .../gnuradio_blocks/signal_generator_c.cc | 45 +++++++++++-------- .../gnuradio_blocks/labsat23_source.cc | 10 ++--- 11 files changed, 118 insertions(+), 69 deletions(-) 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/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/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/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc index 9a053b46d..f51a9d45c 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc @@ -49,13 +49,14 @@ direct_resampler_conditioner_cb_sptr direct_resampler_make_conditioner_cb( direct_resampler_conditioner_cb::direct_resampler_conditioner_cb( - double sample_freq_in, double sample_freq_out) : gr::block("direct_resampler_make_conditioner_cb", gr::io_signature::make(1, 1, sizeof(lv_8sc_t)), gr::io_signature::make(1, 1, sizeof(lv_8sc_t))), - d_sample_freq_in(sample_freq_in), - d_sample_freq_out( - sample_freq_out), - d_phase(0), - d_lphase(0), - d_history(1) + double sample_freq_in, + double sample_freq_out) : gr::block("direct_resampler_make_conditioner_cb", gr::io_signature::make(1, 1, sizeof(lv_8sc_t)), gr::io_signature::make(1, 1, sizeof(lv_8sc_t))), + d_sample_freq_in(sample_freq_in), + d_sample_freq_out( + sample_freq_out), + d_phase(0), + d_lphase(0), + d_history(1) { const double two_32 = 4294967296.0; // Computes the phase step multiplying the resampling ratio by 2^32 = 4294967296 diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc index b238a7c0d..b7eb65691 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc @@ -49,7 +49,13 @@ direct_resampler_conditioner_cc_sptr direct_resampler_make_conditioner_cc( direct_resampler_conditioner_cc::direct_resampler_conditioner_cc( - double sample_freq_in, double sample_freq_out) : gr::block("direct_resampler_conditioner_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)), gr::io_signature::make(1, 1, sizeof(gr_complex))), d_sample_freq_in(sample_freq_in), d_sample_freq_out(sample_freq_out), d_phase(0), d_lphase(0), d_history(1) + double sample_freq_in, + double sample_freq_out) : gr::block("direct_resampler_conditioner_cc", gr::io_signature::make(1, 1, sizeof(gr_complex)), gr::io_signature::make(1, 1, sizeof(gr_complex))), + d_sample_freq_in(sample_freq_in), + d_sample_freq_out(sample_freq_out), + d_phase(0), + d_lphase(0), + d_history(1) { // Computes the phase step multiplying the resampling ratio by 2^32 = 4294967296 const double two_32 = 4294967296.0; diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc index 8e7f32d80..32eb06241 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc @@ -48,13 +48,13 @@ direct_resampler_conditioner_cs_sptr direct_resampler_make_conditioner_cs( direct_resampler_conditioner_cs::direct_resampler_conditioner_cs( - double sample_freq_in, double sample_freq_out) : gr::block("direct_resampler_make_conditioner_cs", gr::io_signature::make(1, 1, sizeof(lv_16sc_t)), gr::io_signature::make(1, 1, sizeof(lv_16sc_t))), - d_sample_freq_in(sample_freq_in), - d_sample_freq_out( - sample_freq_out), - d_phase(0), - d_lphase(0), - d_history(1) + double sample_freq_in, + double sample_freq_out) : gr::block("direct_resampler_make_conditioner_cs", gr::io_signature::make(1, 1, sizeof(lv_16sc_t)), gr::io_signature::make(1, 1, sizeof(lv_16sc_t))), + d_sample_freq_in(sample_freq_in), + d_sample_freq_out(sample_freq_out), + d_phase(0), + d_lphase(0), + d_history(1) { const double two_32 = 4294967296.0; // Computes the phase step multiplying the resampling ratio by 2^32 = 4294967296 diff --git a/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc b/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc index bfb1eb48a..848059434 100644 --- a/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc +++ b/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc @@ -56,32 +56,41 @@ signal_make_generator_c(std::vector signal1, std::vector signal1, std::vector system, const std::vector &PRN, - const std::vector &CN0_dB, const std::vector &doppler_Hz, - const std::vector &delay_chips, const std::vector &delay_sec, bool data_flag, bool noise_flag, - unsigned int fs_in, unsigned int vector_length, float BW_BB) : gr::block("signal_gen_cc", gr::io_signature::make(0, 0, sizeof(gr_complex)), - gr::io_signature::make(1, 1, sizeof(gr_complex) * vector_length)), - signal_(signal1), - system_(system), - PRN_(PRN), - CN0_dB_(CN0_dB), - doppler_Hz_(doppler_Hz), - delay_chips_(delay_chips), - delay_sec_(delay_sec), - data_flag_(data_flag), - noise_flag_(noise_flag), - fs_in_(fs_in), - num_sats_(PRN.size()), - vector_length_(vector_length), - BW_BB_(BW_BB * static_cast(fs_in) / 2.0) +signal_generator_c::signal_generator_c(std::vector signal1, + std::vector system, + const std::vector &PRN, + const std::vector &CN0_dB, + const std::vector &doppler_Hz, + const std::vector &delay_chips, + const std::vector &delay_sec, + bool data_flag, + bool noise_flag, + unsigned int fs_in, + unsigned int vector_length, + float BW_BB) : gr::block("signal_gen_cc", gr::io_signature::make(0, 0, sizeof(gr_complex)), gr::io_signature::make(1, 1, sizeof(gr_complex) * vector_length)), + signal_(signal1), + system_(system), + PRN_(PRN), + CN0_dB_(CN0_dB), + doppler_Hz_(doppler_Hz), + delay_chips_(delay_chips), + delay_sec_(delay_sec), + data_flag_(data_flag), + noise_flag_(noise_flag), + fs_in_(fs_in), + num_sats_(PRN.size()), + vector_length_(vector_length), + BW_BB_(BW_BB * static_cast(fs_in) / 2.0) { init(); generate_codes(); } + void signal_generator_c::init() { work_counter_ = 0; diff --git a/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc b/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc index 118734dde..634b79cff 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc @@ -6,9 +6,6 @@ * ------------------------------------------------------------------------- * * Copyright (C) 2010-2018 (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 @@ -52,9 +49,10 @@ std::string labsat23_source::generate_filename() } -labsat23_source::labsat23_source(const char *signal_file_basename, int channel_selector) : gr::block("labsat23_source", - gr::io_signature::make(0, 0, 0), - gr::io_signature::make(1, 1, sizeof(gr_complex))) +labsat23_source::labsat23_source(const char *signal_file_basename, + int channel_selector) : gr::block("labsat23_source", + gr::io_signature::make(0, 0, 0), + gr::io_signature::make(1, 1, sizeof(gr_complex))) { if (channel_selector < 1 or channel_selector > 2) { From 7832c4f1e56e7a1ef8ea499eb40aa91eb6638d5d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 18:19:57 +0200 Subject: [PATCH 028/108] Update Armadillo version to 8.500.0 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 From 627848458eb3ec65a15184b6b5adf61b3f41f03f Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 29 Apr 2018 19:23:46 +0200 Subject: [PATCH 029/108] Remove unused variable --- src/core/receiver/gnss_flowgraph.cc | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index 3303d15b6..532aaaf15 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -772,15 +772,6 @@ void GNSSFlowgraph::set_signals_list() // Set a sequential list of GNSS satellites std::set::const_iterator available_gnss_prn_iter; - // Read GNSS systems and signals - unsigned int total_channels = configuration_->property("Channels_1C.count", 0) + - configuration_->property("Channels_1B.count", 0) + - configuration_->property("Channels_1G.count", 0) + - configuration_->property("Channels_2S.count", 0) + - configuration_->property("Channels_2G.count", 0) + - configuration_->property("Channels_5X.count", 0) + - configuration_->property("Channels_L5.count", 0); - // Create the lists of GNSS satellites std::set available_gps_prn = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, From 4433c0c6bea86801c857a7503425a88c2341388a Mon Sep 17 00:00:00 2001 From: mmajoral Date: Mon, 30 Apr 2018 11:59:56 +0200 Subject: [PATCH 030/108] Minor code cleaning. --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 40 +++++++++---------- .../gps_l1_ca_pcps_acquisition_fpga.h | 9 +---- .../gnuradio_blocks/pcps_acquisition_fpga.cc | 13 +++--- .../gnuradio_blocks/pcps_acquisition_fpga.h | 7 +--- .../acquisition/libs/fpga_acquisition.cc | 37 +++++++++++------ 5 files changed, 52 insertions(+), 54 deletions(-) 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 f585fdbc0..455fac062 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,4 +1,3 @@ - /*! * \file gps_l1_ca_pcps_acquisition_fpga.cc * \brief Adapts a PCPS acquisition block to an FPGA AcquisitionInterface @@ -59,21 +58,21 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( DLOG(INFO) << "role " << role; long fs_in_deprecated = configuration_->property("GNSS-SDR.internal_fs_hz", 2048000); - fs_in_ = configuration_->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); - acq_parameters.fs_in = fs_in_; - if_ = configuration_->property(role + ".if", 0); - acq_parameters.freq = if_; + 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; acq_parameters.doppler_max = doppler_max_; - sampled_ms_ = configuration_->property(role + ".coherent_integration_time_ms", 1); - acq_parameters.sampled_ms = sampled_ms_; - code_length_ = static_cast(std::round(static_cast(fs_in_) / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS))); + 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_)); + float nbits = ceilf(log2f((float) code_length)); unsigned int nsamples_total = pow(2, nbits); - vector_length_ = nsamples_total * sampled_ms_; + 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"; @@ -85,20 +84,18 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( // 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) - // Direct FFT - gr::fft::fft_complex* fft_if = new gr::fft::fft_complex(vector_length_, true); - // allocate memory to compute all the PRNs - // and compute all the possible codes + 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 + 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++) { - gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in_, 0); // generate PRN code + 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(floor(fft_codes_padded[i].real() * (pow(2, 7) - 1) / max)), + 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.all_fft_codes = d_all_fft_codes; //acq_parameters + + acq_parameters.all_fft_codes = d_all_fft_codes_; + // temporary buffers that we can delete delete[] code; delete fft_if; @@ -144,8 +143,7 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( GpsL1CaPcpsAcquisitionFpga::~GpsL1CaPcpsAcquisitionFpga() { - //delete[] code_; - delete[] d_all_fft_codes; + delete[] d_all_fft_codes_; } 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 d65e677e7..642e9bf8e 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 @@ -37,10 +37,10 @@ #ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_ #define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_ +#include #include "acquisition_interface.h" #include "gnss_synchro.h" #include "pcps_acquisition_fpga.h" -#include class ConfigurationInterface; @@ -137,19 +137,14 @@ public: private: ConfigurationInterface* configuration_; pcps_acquisition_fpga_sptr acquisition_fpga_; - unsigned int vector_length_; - unsigned int code_length_; unsigned int channel_; unsigned int doppler_max_; unsigned int doppler_step_; - unsigned int sampled_ms_; - long fs_in_; - long if_; Gnss_Synchro* gnss_synchro_; std::string role_; unsigned int in_streams_; unsigned int out_streams_; - lv_16sc_t *d_all_fft_codes; // memory that contains all the code ffts + lv_16sc_t *d_all_fft_codes_; // memory that contains all the code ffts }; diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc index 4f21ffa7a..6a337925e 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -38,11 +38,10 @@ * ------------------------------------------------------------------------- */ -#include "pcps_acquisition_fpga.h" -#include "GPS_L1_CA.h" // for GPS_TWO_PI -#include "GLONASS_L1_L2_CA.h" // for GLONASS_TWO_PI" + #include #include +#include "pcps_acquisition_fpga.h" using google::LogMessage; @@ -175,12 +174,10 @@ void pcps_acquisition_fpga::set_active(bool active) // initialize acquisition algorithm uint32_t indext = 0; float magt = 0.0; - int effective_fft_size = d_fft_size; float fft_normalization_factor = static_cast(d_fft_size) * static_cast(d_fft_size); d_input_power = 0.0; d_mag = 0.0; - //d_well_count++; DLOG(INFO) << "Channel: " << d_channel << " , doing acquisition of satellite: " << d_gnss_synchro->System << " " << d_gnss_synchro->PRN @@ -208,9 +205,9 @@ void pcps_acquisition_fpga::set_active(bool active) { d_mag = magt; - input_power_all = d_input_power / (effective_fft_size - 1); - input_power_computed = (d_input_power - d_mag) / (effective_fft_size - 1); - d_input_power = (d_input_power - d_mag) / (effective_fft_size - 1); + 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); diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h index d140f538c..3014a278a 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h @@ -56,9 +56,10 @@ #ifndef GNSS_SDR_PCPS_ACQUISITION_FPGA_H_ #define GNSS_SDR_PCPS_ACQUISITION_FPGA_H_ -#include "gnss_synchro.h" + #include #include "fpga_acquisition.h" +#include "gnss_synchro.h" typedef struct { @@ -69,10 +70,8 @@ typedef struct long fs_in; int samples_per_ms; int samples_per_code; - std::string dump_filename; unsigned int select_queue_Fpga; std::string device_name; - unsigned int code_length; lv_16sc_t *all_fft_codes; // memory that contains all the code ffts } pcpsconf_fpga_t; @@ -118,8 +117,6 @@ private: Gnss_Synchro* d_gnss_synchro; std::shared_ptr acquisition_fpga; - - public: ~pcps_acquisition_fpga(); diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.cc b/src/algorithms/acquisition/libs/fpga_acquisition.cc index 213183ba5..82f22e050 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.cc +++ b/src/algorithms/acquisition/libs/fpga_acquisition.cc @@ -33,9 +33,6 @@ * ------------------------------------------------------------------------- */ -#include "fpga_acquisition.h" -#include "gps_sdr_signal_processing.h" - // libraries used by the GIPO #include #include @@ -46,9 +43,23 @@ // GPS L1 #include "GPS_L1_CA.h" -#define PAGE_SIZE 0x10000 -#define MAX_PHASE_STEP_RAD 0.999999999534339 // 1 - pow(2,-31); -#define TEST_REG_SANITY_CHECK 0x55AA +#include "fpga_acquisition.h" +#include "gps_sdr_signal_processing.h" + +#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() { @@ -144,14 +155,14 @@ void fpga_acquisition::fpga_configure_acquisition_local_code(lv_16sc_t fft_local unsigned int k, tmp, tmp2; unsigned int fft_data; // clear memory address counter - d_map_base[4] = 0x10000000; + 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 & 0xFF) | ((tmp2 * 256) & 0xFF00); // put together the real part and the imaginary part - fft_data = 0x0C000000 | (local_code & 0xFFFF); + 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; } } @@ -162,7 +173,7 @@ void fpga_acquisition::run_acquisition(void) int reenable = 1; write(d_fd, reinterpret_cast(&reenable), sizeof(int)); // launch the acquisition process - d_map_base[6] = 1; // writing anything to reg 6 launches the acquisition process + d_map_base[6] = LAUNCH_ACQUISITION; // writing anything to reg 6 launches the acquisition process int irq_count; ssize_t nb; @@ -201,8 +212,8 @@ void fpga_acquisition::set_phase_step(unsigned int doppler_index) { phase_step_rad_real = MAX_PHASE_STEP_RAD; } - phase_step_rad_int_temp = phase_step_rad_real * 4; // * 2^2 - phase_step_rad_int = (int32_t) (phase_step_rad_int_temp * (536870912)); // * 2^29 (in total it makes x2^31 in two steps to avoid the warnings + 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; } @@ -243,5 +254,5 @@ void fpga_acquisition::close_device() void fpga_acquisition::reset_acquisition(void) { - d_map_base[6] = 2; // writing a 2 to d_map_base[6] resets the multicorrelator + d_map_base[6] = RESET_ACQUISITION; // writing a 2 to d_map_base[6] resets the multicorrelator } From bd8133020183b8790e3221da6093b6d9ef224656 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 30 Apr 2018 19:53:20 +0200 Subject: [PATCH 031/108] Apply code formatting --- src/algorithms/libs/CMakeLists.txt | 146 ++++++------- .../signal_source/libs/CMakeLists.txt | 7 +- .../signal_source/libs/fpga_switch.cc | 17 +- .../signal_source/libs/fpga_switch.h | 9 +- .../tracking/libs/fpga_multicorrelator_8sc.cc | 143 ++++++------ .../tracking/libs/fpga_multicorrelator_8sc.h | 48 ++-- .../gps_l1_ca_dll_pll_tracking_test_fpga.cc | 206 +++++++++--------- 7 files changed, 281 insertions(+), 295 deletions(-) diff --git a/src/algorithms/libs/CMakeLists.txt b/src/algorithms/libs/CMakeLists.txt index fd34bf693..6a3924e19 100644 --- a/src/algorithms/libs/CMakeLists.txt +++ b/src/algorithms/libs/CMakeLists.txt @@ -19,81 +19,81 @@ add_subdirectory(rtklib) 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 + 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 - ) + 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 - ) + 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 + ) 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") - else(OS_IS_MACOSX) - set(OPT_LIBRARIES ${OPT_LIBRARIES} ${OPENCL_LIBRARIES}) - endif(OS_IS_MACOSX) + include_directories( ${OPENCL_INCLUDE_DIRS} ) + if(OS_IS_MACOSX) + set(OPT_LIBRARIES ${OPT_LIBRARIES} "-framework OpenCL") + else(OS_IS_MACOSX) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${OPENCL_LIBRARIES}) + endif(OS_IS_MACOSX) endif(OPENCL_FOUND) add_definitions(-DGNSSSDR_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}") @@ -105,18 +105,18 @@ 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) - add_dependencies(gnss_sp_libs volk_gnsssdr_module) + add_dependencies(gnss_sp_libs volk_gnsssdr_module) endif(NOT VOLK_GNSSSDR_FOUND) if(${GFLAGS_GREATER_20}) @@ -125,4 +125,4 @@ 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/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index 10fdd0d4c..c8f676b49 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -28,7 +28,7 @@ if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) endif(NOT IIO_FOUND) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${IIO_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) - + endif(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) @@ -43,14 +43,14 @@ if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) endif(NOT LIBIIO_FOUND) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${LIBIIO_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${LIBIIO_INCLUDE_DIRS}) - + ############################################### # FMCOMMS2 based SDR Hardware ############################################### if(IIO_FOUND) set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) endif(IIO_FOUND) - + endif(ENABLE_FMCOMMS2 OR ENABLE_AD9361) if(ENABLE_AD9361) @@ -78,4 +78,3 @@ add_library(signal_source_lib ${SIGNAL_SOURCE_LIB_SOURCES} ${SIGNAL_SOURCE_LIB_H source_group(Headers FILES ${SIGNAL_SOURCE_LIB_HEADERS}) target_link_libraries(signal_source_lib ${OPT_LIBRARIES}) - diff --git a/src/algorithms/signal_source/libs/fpga_switch.cc b/src/algorithms/signal_source/libs/fpga_switch.cc index e349a3c53..aae7da979 100644 --- a/src/algorithms/signal_source/libs/fpga_switch.cc +++ b/src/algorithms/signal_source/libs/fpga_switch.cc @@ -35,7 +35,6 @@ */ #include "fpga_switch.h" - #include // FPGA stuff @@ -76,9 +75,9 @@ fpga_switch::fpga_switch(std::string device_name) printf("switch memory successfully mapped\n"); } d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE, - PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); + PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); - if (d_map_base == reinterpret_cast(-1)) + if (d_map_base == reinterpret_cast(-1)) { LOG(WARNING) << "Cannot map the FPGA switch module into tracking memory"; printf("could not map switch memory\n"); @@ -100,18 +99,21 @@ fpga_switch::fpga_switch(std::string device_name) DLOG(INFO) << "Switch FPGA class created"; } + fpga_switch::~fpga_switch() { close_device(); } + void fpga_switch::set_switch_position(int switch_position) { d_map_base[0] = switch_position; } + unsigned fpga_switch::fpga_switch_test_register( - unsigned writeval) + unsigned writeval) { unsigned readval; // write value to test register @@ -122,15 +124,14 @@ unsigned fpga_switch::fpga_switch_test_register( return readval; } + void fpga_switch::close_device() { - unsigned * aux = const_cast(d_map_base); - if (munmap(static_cast(aux), PAGE_SIZE) == -1) + unsigned *aux = const_cast(d_map_base); + if (munmap(static_cast(aux), PAGE_SIZE) == -1) { printf("Failed to unmap memory uio\n"); } close(d_device_descriptor); } - - diff --git a/src/algorithms/signal_source/libs/fpga_switch.h b/src/algorithms/signal_source/libs/fpga_switch.h index c3ce2fbba..395aff425 100644 --- a/src/algorithms/signal_source/libs/fpga_switch.h +++ b/src/algorithms/signal_source/libs/fpga_switch.h @@ -47,15 +47,14 @@ public: fpga_switch(std::string device_name); ~fpga_switch(); void set_switch_position(int switch_position); - + private: - int d_device_descriptor; // driver descriptor - volatile unsigned *d_map_base; // driver memory map + int d_device_descriptor; // driver descriptor + volatile unsigned *d_map_base; // driver memory map // private functions unsigned fpga_switch_test_register(unsigned writeval); - void close_device(void); - + void close_device(void); }; #endif /* GNSS_SDR_FPGA_SWITCH_H_ */ diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc index 9c9e6af0b..737e414d9 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc @@ -35,9 +35,7 @@ */ #include "fpga_multicorrelator_8sc.h" - #include - // FPGA stuff #include @@ -65,7 +63,7 @@ #include // constants -#include "GPS_L1_CA.h" +#include "GPS_L1_CA.h" #include "gps_sdr_signal_processing.h" @@ -75,7 +73,7 @@ #define CODE_RESAMPLER_NUM_BITS_PRECISION 20 #define CODE_PHASE_STEP_CHIPS_NUM_NBITS CODE_RESAMPLER_NUM_BITS_PRECISION #define pwrtwo(x) (1 << (x)) -#define MAX_CODE_RESAMPLER_COUNTER pwrtwo(CODE_PHASE_STEP_CHIPS_NUM_NBITS) // 2^CODE_PHASE_STEP_CHIPS_NUM_NBITS +#define MAX_CODE_RESAMPLER_COUNTER pwrtwo(CODE_PHASE_STEP_CHIPS_NUM_NBITS) // 2^CODE_PHASE_STEP_CHIPS_NUM_NBITS #define PHASE_CARR_NBITS 32 #define PHASE_CARR_NBITS_INT 1 #define PHASE_CARR_NBITS_FRAC PHASE_CARR_NBITS - PHASE_CARR_NBITS_INT @@ -86,7 +84,7 @@ int fpga_multicorrelator_8sc::read_sample_counter() { - return d_map_base[7]; + return d_map_base[7]; } void fpga_multicorrelator_8sc::set_initial_sample(int samples_offset) @@ -94,17 +92,16 @@ void fpga_multicorrelator_8sc::set_initial_sample(int samples_offset) d_initial_sample_counter = samples_offset; d_map_base[13] = d_initial_sample_counter; } - -void fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, - float *shifts_chips, int PRN) -{ +void fpga_multicorrelator_8sc::set_local_code_and_taps(int code_length_chips, + float *shifts_chips, int PRN) +{ d_shifts_chips = shifts_chips; d_code_length_chips = code_length_chips; fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(PRN); } -void fpga_multicorrelator_8sc::set_output_vectors(gr_complex* corr_out) +void fpga_multicorrelator_8sc::set_output_vectors(gr_complex *corr_out) { d_corr_out = corr_out; } @@ -116,21 +113,18 @@ void fpga_multicorrelator_8sc::update_local_code(float rem_code_phase_chips) fpga_multicorrelator_8sc::fpga_configure_code_parameters_in_fpga(); } - void fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( - float rem_carrier_phase_in_rad, float phase_step_rad, - float rem_code_phase_chips, float code_phase_step_chips, - int signal_length_samples) + float rem_carrier_phase_in_rad, float phase_step_rad, + float rem_code_phase_chips, float code_phase_step_chips, + int signal_length_samples) { - - update_local_code(rem_code_phase_chips); d_rem_carrier_phase_in_rad = rem_carrier_phase_in_rad; d_code_phase_step_chips = code_phase_step_chips; d_phase_step_rad = phase_step_rad; d_correlator_length_samples = signal_length_samples; - fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(); - fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(); + fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(); + fpga_multicorrelator_8sc::fpga_configure_signal_parameters_in_fpga(); fpga_multicorrelator_8sc::fpga_launch_multicorrelator_fpga(); int irq_count; ssize_t nb; @@ -143,8 +137,9 @@ void fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( fpga_multicorrelator_8sc::read_tracking_gps_results(); } + fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, - std::string device_name, unsigned int device_base) + std::string device_name, unsigned int device_base) { d_n_correlators = n_correlators; d_device_name = device_name; @@ -153,10 +148,10 @@ fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, d_map_base = nullptr; // instantiate variable length vectors - d_initial_index = static_cast(volk_gnsssdr_malloc( - n_correlators * sizeof(unsigned), volk_gnsssdr_get_alignment())); - d_initial_interp_counter = static_cast(volk_gnsssdr_malloc( - n_correlators * sizeof(unsigned), volk_gnsssdr_get_alignment())); + d_initial_index = static_cast(volk_gnsssdr_malloc( + n_correlators * sizeof(unsigned), volk_gnsssdr_get_alignment())); + d_initial_interp_counter = static_cast(volk_gnsssdr_malloc( + n_correlators * sizeof(unsigned), volk_gnsssdr_get_alignment())); //d_local_code_in = nullptr; d_shifts_chips = nullptr; @@ -171,21 +166,20 @@ fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, d_initial_sample_counter = 0; d_channel = 0; d_correlator_length_samples = 0; - + // pre-compute all the codes - d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); + d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS * NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) - { - gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); - } + { + gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); + } DLOG(INFO) << "TRACKING FPGA CLASS CREATED"; - } fpga_multicorrelator_8sc::~fpga_multicorrelator_8sc() { - delete[] d_ca_codes; + delete[] d_ca_codes; close_device(); } @@ -193,7 +187,7 @@ fpga_multicorrelator_8sc::~fpga_multicorrelator_8sc() bool fpga_multicorrelator_8sc::free() { // unlock the channel - fpga_multicorrelator_8sc::unlock_channel(); + fpga_multicorrelator_8sc::unlock_channel(); // free the FPGA dynamically created variables if (d_initial_index != nullptr) @@ -214,7 +208,7 @@ bool fpga_multicorrelator_8sc::free() void fpga_multicorrelator_8sc::set_channel(unsigned int channel) { - char device_io_name[MAX_LENGTH_DEVICEIO_NAME]; // driver io name + char device_io_name[MAX_LENGTH_DEVICEIO_NAME]; // driver io name d_channel = channel; // open the device corresponding to the assigned channel @@ -229,12 +223,12 @@ void fpga_multicorrelator_8sc::set_channel(unsigned int channel) LOG(WARNING) << "Cannot open deviceio" << device_io_name; } d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE, - PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); + PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); - if (d_map_base == reinterpret_cast(-1)) + if (d_map_base == reinterpret_cast(-1)) { LOG(WARNING) << "Cannot map the FPGA tracking module " - << d_channel << "into user memory"; + << d_channel << "into user memory"; } // sanity check : check test register @@ -253,7 +247,7 @@ void fpga_multicorrelator_8sc::set_channel(unsigned int channel) unsigned fpga_multicorrelator_8sc::fpga_acquisition_test_register( - unsigned writeval) + unsigned writeval) { unsigned readval; // write value to test register @@ -287,11 +281,9 @@ void fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(int PRN) code_chip = 0; } // copy the local code to the FPGA memory one by one - d_map_base[11] = LOCAL_CODE_FPGA_ENABLE_WRITE_MEMORY - | code_chip | select_fpga_correlator; + d_map_base[11] = LOCAL_CODE_FPGA_ENABLE_WRITE_MEMORY | code_chip | select_fpga_correlator; } - select_fpga_correlator = select_fpga_correlator - + LOCAL_CODE_FPGA_CORRELATOR_SELECT_COUNT; + select_fpga_correlator = select_fpga_correlator + LOCAL_CODE_FPGA_CORRELATOR_SELECT_COUNT; } } @@ -304,20 +296,20 @@ void fpga_multicorrelator_8sc::fpga_compute_code_shift_parameters(void) for (i = 0; i < d_n_correlators; i++) { temp_calculation = floor( - d_shifts_chips[i] - d_rem_code_phase_chips); - + d_shifts_chips[i] - d_rem_code_phase_chips); + if (temp_calculation < 0) { - temp_calculation = temp_calculation + d_code_length_chips; // % operator does not work as in Matlab with negative numbers + temp_calculation = temp_calculation + d_code_length_chips; // % operator does not work as in Matlab with negative numbers } - d_initial_index[i] = static_cast( (static_cast(temp_calculation)) % d_code_length_chips); + d_initial_index[i] = static_cast((static_cast(temp_calculation)) % d_code_length_chips); temp_calculation = fmod(d_shifts_chips[i] - d_rem_code_phase_chips, - 1.0); + 1.0); if (temp_calculation < 0) { - temp_calculation = temp_calculation + 1.0; // fmod operator does not work as in Matlab with negative numbers + temp_calculation = temp_calculation + 1.0; // fmod operator does not work as in Matlab with negative numbers } - d_initial_interp_counter[i] = static_cast( floor( MAX_CODE_RESAMPLER_COUNTER * temp_calculation)); + d_initial_interp_counter[i] = static_cast(floor(MAX_CODE_RESAMPLER_COUNTER * temp_calculation)); } } @@ -330,7 +322,7 @@ void fpga_multicorrelator_8sc::fpga_configure_code_parameters_in_fpga(void) d_map_base[1 + i] = d_initial_index[i]; d_map_base[1 + d_n_correlators + i] = d_initial_interp_counter[i]; } - d_map_base[8] = d_code_length_chips - 1; // number of samples - 1 + d_map_base[8] = d_code_length_chips - 1; // number of samples - 1 } @@ -338,30 +330,27 @@ void fpga_multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(void) { float d_rem_carrier_phase_in_rad_temp; - d_code_phase_step_chips_num = static_cast( roundf(MAX_CODE_RESAMPLER_COUNTER * d_code_phase_step_chips)); + d_code_phase_step_chips_num = static_cast(roundf(MAX_CODE_RESAMPLER_COUNTER * d_code_phase_step_chips)); if (d_rem_carrier_phase_in_rad > M_PI) { - d_rem_carrier_phase_in_rad_temp = -2 * M_PI - + d_rem_carrier_phase_in_rad; + d_rem_carrier_phase_in_rad_temp = -2 * M_PI + d_rem_carrier_phase_in_rad; } else if (d_rem_carrier_phase_in_rad < -M_PI) { - d_rem_carrier_phase_in_rad_temp = 2 * M_PI - + d_rem_carrier_phase_in_rad; + d_rem_carrier_phase_in_rad_temp = 2 * M_PI + d_rem_carrier_phase_in_rad; } else { d_rem_carrier_phase_in_rad_temp = d_rem_carrier_phase_in_rad; } - d_rem_carr_phase_rad_int = static_cast( roundf( - (fabs(d_rem_carrier_phase_in_rad_temp) / M_PI) - * pow(2, PHASE_CARR_NBITS_FRAC))); + d_rem_carr_phase_rad_int = static_cast(roundf( + (fabs(d_rem_carrier_phase_in_rad_temp) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); if (d_rem_carrier_phase_in_rad_temp < 0) { d_rem_carr_phase_rad_int = -d_rem_carr_phase_rad_int; } - d_phase_step_rad_int = static_cast( roundf( - (fabs(d_phase_step_rad) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); // the FPGA accepts a range for the phase step between -pi and +pi + d_phase_step_rad_int = static_cast(roundf( + (fabs(d_phase_step_rad) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); // the FPGA accepts a range for the phase step between -pi and +pi if (d_phase_step_rad < 0) { @@ -383,10 +372,10 @@ void fpga_multicorrelator_8sc::fpga_launch_multicorrelator_fpga(void) { // enable interrupts int reenable = 1; - write(d_device_descriptor, reinterpret_cast(&reenable), sizeof(int)); + write(d_device_descriptor, reinterpret_cast(&reenable), sizeof(int)); - // writing 1 to reg 14 launches the tracking - d_map_base[14] = 1; + // writing 1 to reg 14 launches the tracking + d_map_base[14] = 1; } @@ -399,17 +388,17 @@ void fpga_multicorrelator_8sc::read_tracking_gps_results(void) for (k = 0; k < d_n_correlators; k++) { readval_real = d_map_base[1 + k]; - if (readval_real >= 1048576) // 0x100000 (21 bits two's complement) + if (readval_real >= 1048576) // 0x100000 (21 bits two's complement) { readval_real = -2097152 + readval_real; } readval_imag = d_map_base[1 + d_n_correlators + k]; - if (readval_imag >= 1048576) // 0x100000 (21 bits two's complement) + if (readval_imag >= 1048576) // 0x100000 (21 bits two's complement) { readval_imag = -2097152 + readval_imag; } - d_corr_out[k] = gr_complex(readval_real,readval_imag); + d_corr_out[k] = gr_complex(readval_real, readval_imag); } } @@ -417,40 +406,42 @@ void fpga_multicorrelator_8sc::read_tracking_gps_results(void) void fpga_multicorrelator_8sc::unlock_channel(void) { // unlock the channel to let the next samples go through - d_map_base[12] = 1; // unlock the channel + d_map_base[12] = 1; // unlock the channel } + void fpga_multicorrelator_8sc::close_device() { - unsigned * aux = const_cast(d_map_base); - if (munmap(static_cast(aux), PAGE_SIZE) == -1) + unsigned *aux = const_cast(d_map_base); + if (munmap(static_cast(aux), PAGE_SIZE) == -1) { printf("Failed to unmap memory uio\n"); } -/* else + /* else { printf("memory uio unmapped\n"); } */ close(d_device_descriptor); } - + void fpga_multicorrelator_8sc::lock_channel(void) { // lock the channel for processing - d_map_base[12] = 0; // lock the channel + d_map_base[12] = 0; // lock the channel } + void fpga_multicorrelator_8sc::read_sample_counters(int *sample_counter, int *secondary_sample_counter, int *counter_corr_0_in, int *counter_corr_0_out) { - *sample_counter = d_map_base[11]; - *secondary_sample_counter = d_map_base[8]; - *counter_corr_0_in = d_map_base[10]; - *counter_corr_0_out = d_map_base[9]; - + *sample_counter = d_map_base[11]; + *secondary_sample_counter = d_map_base[8]; + *counter_corr_0_in = d_map_base[10]; + *counter_corr_0_out = d_map_base[9]; } + void fpga_multicorrelator_8sc::reset_multicorrelator(void) { - d_map_base[14] = 2; // writing a 2 to d_map_base[14] resets the multicorrelator + d_map_base[14] = 2; // writing a 2 to d_map_base[14] resets the multicorrelator } diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h index 9bf44536e..1eceb1936 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h +++ b/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h @@ -49,46 +49,46 @@ class fpga_multicorrelator_8sc { public: fpga_multicorrelator_8sc(int n_correlators, std::string device_name, - unsigned int device_base); + unsigned int device_base); ~fpga_multicorrelator_8sc(); - //bool set_output_vectors(gr_complex* corr_out); - void set_output_vectors(gr_complex* corr_out); -// bool set_local_code_and_taps( -// int code_length_chips, const int* local_code_in, -// float *shifts_chips, int PRN); + //bool set_output_vectors(gr_complex* corr_out); + void set_output_vectors(gr_complex *corr_out); + // bool set_local_code_and_taps( + // int code_length_chips, const int* local_code_in, + // float *shifts_chips, int PRN); //bool set_local_code_and_taps( void set_local_code_and_taps( - int code_length_chips, - float *shifts_chips, int PRN); + int code_length_chips, + float *shifts_chips, int PRN); //bool set_output_vectors(lv_16sc_t* corr_out); void update_local_code(float rem_code_phase_chips); //bool Carrier_wipeoff_multicorrelator_resampler( void Carrier_wipeoff_multicorrelator_resampler( - float rem_carrier_phase_in_rad, float phase_step_rad, - float rem_code_phase_chips, float code_phase_step_chips, - int signal_length_samples);bool free(); + float rem_carrier_phase_in_rad, float phase_step_rad, + float rem_code_phase_chips, float code_phase_step_chips, + int signal_length_samples); + bool free(); void set_channel(unsigned int channel); void set_initial_sample(int samples_offset); int read_sample_counter(); void lock_channel(void); void unlock_channel(void); - void read_sample_counters(int *sample_counter, int *secondary_sample_counter, int *counter_corr_0_in, int *counter_corr_0_out); // debug - - + void read_sample_counters(int *sample_counter, int *secondary_sample_counter, int *counter_corr_0_in, int *counter_corr_0_out); // debug + private: //const int *d_local_code_in; - gr_complex * d_corr_out; + gr_complex *d_corr_out; float *d_shifts_chips; int d_code_length_chips; int d_n_correlators; // data related to the hardware module and the driver - int d_device_descriptor; // driver descriptor - volatile unsigned *d_map_base; // driver memory map + int d_device_descriptor; // driver descriptor + volatile unsigned *d_map_base; // driver memory map // configuration data received from the interface - unsigned int d_channel; // channel number - unsigned d_ncorrelators; // number of correlators + unsigned int d_channel; // channel number + unsigned d_ncorrelators; // number of correlators unsigned d_correlator_length_samples; float d_rem_code_phase_chips; float d_code_phase_step_chips; @@ -107,8 +107,7 @@ private: std::string d_device_name; unsigned int d_device_base; - - int* d_ca_codes; + int *d_ca_codes; // private functions unsigned fpga_acquisition_test_register(unsigned writeval); @@ -119,11 +118,8 @@ private: void fpga_configure_signal_parameters_in_fpga(void); void fpga_launch_multicorrelator_fpga(void); void read_tracking_gps_results(void); - void reset_multicorrelator(void); - void close_device(void); - - // debug - //unsigned int first_time = 1; + void reset_multicorrelator(void); + void close_device(void); }; #endif /* GNSS_SDR_FPGA_MULTICORRELATOR_H_ */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc index 91c611d2d..797f2c3d9 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc @@ -36,8 +36,8 @@ #include #include #include -#include // to test the FPGA we have to create a simultaneous task to send the samples using the DMA and stop the test -#include // FPGA read input file +#include // to test the FPGA we have to create a simultaneous task to send the samples using the DMA and stop the test +#include // FPGA read input file #include #include #include @@ -61,17 +61,17 @@ #include "signal_generator_flags.h" #include "interleaved_byte_to_complex_short.h" -#define DMA_TRACK_TRANSFER_SIZE 2046 // DMA transfer size for tracking -#define MIN_SAMPLES_REMAINING 20000 // number of remaining samples in the DMA that causes the CPU to stop the flowgraph (it has to be a bit alrger than 2x max packet size) -#define FIVE_SECONDS 5000000 // five seconds in microseconds +#define DMA_TRACK_TRANSFER_SIZE 2046 // DMA transfer size for tracking +#define MIN_SAMPLES_REMAINING 20000 // number of remaining samples in the DMA that causes the CPU to stop the flowgraph (it has to be a bit alrger than 2x max packet size) +#define FIVE_SECONDS 5000000 // five seconds in microseconds void send_tracking_gps_input_samples(FILE *rx_signal_file, - int num_remaining_samples, gr::top_block_sptr top_block) + int num_remaining_samples, gr::top_block_sptr top_block) { - int num_samples_transferred = 0; // number of samples that have been transferred to the DMA so far - static int flowgraph_stopped = 0; // flag to indicate if the flowgraph is stopped already - char *buffer_DMA; // temporary buffer to store the samples to be sent to the DMA - int dma_descr; // DMA descriptor + int num_samples_transferred = 0; // number of samples that have been transferred to the DMA so far + static int flowgraph_stopped = 0; // flag to indicate if the flowgraph is stopped already + char *buffer_DMA; // temporary buffer to store the samples to be sent to the DMA + int dma_descr; // DMA descriptor dma_descr = open("/dev/loop_tx", O_WRONLY); if (dma_descr < 0) { @@ -79,7 +79,7 @@ void send_tracking_gps_input_samples(FILE *rx_signal_file, exit(1); } - buffer_DMA = (char *) malloc(DMA_TRACK_TRANSFER_SIZE); + buffer_DMA = (char *)malloc(DMA_TRACK_TRANSFER_SIZE); if (!buffer_DMA) { fprintf(stderr, "Memory error!"); @@ -98,8 +98,7 @@ void send_tracking_gps_input_samples(FILE *rx_signal_file, } if (num_remaining_samples > DMA_TRACK_TRANSFER_SIZE) { - - fread(buffer_DMA, DMA_TRACK_TRANSFER_SIZE, 1,rx_signal_file); + fread(buffer_DMA, DMA_TRACK_TRANSFER_SIZE, 1, rx_signal_file); assert(DMA_TRACK_TRANSFER_SIZE == write(dma_descr, &buffer_DMA[0], DMA_TRACK_TRANSFER_SIZE)); num_remaining_samples = num_remaining_samples - DMA_TRACK_TRANSFER_SIZE; @@ -121,11 +120,11 @@ void send_tracking_gps_input_samples(FILE *rx_signal_file, // thread that sends the samples to the FPGA -void thread(gr::top_block_sptr top_block, const char * file_name) +void thread(gr::top_block_sptr top_block, const char *file_name) { // file descriptor - FILE *rx_signal_file; // file descriptor - int file_length; // length of the file containing the received samples + FILE *rx_signal_file; // file descriptor + int file_length; // length of the file containing the received samples rx_signal_file = fopen(file_name, "rb"); if (!rx_signal_file) @@ -137,7 +136,7 @@ void thread(gr::top_block_sptr top_block, const char * file_name) file_length = ftell(rx_signal_file); fseek(rx_signal_file, 0, SEEK_SET); - usleep(FIVE_SECONDS); // wait for some time to give time to the other thread to program the device + usleep(FIVE_SECONDS); // wait for some time to give time to the other thread to program the device //send_tracking_gps_input_samples(dma_descr, rx_signal_file, file_length); send_tracking_gps_input_samples(rx_signal_file, file_length, top_block); @@ -163,14 +162,14 @@ private: public: int rx_message; - ~GpsL1CADllPllTrackingTestFpga_msg_rx(); //!< Default destructor + ~GpsL1CADllPllTrackingTestFpga_msg_rx(); //!< Default destructor }; GpsL1CADllPllTrackingTestFpga_msg_rx_sptr GpsL1CADllPllTrackingTestFpga_msg_rx_make() { return GpsL1CADllPllTrackingTestFpga_msg_rx_sptr( - new GpsL1CADllPllTrackingTestFpga_msg_rx()); + new GpsL1CADllPllTrackingTestFpga_msg_rx()); } @@ -181,7 +180,7 @@ void GpsL1CADllPllTrackingTestFpga_msg_rx::msg_handler_events(pmt::pmt_t msg) long int message = pmt::to_long(msg); rx_message = message; } - catch (boost::bad_any_cast& e) + catch (boost::bad_any_cast &e) { LOG(WARNING) << "msg_handler_telemetry Bad any cast!"; rx_message = 0; @@ -189,22 +188,22 @@ void GpsL1CADllPllTrackingTestFpga_msg_rx::msg_handler_events(pmt::pmt_t msg) } -GpsL1CADllPllTrackingTestFpga_msg_rx::GpsL1CADllPllTrackingTestFpga_msg_rx() : - gr::block("GpsL1CADllPllTrackingTestFpga_msg_rx", - gr::io_signature::make(0, 0, 0), - gr::io_signature::make(0, 0, 0)) +GpsL1CADllPllTrackingTestFpga_msg_rx::GpsL1CADllPllTrackingTestFpga_msg_rx() : gr::block("GpsL1CADllPllTrackingTestFpga_msg_rx", + gr::io_signature::make(0, 0, 0), + gr::io_signature::make(0, 0, 0)) { this->message_port_register_in(pmt::mp("events")); this->set_msg_handler(pmt::mp("events"), - boost::bind( - &GpsL1CADllPllTrackingTestFpga_msg_rx::msg_handler_events, - this, _1)); + boost::bind( + &GpsL1CADllPllTrackingTestFpga_msg_rx::msg_handler_events, + this, _1)); rx_message = 0; } GpsL1CADllPllTrackingTestFpga_msg_rx::~GpsL1CADllPllTrackingTestFpga_msg_rx() -{} +{ +} // ########################################################### @@ -226,12 +225,12 @@ public: int configure_generator(); int generate_signal(); - void check_results_doppler(arma::vec & true_time_s, arma::vec & true_value, - arma::vec & meas_time_s, arma::vec & meas_value); - void check_results_acc_carrier_phase(arma::vec & true_time_s, - arma::vec & true_value, arma::vec & meas_time_s, arma::vec & meas_value); - void check_results_codephase(arma::vec & true_time_s, arma::vec & true_value, - arma::vec & meas_time_s, arma::vec & meas_value); + void check_results_doppler(arma::vec &true_time_s, arma::vec &true_value, + arma::vec &meas_time_s, arma::vec &meas_value); + void check_results_acc_carrier_phase(arma::vec &true_time_s, + arma::vec &true_value, arma::vec &meas_time_s, arma::vec &meas_value); + void check_results_codephase(arma::vec &true_time_s, arma::vec &true_value, + arma::vec &meas_time_s, arma::vec &meas_value); GpsL1CADllPllTrackingTestFpga() { @@ -263,16 +262,15 @@ int GpsL1CADllPllTrackingTestFpga::configure_generator() p1 = std::string("-rinex_nav_file=") + FLAGS_rinex_nav_file; if (FLAGS_dynamic_position.empty()) { - p2 = std::string("-static_position=") + FLAGS_static_position - + std::string(",") + std::to_string(FLAGS_duration * 10); + p2 = std::string("-static_position=") + FLAGS_static_position + std::string(",") + std::to_string(FLAGS_duration * 10); } else { p2 = std::string("-obs_pos_file=") + std::string(FLAGS_dynamic_position); } - p3 = std::string("-rinex_obs_file=") + FLAGS_filename_rinex_obs; // RINEX 2.10 observation file output - p4 = std::string("-sig_out_file=") + FLAGS_filename_raw_data; // Baseband signal output file. Will be stored in int8_t IQ multiplexed samples - p5 = std::string("-sampling_freq=") + std::to_string(baseband_sampling_freq); //Baseband sampling frequency [MSps] + p3 = std::string("-rinex_obs_file=") + FLAGS_filename_rinex_obs; // RINEX 2.10 observation file output + p4 = std::string("-sig_out_file=") + FLAGS_filename_raw_data; // Baseband signal output file. Will be stored in int8_t IQ multiplexed samples + p5 = std::string("-sampling_freq=") + std::to_string(baseband_sampling_freq); //Baseband sampling frequency [MSps] return 0; } @@ -281,8 +279,8 @@ int GpsL1CADllPllTrackingTestFpga::generate_signal() { int child_status; - char * const parmList[] = { &generator_binary[0], &generator_binary[0], &p1[0], &p2[0], &p3[0], - &p4[0], &p5[0], NULL }; + char *const parmList[] = {&generator_binary[0], &generator_binary[0], &p1[0], &p2[0], &p3[0], + &p4[0], &p5[0], NULL}; int pid; if ((pid = fork()) == -1) @@ -310,12 +308,12 @@ void GpsL1CADllPllTrackingTestFpga::configure_receiver() gnss_synchro.PRN = FLAGS_test_satellite_PRN; config->set_property("GNSS-SDR.internal_fs_sps", - std::to_string(baseband_sampling_freq)); + std::to_string(baseband_sampling_freq)); // Set Tracking //config->set_property("Tracking_1C.implementation", // "GPS_L1_CA_DLL_PLL_C_Aid_Tracking_Fpga"); config->set_property("Tracking_1C.implementation", - "GPS_L1_CA_DLL_PLL_Tracking_Fpga"); + "GPS_L1_CA_DLL_PLL_Tracking_Fpga"); config->set_property("Tracking_1C.item_type", "cshort"); config->set_property("Tracking_1C.if", "0"); config->set_property("Tracking_1C.dump", "true"); @@ -328,8 +326,8 @@ void GpsL1CADllPllTrackingTestFpga::configure_receiver() } -void GpsL1CADllPllTrackingTestFpga::check_results_doppler(arma::vec & true_time_s, - arma::vec & true_value, arma::vec & meas_time_s, arma::vec & meas_value) +void GpsL1CADllPllTrackingTestFpga::check_results_doppler(arma::vec &true_time_s, + arma::vec &true_value, arma::vec &meas_time_s, arma::vec &meas_value) { //1. True value interpolation to match the measurement times arma::vec true_value_interp; @@ -362,13 +360,13 @@ void GpsL1CADllPllTrackingTestFpga::check_results_doppler(arma::vec & true_time_ << ", mean=" << error_mean << ", stdev=" << sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Hz]" << std::endl; - std::cout.precision (ss); + std::cout.precision(ss); } void GpsL1CADllPllTrackingTestFpga::check_results_acc_carrier_phase( - arma::vec & true_time_s, arma::vec & true_value, arma::vec & meas_time_s, - arma::vec & meas_value) + arma::vec &true_time_s, arma::vec &true_value, arma::vec &meas_time_s, + arma::vec &meas_value) { //1. True value interpolation to match the measurement times arma::vec true_value_interp; @@ -401,13 +399,13 @@ void GpsL1CADllPllTrackingTestFpga::check_results_acc_carrier_phase( << ", mean=" << error_mean << ", stdev=" << sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Hz]" << std::endl; - std::cout.precision (ss); + std::cout.precision(ss); } void GpsL1CADllPllTrackingTestFpga::check_results_codephase( - arma::vec & true_time_s, arma::vec & true_value, arma::vec & meas_time_s, - arma::vec & meas_value) + arma::vec &true_time_s, arma::vec &true_value, arma::vec &meas_time_s, + arma::vec &meas_value) { //1. True value interpolation to match the measurement times arma::vec true_value_interp; @@ -439,7 +437,7 @@ void GpsL1CADllPllTrackingTestFpga::check_results_codephase( << ", mean=" << error_mean << ", stdev=" << sqrt(error_var) << " (max,min)=" << max_error << "," << min_error << " [Chips]" << std::endl; - std::cout.precision (ss); + std::cout.precision(ss); } @@ -463,27 +461,29 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) true_obs_file.append(std::to_string(test_satellite_PRN)); true_obs_file.append(".dat"); ASSERT_NO_THROW( + { + if (true_obs_data.open_obs_file(true_obs_file) == false) { - if (true_obs_data.open_obs_file(true_obs_file) == false) - { - throw std::exception(); - }; - }) << "Failure opening true observables file"; + throw std::exception(); + }; + }) + << "Failure opening true observables file"; top_block = gr::make_top_block("Tracking test"); //std::shared_ptr tracking = std::make_shared (config.get(), "Tracking_1C", 1, 1); - std::shared_ptr tracking = std::make_shared (config.get(), "Tracking_1C", 1, 1); + std::shared_ptr tracking = std::make_shared(config.get(), "Tracking_1C", 1, 1); boost::shared_ptr msg_rx = GpsL1CADllPllTrackingTestFpga_msg_rx_make(); // load acquisition data based on the first epoch of the true observations ASSERT_NO_THROW( + { + if (true_obs_data.read_binary_obs() == false) { - if (true_obs_data.read_binary_obs() == false) - { - throw std::exception(); - }; - }) << "Failure reading true observables file"; + throw std::exception(); + }; + }) + << "Failure reading true observables file"; //restart the epoch counter true_obs_data.restart(); @@ -492,52 +492,54 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) << " Initial code delay [Chips]=" << true_obs_data.prn_delay_chips << std::endl; - gnss_synchro.Acq_delay_samples = (GPS_L1_CA_CODE_LENGTH_CHIPS - - true_obs_data.prn_delay_chips / GPS_L1_CA_CODE_LENGTH_CHIPS) - * baseband_sampling_freq * GPS_L1_CA_CODE_PERIOD; + gnss_synchro.Acq_delay_samples = (GPS_L1_CA_CODE_LENGTH_CHIPS - true_obs_data.prn_delay_chips / GPS_L1_CA_CODE_LENGTH_CHIPS) * baseband_sampling_freq * GPS_L1_CA_CODE_PERIOD; gnss_synchro.Acq_doppler_hz = true_obs_data.doppler_l1_hz; gnss_synchro.Acq_samplestamp_samples = 0; ASSERT_NO_THROW( - { - tracking->set_channel(gnss_synchro.Channel_ID); - }) << "Failure setting channel."; + { + tracking->set_channel(gnss_synchro.Channel_ID); + }) + << "Failure setting channel."; ASSERT_NO_THROW( - { - tracking->set_gnss_synchro(&gnss_synchro); - }) << "Failure setting gnss_synchro."; + { + tracking->set_gnss_synchro(&gnss_synchro); + }) + << "Failure setting gnss_synchro."; ASSERT_NO_THROW( - { - tracking->connect(top_block); - }) << "Failure connecting tracking to the top_block."; + { + tracking->connect(top_block); + }) + << "Failure connecting tracking to the top_block."; ASSERT_NO_THROW( - { - gr::blocks::null_sink::sptr sink = gr::blocks::null_sink::make(sizeof(Gnss_Synchro)); - top_block->connect(tracking->get_right_block(), 0, sink, 0); - top_block->msg_connect(tracking->get_right_block(), pmt::mp("events"), msg_rx, pmt::mp("events")); - }) << "Failure connecting the blocks of tracking test."; + { + gr::blocks::null_sink::sptr sink = gr::blocks::null_sink::make(sizeof(Gnss_Synchro)); + top_block->connect(tracking->get_right_block(), 0, sink, 0); + top_block->msg_connect(tracking->get_right_block(), pmt::mp("events"), msg_rx, pmt::mp("events")); + }) + << "Failure connecting the blocks of tracking test."; tracking->start_tracking(); // assemble again the file name in a null terminated string (not available by default in the main program flow) std::string file = "./" + filename_raw_data; - const char * file_name = file.c_str(); + const char *file_name = file.c_str(); // start thread that sends the DMA samples to the FPGA - boost::thread t - { thread, top_block, file_name }; + boost::thread t{thread, top_block, file_name}; EXPECT_NO_THROW( - { - start = std::chrono::system_clock::now(); - top_block->run(); // Start threads and wait - tracking->reset();// unlock the channel - end = std::chrono::system_clock::now(); - elapsed_seconds = end - start; - }) << "Failure running the top_block."; + { + start = std::chrono::system_clock::now(); + top_block->run(); // Start threads and wait + tracking->reset(); // unlock the channel + end = std::chrono::system_clock::now(); + elapsed_seconds = end - start; + }) + << "Failure running the top_block."; // wait until child thread terminates t.join(); @@ -567,12 +569,13 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) //load the measured values tracking_dump_reader trk_dump; ASSERT_NO_THROW( + { + if (trk_dump.open_obs_file(std::string("./tracking_ch_0.dat")) == false) { - if (trk_dump.open_obs_file(std::string("./tracking_ch_0.dat")) == false) - { - throw std::exception(); - }; - }) << "Failure opening tracking dump file"; + throw std::exception(); + }; + }) + << "Failure opening tracking dump file"; nepoch = trk_dump.num_epochs(); std::cout << "Measured observation epochs=" << nepoch << std::endl; @@ -585,14 +588,11 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) epoch_counter = 0; while (trk_dump.read_binary_obs()) { - trk_timestamp_s(epoch_counter) = static_cast(trk_dump.PRN_start_sample_count) - / static_cast(baseband_sampling_freq); + trk_timestamp_s(epoch_counter) = static_cast(trk_dump.PRN_start_sample_count) / static_cast(baseband_sampling_freq); trk_acc_carrier_phase_cycles(epoch_counter) = trk_dump.acc_carrier_phase_rad / GPS_TWO_PI; trk_Doppler_Hz(epoch_counter) = trk_dump.carrier_doppler_hz; - double delay_chips = GPS_L1_CA_CODE_LENGTH_CHIPS - GPS_L1_CA_CODE_LENGTH_CHIPS - * (fmod( (static_cast(trk_dump.PRN_start_sample_count) + trk_dump.aux1) - / static_cast(baseband_sampling_freq), 1.0e-3) / 1.0e-3); + double delay_chips = GPS_L1_CA_CODE_LENGTH_CHIPS - GPS_L1_CA_CODE_LENGTH_CHIPS * (fmod((static_cast(trk_dump.PRN_start_sample_count) + trk_dump.aux1) / static_cast(baseband_sampling_freq), 1.0e-3) / 1.0e-3); trk_prn_delay_chips(epoch_counter) = delay_chips; epoch_counter++; @@ -600,7 +600,7 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) //Align initial measurements and cut the tracking pull-in transitory double pull_in_offset_s = 1.0; - arma::uvec initial_meas_point = arma::find( trk_timestamp_s >= (true_timestamp_s(0) + pull_in_offset_s), 1, "first"); + arma::uvec initial_meas_point = arma::find(trk_timestamp_s >= (true_timestamp_s(0) + pull_in_offset_s), 1, "first"); trk_timestamp_s = trk_timestamp_s.subvec(initial_meas_point(0), trk_timestamp_s.size() - 1); trk_acc_carrier_phase_cycles = trk_acc_carrier_phase_cycles.subvec(initial_meas_point(0), trk_acc_carrier_phase_cycles.size() - 1); @@ -610,8 +610,8 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) check_results_doppler(true_timestamp_s, true_Doppler_Hz, trk_timestamp_s, trk_Doppler_Hz); check_results_codephase(true_timestamp_s, true_prn_delay_chips, trk_timestamp_s, trk_prn_delay_chips); check_results_acc_carrier_phase(true_timestamp_s, - true_acc_carrier_phase_cycles, trk_timestamp_s, - trk_acc_carrier_phase_cycles); + true_acc_carrier_phase_cycles, trk_timestamp_s, + trk_acc_carrier_phase_cycles); std::cout << "Signal tracking completed in " << elapsed_seconds.count() * 1e6 << " microseconds" << std::endl; } From faf27fff220469a64337af8d9031fbcb71a19332 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 30 Apr 2018 20:15:00 +0200 Subject: [PATCH 032/108] Apply code formatting --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 49 ++++++------- .../gps_l1_ca_pcps_acquisition_fpga.h | 6 +- src/algorithms/libs/CMakeLists.txt | 68 +++++++++---------- 3 files changed, 61 insertions(+), 62 deletions(-) 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 455fac062..da4cd4483 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 @@ -33,15 +33,17 @@ * * ------------------------------------------------------------------------- */ -#include + +#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 -#include "gps_l1_ca_pcps_acquisition_fpga.h" -#include "configuration_interface.h" -#include "gps_sdr_signal_processing.h" -#include "GPS_L1_CA.h" -#include "gnss_sdr_flags.h" +#include + #define NUM_PRNs 32 @@ -70,10 +72,10 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( 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)); + 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); + 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"; std::string device_name = configuration_->property(role + ".devicename", default_device_name); @@ -84,27 +86,27 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( // 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 + 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 + 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 + 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++) { - gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in, 0); // generate PRN code + gps_l1_ca_code_gen_complex_sampled(code, PRN, fs_in, 0); // generate PRN code // fill in zero padding - for (int s=code_length;sget_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 + 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) { @@ -115,13 +117,12 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( 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 + 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))); - + 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 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 642e9bf8e..53ab4af1d 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 @@ -37,11 +37,10 @@ #ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_ #define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_ -#include #include "acquisition_interface.h" #include "gnss_synchro.h" #include "pcps_acquisition_fpga.h" - +#include class ConfigurationInterface; @@ -144,8 +143,7 @@ private: std::string role_; unsigned int in_streams_; unsigned int out_streams_; - lv_16sc_t *d_all_fft_codes_; // memory that contains all the code ffts - + lv_16sc_t* d_all_fft_codes_; // memory that contains all the code ffts }; #endif /* GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FPGA_H_ */ diff --git a/src/algorithms/libs/CMakeLists.txt b/src/algorithms/libs/CMakeLists.txt index 6a3924e19..775ac6358 100644 --- a/src/algorithms/libs/CMakeLists.txt +++ b/src/algorithms/libs/CMakeLists.txt @@ -42,7 +42,7 @@ if(ENABLE_FPGA) conjugate_ic.cc ) else(ENABLE_FPGA) - set(GNSS_SPLIBS_SOURCES + set(GNSS_SPLIBS_SOURCES gps_l2c_signal.cc gps_l5_signal.cc galileo_e1_signal_processing.cc @@ -62,38 +62,38 @@ else(ENABLE_FPGA) 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 - ) + 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 + ) 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") - else(OS_IS_MACOSX) - set(OPT_LIBRARIES ${OPT_LIBRARIES} ${OPENCL_LIBRARIES}) - endif(OS_IS_MACOSX) + include_directories( ${OPENCL_INCLUDE_DIRS} ) + if(OS_IS_MACOSX) + set(OPT_LIBRARIES ${OPT_LIBRARIES} "-framework OpenCL") + else(OS_IS_MACOSX) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${OPENCL_LIBRARIES}) + endif(OS_IS_MACOSX) endif(OPENCL_FOUND) add_definitions(-DGNSSSDR_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}") @@ -105,22 +105,22 @@ 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) - add_dependencies(gnss_sp_libs volk_gnsssdr_module) + add_dependencies(gnss_sp_libs volk_gnsssdr_module) 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) From 0494d9b5a8945a3a45533f4b45b7f4d341da7f19 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 30 Apr 2018 20:58:53 +0200 Subject: [PATCH 033/108] Avoid claah between volk and volk_gnsssdr defines --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 1 - .../gps_l1_ca_pcps_acquisition_fpga.h | 1 + .../gnuradio_blocks/pcps_acquisition_fpga.h | 4 +- .../acquisition/libs/fpga_acquisition.cc | 107 ++++++++++-------- .../acquisition/libs/fpga_acquisition.h | 45 ++++---- 5 files changed, 83 insertions(+), 75 deletions(-) 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 da4cd4483..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 @@ -40,7 +40,6 @@ #include "gps_sdr_signal_processing.h" #include "GPS_L1_CA.h" #include -#include #include #include 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 53ab4af1d..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 @@ -40,6 +40,7 @@ #include "acquisition_interface.h" #include "gnss_synchro.h" #include "pcps_acquisition_fpga.h" +#include #include class ConfigurationInterface; diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h index 3014a278a..e758904e3 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h @@ -57,9 +57,9 @@ #define GNSS_SDR_PCPS_ACQUISITION_FPGA_H_ -#include #include "fpga_acquisition.h" #include "gnss_synchro.h" +#include typedef struct { @@ -72,7 +72,7 @@ typedef struct 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 + lv_16sc_t* all_fft_codes; // memory that contains all the code ffts } pcpsconf_fpga_t; diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.cc b/src/algorithms/acquisition/libs/fpga_acquisition.cc index 82f22e050..81995faab 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.cc +++ b/src/algorithms/acquisition/libs/fpga_acquisition.cc @@ -33,32 +33,27 @@ * ------------------------------------------------------------------------- */ -// libraries used by the GIPO -#include -#include - -// logging -#include - -// GPS L1 -#include "GPS_L1_CA.h" - #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 + +#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() @@ -68,34 +63,36 @@ bool fpga_acquisition::init() 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)]); + &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 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; + 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_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_fd = 0; // driver descriptor + d_map_base = nullptr; // driver memory map d_all_fft_codes = all_fft_codes; // open communication with HW accelerator @@ -104,9 +101,9 @@ fpga_acquisition::fpga_acquisition(std::string device_name, 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)); + PROT_READ | PROT_WRITE, MAP_SHARED, d_fd, 0)); - if (d_map_base == reinterpret_cast(-1)) + if (d_map_base == reinterpret_cast(-1)) { LOG(WARNING) << "Cannot map the FPGA acquisition module into user memory"; } @@ -121,23 +118,25 @@ fpga_acquisition::fpga_acquisition(std::string device_name, } else { - LOG(INFO) << "Acquisition test register sanity check success !"; + 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; @@ -149,6 +148,7 @@ unsigned fpga_acquisition::fpga_acquisition_test_register(unsigned writeval) return readval; } + void fpga_acquisition::fpga_configure_acquisition_local_code(lv_16sc_t fft_local_code[]) { unsigned short local_code; @@ -161,19 +161,20 @@ void fpga_acquisition::fpga_configure_acquisition_local_code(lv_16sc_t fft_local { 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 + 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)); + 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 + d_map_base[6] = LAUNCH_ACQUISITION; // writing anything to reg 6 launches the acquisition process int irq_count; ssize_t nb; @@ -186,14 +187,16 @@ void fpga_acquisition::run_acquisition(void) } } + 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 + 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; @@ -212,13 +215,14 @@ void fpga_acquisition::set_phase_step(unsigned int doppler_index) { 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 + 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) + +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]; @@ -231,28 +235,31 @@ void fpga_acquisition::read_acquisition_results(uint32_t* max_index, *max_index = readval; } + void fpga_acquisition::block_samples() { - d_map_base[14] = 1; // block the samples + d_map_base[14] = 1; // block the samples } void fpga_acquisition::unblock_samples() { - d_map_base[14] = 0; // unblock the 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) + 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 + d_map_base[6] = RESET_ACQUISITION; // writing a 2 to d_map_base[6] resets the multicorrelator } diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.h b/src/algorithms/acquisition/libs/fpga_acquisition.h index 45cae5475..00641e1cd 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.h +++ b/src/algorithms/acquisition/libs/fpga_acquisition.h @@ -36,8 +36,8 @@ #ifndef GNSS_SDR_FPGA_ACQUISITION_H_ #define GNSS_SDR_FPGA_ACQUISITION_H_ -#include #include +#include /*! * \brief Class that implements carrier wipe-off and correlators. @@ -46,18 +46,20 @@ class fpga_acquisition { public: 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); - ~fpga_acquisition();bool init();bool set_local_code( - unsigned int PRN); + 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); + ~fpga_acquisition(); + bool init(); + bool set_local_code( + unsigned int PRN); bool free(); void run_acquisition(void); void set_phase_step(unsigned int doppler_index); - void read_acquisition_results(uint32_t* max_index, float* max_magnitude, - unsigned *initial_sample, float *power_sum); + void read_acquisition_results(uint32_t *max_index, float *max_magnitude, + unsigned *initial_sample, float *power_sum); void block_samples(); void unblock_samples(); @@ -80,21 +82,20 @@ public: } 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 + 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 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 + 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 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[]); From c90ec201f20bfe7436dc5edc0efc0a810ed526f1 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 1 May 2018 08:33:41 +0200 Subject: [PATCH 034/108] Fix building in PYBOMBS --- .../signal_source/libs/CMakeLists.txt | 88 ++++++++++--------- 1 file changed, 46 insertions(+), 42 deletions(-) diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index c8f676b49..ccd1390c1 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -17,64 +17,68 @@ # if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) - find_package(iio REQUIRED) - if(NOT IIO_FOUND) - message(STATUS "gnuradio-iio not found, its installation is required.") - message(STATUS "Please build and install the following projects:") - message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") - message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") - message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") - message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") - endif(NOT IIO_FOUND) - set(OPT_LIBRARIES ${OPT_LIBRARIES} ${IIO_LIBRARIES}) - set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) - + find_package(iio REQUIRED) + if(NOT IIO_FOUND) + message(STATUS "gnuradio-iio not found, its installation is required.") + message(STATUS "Please build and install the following projects:") + message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") + message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") + message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") + message(FATAL_ERROR "gnuradio-iio is required for building gnss-sdr with this option enabled") + endif(NOT IIO_FOUND) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${IIO_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) endif(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) - find_package(libiio REQUIRED) - if(NOT LIBIIO_FOUND) - message(STATUS "gnuradio-iio not found, its installation is required.") - message(STATUS "Please build and install the following projects:") - message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") - message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") - message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") - message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") - endif(NOT LIBIIO_FOUND) - set(OPT_LIBRARIES ${OPT_LIBRARIES} ${LIBIIO_LIBRARIES}) - set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${LIBIIO_INCLUDE_DIRS}) - - ############################################### - # FMCOMMS2 based SDR Hardware - ############################################### - if(IIO_FOUND) - set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) - endif(IIO_FOUND) + find_package(libiio REQUIRED) + if(NOT LIBIIO_FOUND) + message(STATUS "libiio not found, its installation is required.") + message(STATUS "Please build and install the following projects:") + message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") + message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") + message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") + message(FATAL_ERROR "libiio is required for building gnss-sdr with this option enabled") + endif(NOT LIBIIO_FOUND) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${LIBIIO_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${LIBIIO_INCLUDE_DIRS}) + ############################################### + # FMCOMMS2 based SDR Hardware + ############################################### + if(IIO_FOUND) + set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) + set(OPT_SIGNAL_SOURCE_LIB_HEADERS ad9361_manager.h) + endif(IIO_FOUND) endif(ENABLE_FMCOMMS2 OR ENABLE_AD9361) -if(ENABLE_AD9361) - set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) -endif(ENABLE_AD9361) - if(ENABLE_FPGA) - SET(OPT_SIGNAL_SOURCE_LIB_SOURCES ${OPT_SIGNAL_SOURCE_LIB_SOURCES} fpga_switch.cc) + set(OPT_SIGNAL_SOURCE_LIB_SOURCES ${OPT_SIGNAL_SOURCE_LIB_SOURCES} fpga_switch.cc) + set(OPT_SIGNAL_SOURCE_LIB_HEADERS ${OPT_SIGNAL_SOURCE_LIB_HEADERS} fpga_switch.h) endif(ENABLE_FPGA) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${Boost_INCLUDE_DIRS} + ${GLOG_INCLUDE_DIRS} + ${GFlags_INCLUDE_DIRS} ${OPT_DRIVER_INCLUDE_DIRS} -) + ) -set (SIGNAL_SOURCE_LIB_SOURCES - rtl_tcp_commands.cc - rtl_tcp_dongle_info.cc - ${OPT_SIGNAL_SOURCE_LIB_SOURCES}) +set(SIGNAL_SOURCE_LIB_SOURCES + rtl_tcp_commands.cc + rtl_tcp_dongle_info.cc + ${OPT_SIGNAL_SOURCE_LIB_SOURCES} + ) + +set(SIGNAL_SOURCE_LIB_HEADERS + rtl_tcp_commands.h + rtl_tcp_dongle_info.h + ${OPT_SIGNAL_SOURCE_LIB_HEADERS} + ) -file(GLOB SIGNAL_SOURCE_LIB_HEADERS "*.h") list(SORT SIGNAL_SOURCE_LIB_HEADERS) add_library(signal_source_lib ${SIGNAL_SOURCE_LIB_SOURCES} ${SIGNAL_SOURCE_LIB_HEADERS}) source_group(Headers FILES ${SIGNAL_SOURCE_LIB_HEADERS}) - target_link_libraries(signal_source_lib ${OPT_LIBRARIES}) +add_dependencies(signal_source_lib glog-${glog_RELEASE}) From 966dd699ac3deb091f65d66b2ea2c8dff550cc5f Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 1 May 2018 08:40:08 +0200 Subject: [PATCH 035/108] Fix building with libiio but without gnuradio-iio --- src/algorithms/signal_source/libs/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index ccd1390c1..9cb569618 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -46,10 +46,10 @@ if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) ############################################### # FMCOMMS2 based SDR Hardware ############################################### - if(IIO_FOUND) + if(LIBIIO_FOUND) set(OPT_SIGNAL_SOURCE_LIB_SOURCES ad9361_manager.cc) set(OPT_SIGNAL_SOURCE_LIB_HEADERS ad9361_manager.h) - endif(IIO_FOUND) + endif(LIBIIO_FOUND) endif(ENABLE_FMCOMMS2 OR ENABLE_AD9361) if(ENABLE_FPGA) From 43103068fdaa7a2dea5fc92d8c367b02ce31b931 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 1 May 2018 10:16:30 +0200 Subject: [PATCH 036/108] Remove unused includes --- .../signal_source/libs/fpga_switch.cc | 43 ++++++------------- .../signal_source/libs/fpga_switch.h | 2 +- 2 files changed, 13 insertions(+), 32 deletions(-) diff --git a/src/algorithms/signal_source/libs/fpga_switch.cc b/src/algorithms/signal_source/libs/fpga_switch.cc index aae7da979..675c1c071 100644 --- a/src/algorithms/signal_source/libs/fpga_switch.cc +++ b/src/algorithms/signal_source/libs/fpga_switch.cc @@ -35,52 +35,33 @@ */ #include "fpga_switch.h" -#include - -// FPGA stuff -#include - -// libraries used by DMA test code and GIPO test code -#include -#include -#include -#include - -// libraries used by DMA test code -#include -#include -#include -#include - -// libraries used by GPIO test code -#include -#include -#include - -// logging #include +#include // for open, O_RDWR, O_SYNC +#include // for cout, endl +#include // for mmap -// string manipulation -#include // constants -#define PAGE_SIZE 0x10000 -#define TEST_REGISTER_TRACK_WRITEVAL 0x55AA +const size_t PAGE_SIZE = 0x10000; +const unsigned int TEST_REGISTER_TRACK_WRITEVAL = 0x55AA; fpga_switch::fpga_switch(std::string device_name) { if ((d_device_descriptor = open(device_name.c_str(), O_RDWR | O_SYNC)) == -1) { LOG(WARNING) << "Cannot open deviceio" << device_name; - printf("switch memory successfully mapped\n"); } - d_map_base = reinterpret_cast(mmap(NULL, PAGE_SIZE, + d_map_base = reinterpret_cast(mmap(nullptr, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, d_device_descriptor, 0)); if (d_map_base == reinterpret_cast(-1)) { LOG(WARNING) << "Cannot map the FPGA switch module into tracking memory"; - printf("could not map switch memory\n"); + std::cout << "Could not map switch memory." << std::endl; + } + else + { + std::cout << "Switch memory successfully mapped." << std::endl; } // sanity check : check test register @@ -130,7 +111,7 @@ void fpga_switch::close_device() unsigned *aux = const_cast(d_map_base); if (munmap(static_cast(aux), PAGE_SIZE) == -1) { - printf("Failed to unmap memory uio\n"); + std::cout << "Failed to unmap memory uio" << std::endl; } close(d_device_descriptor); diff --git a/src/algorithms/signal_source/libs/fpga_switch.h b/src/algorithms/signal_source/libs/fpga_switch.h index 395aff425..bf60a17fe 100644 --- a/src/algorithms/signal_source/libs/fpga_switch.h +++ b/src/algorithms/signal_source/libs/fpga_switch.h @@ -37,7 +37,7 @@ #ifndef GNSS_SDR_FPGA_SWITCH_H_ #define GNSS_SDR_FPGA_SWITCH_H_ -#include +#include #define MAX_LENGTH_DEVICEIO_NAME 50 From f259ef28dd1789696134f579849816db400a4862 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 1 May 2018 10:56:18 +0200 Subject: [PATCH 037/108] Replace boost::lexical_cast() by std::to_string() This fixes uncaught exceptions detected by Coverity Scan --- src/core/receiver/gnss_flowgraph.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index 7085f9394..17cb2205a 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -341,7 +341,7 @@ void GNSSFlowgraph::connect() { if (FPGA_enabled == false) { - selected_signal_conditioner_ID = configuration_->property("Channel" + boost::lexical_cast(i) + ".RF_channel_ID", 0); + selected_signal_conditioner_ID = configuration_->property("Channel" + std::to_string(i) + ".RF_channel_ID", 0); try { top_block_->connect(sig_conditioner_.at(selected_signal_conditioner_ID)->get_right_block(), 0, @@ -376,7 +376,7 @@ void GNSSFlowgraph::connect() std::vector vector_of_channels; for (unsigned int i = 0; i < channels_count_; i++) { - unsigned int sat = configuration_->property("Channel" + boost::lexical_cast(i) + ".satellite", 0); + unsigned int sat = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); if (sat == 0) { vector_of_channels.push_back(i); @@ -392,7 +392,7 @@ void GNSSFlowgraph::connect() for (unsigned int& i : vector_of_channels) { std::string gnss_signal = channels_.at(i)->get_signal().get_signal_str(); // use channel's implicit signal - unsigned int sat = configuration_->property("Channel" + boost::lexical_cast(i) + ".satellite", 0); + unsigned int sat = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); if (sat == 0) { channels_.at(i)->set_signal(search_next_signal(gnss_signal, true)); @@ -528,7 +528,7 @@ void GNSSFlowgraph::disconnect() int selected_signal_conditioner_ID; for (unsigned int i = 0; i < channels_count_; i++) { - selected_signal_conditioner_ID = configuration_->property("Channel" + boost::lexical_cast(i) + ".RF_channel_ID", 0); + selected_signal_conditioner_ID = configuration_->property("Channel" + std::to_string(i) + ".RF_channel_ID", 0); try { top_block_->disconnect(sig_conditioner_.at(selected_signal_conditioner_ID)->get_right_block(), 0, @@ -679,7 +679,7 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what) acq_channels_count_--; for (unsigned int i = 0; i < channels_count_; i++) { - unsigned int sat_ = configuration_->property("Channel" + boost::lexical_cast(i) + ".satellite", 0); + unsigned int sat_ = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); if (!available_GNSS_signals_.empty() && (acq_channels_count_ < max_acq_channels_) && (channels_state_[i] == 0)) { channels_state_[i] = 1; From 8d8ebfc6dfa7f2166ac60cfa3574e2196d4fe8f4 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 1 May 2018 12:02:50 +0200 Subject: [PATCH 038/108] Remove unused includes, minor fixes --- .../signal_source/adapters/CMakeLists.txt | 6 +- .../adapters/ad9361_fpga_signal_source.cc | 64 +++++++++---------- .../adapters/ad9361_fpga_signal_source.h | 17 +++-- 3 files changed, 41 insertions(+), 46 deletions(-) diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index ededc5dc7..a502b6e30 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -29,7 +29,7 @@ if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") - message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") + message(FATAL_ERROR "gnuradio-iio is required for building gnss-sdr with this option enabled.") endif(NOT IIO_FOUND) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${IIO_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${IIO_INCLUDE_DIRS}) @@ -38,12 +38,12 @@ endif(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) if(ENABLE_AD9361) find_package(libiio REQUIRED) if(NOT LIBIIO_FOUND) - message(STATUS "gnuradio-iio not found, its installation is required.") + message(STATUS "libiio not found, its installation is required.") message(STATUS "Please build and install the following projects:") message(STATUS " * libiio from https://github.com/analogdevicesinc/libiio") message(STATUS " * libad9361-iio from https://github.com/analogdevicesinc/libad9361-iio") message(STATUS " * gnuradio-iio from https://github.com/analogdevicesinc/gr-iio") - message(FATAL_ERROR "gnuradio-iio required for building gnss-sdr with this option enabled") + message(FATAL_ERROR "libiio is required for building gnss-sdr with this option enabled.") endif(NOT LIBIIO_FOUND) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${LIBIIO_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${LIBIIO_INCLUDE_DIRS}) diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index cba4e5439..02be88152 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -35,10 +35,8 @@ #include "ad9361_manager.h" #include "GPS_L1_CA.h" #include "GPS_L2C.h" -#include -#include #include -#include +#include // for cout, endl #ifdef __APPLE__ #include @@ -47,10 +45,8 @@ #endif Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configuration, - std::string role, unsigned int in_stream, unsigned int out_stream, - boost::shared_ptr queue) : - role_(role), in_stream_(in_stream), out_stream_(out_stream), - queue_(queue) + std::string role, unsigned int in_stream, unsigned int out_stream, + boost::shared_ptr queue) : role_(role), in_stream_(in_stream), out_stream_(out_stream), queue_(queue) { std::string default_item_type = "gr_complex"; std::string default_dump_file = "./data/signal_source.dat"; @@ -75,12 +71,12 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); - enable_dds_lo_=configuration->property(role + ".enable_dds_lo", false); - freq_rf_tx_hz_=configuration->property(role + ".freq_rf_tx_hz", GPS_L1_FREQ_HZ-GPS_L2_FREQ_HZ-1000); - freq_dds_tx_hz_=configuration->property(role + ".freq_dds_tx_hz", 1000); - scale_dds_dbfs_=configuration->property(role + ".scale_dds_dbfs", -3.0); - phase_dds_deg_=configuration->property(role + ".phase_dds_deg", 0.0); - tx_attenuation_db_=configuration->property(role + ".tx_attenuation_db", 0.0); + enable_dds_lo_ = configuration->property(role + ".enable_dds_lo", false); + freq_rf_tx_hz_ = configuration->property(role + ".freq_rf_tx_hz", GPS_L1_FREQ_HZ - GPS_L2_FREQ_HZ - 1000); + freq_dds_tx_hz_ = configuration->property(role + ".freq_dds_tx_hz", 1000); + scale_dds_dbfs_ = configuration->property(role + ".scale_dds_dbfs", -3.0); + phase_dds_deg_ = configuration->property(role + ".phase_dds_deg", 0.0); + tx_attenuation_db_ = configuration->property(role + ".tx_attenuation_db", 0.0); item_size_ = sizeof(gr_complex); @@ -89,30 +85,30 @@ Ad9361FpgaSignalSource::Ad9361FpgaSignalSource(ConfigurationInterface* configura std::cout << "sample rate: " << sample_rate_ << " Hz" << std::endl; config_ad9361_rx_local(bandwidth_, - sample_rate_, - freq_, - rf_port_select_, - gain_mode_rx1_, - gain_mode_rx2_, - rf_gain_rx1_, - rf_gain_rx2_); + sample_rate_, + freq_, + rf_port_select_, + gain_mode_rx1_, + gain_mode_rx2_, + rf_gain_rx1_, + rf_gain_rx2_); //LOCAL OSCILLATOR DDS GENERATOR FOR DUAL FREQUENCY OPERATION - if (enable_dds_lo_==true) - { - config_ad9361_lo_local(bandwidth_, - sample_rate_, - freq_rf_tx_hz_, - tx_attenuation_db_, - freq_dds_tx_hz_, - scale_dds_dbfs_); - } + if (enable_dds_lo_ == true) + { + config_ad9361_lo_local(bandwidth_, + sample_rate_, + freq_rf_tx_hz_, + tx_attenuation_db_, + freq_dds_tx_hz_, + scale_dds_dbfs_); + } // turn switch to A/D position std::string default_device_name = "/dev/uio13"; std::string device_name = configuration->property(role + ".devicename", default_device_name); int switch_position = configuration->property(role + ".switch_position", 0); - switch_fpga = std::make_shared (device_name); + switch_fpga = std::make_shared(device_name); switch_fpga->set_switch_position(switch_position); } @@ -125,11 +121,11 @@ Ad9361FpgaSignalSource::~Ad9361FpgaSignalSource() //if (rx0_q) { iio_channel_disable(rx0_q); } if (enable_dds_lo_) - { - ad9361_disable_lo_local(); - } + { + ad9361_disable_lo_local(); + } - // std::cout<<"* AD9361 Destroying context\n"; + // std::cout<<"* AD9361 Destroying context\n"; //if (ctx) { iio_context_destroy(ctx); } } diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h index 6110a63c3..2a98e3017 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h @@ -34,21 +34,20 @@ #include "gnss_block_interface.h" #include "fpga_switch.h" - #include #include #include class ConfigurationInterface; -class Ad9361FpgaSignalSource: public GNSSBlockInterface +class Ad9361FpgaSignalSource : public GNSSBlockInterface { public: Ad9361FpgaSignalSource(ConfigurationInterface* configuration, - std::string role, unsigned int in_stream, - unsigned int out_stream, boost::shared_ptr queue); + std::string role, unsigned int in_stream, + unsigned int out_stream, boost::shared_ptr queue); - virtual ~Ad9361FpgaSignalSource(); + ~Ad9361FpgaSignalSource(); inline std::string role() override { @@ -77,11 +76,11 @@ private: std::string role_; // Front-end settings - std::string uri_;//device direction - unsigned long freq_; //frequency of local oscilator + std::string uri_; // device direction + unsigned long freq_; // frequency of local oscillator unsigned long sample_rate_; unsigned long bandwidth_; - unsigned long buffer_size_; //reception buffer + unsigned long buffer_size_; // reception buffer bool rx1_en_; bool rx2_en_; bool quadrature_; @@ -95,7 +94,7 @@ private: std::string filter_file_; bool filter_auto_; - //DDS configuration for LO generation for external mixer + // DDS configuration for LO generation for external mixer bool enable_dds_lo_; unsigned long freq_rf_tx_hz_; unsigned long freq_dds_tx_hz_; From 7865387df961047729dcf474c09ee6ca72089320 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Tue, 1 May 2018 21:25:15 +0200 Subject: [PATCH 039/108] Adding UDP GNSS signal source block --- conf/gnss-sdr_GPS_L1_2ch_udp.conf | 86 +++++++ .../signal_source/adapters/CMakeLists.txt | 1 + .../adapters/udp_signal_source.cc | 186 +++++++++++++++ .../adapters/udp_signal_source.h | 114 ++++++++++ .../gnuradio_blocks/CMakeLists.txt | 1 + .../gnuradio_blocks/udp_gnss_rx_source.cc | 215 ++++++++++++++++++ .../gnuradio_blocks/udp_gnss_rx_source.h | 91 ++++++++ src/core/receiver/gnss_block_factory.cc | 16 ++ 8 files changed, 710 insertions(+) create mode 100644 conf/gnss-sdr_GPS_L1_2ch_udp.conf create mode 100644 src/algorithms/signal_source/adapters/udp_signal_source.cc create mode 100644 src/algorithms/signal_source/adapters/udp_signal_source.h create mode 100644 src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc create mode 100644 src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf new file mode 100644 index 000000000..6fa7684c6 --- /dev/null +++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf @@ -0,0 +1,86 @@ +; You can define your own receiver and invoke it by doing +; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf +; + +[GNSS-SDR] + +;######### GLOBAL OPTIONS ################## +;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [Sps]. +GNSS-SDR.internal_fs_sps=2600000 + +;######### SIGNAL_SOURCE CONFIG ############ +SignalSource.implementation=UDP_Signal_Source +;SignalSource.implementation=File_Signal_Source +SignalSource.filename=/home/javier/gnss/gnss-simulator/build/signal_out.bin ; <- PUT YOUR FILE HERE +SignalSource.item_type=gr_complex +SignalSource.address=0.0.0.0 +SignalSource.port=1234 +SignalSource.payload_bytes=1024 +SignalSource.sample_type=cbyte +SignalSource.RF_channels=2 +SignalSource.dump=true +SignalSource.dump_filename=./signal_source.dat + + +;######### SIGNAL_CONDITIONER CONFIG ############ +SignalConditioner0.implementation=Pass_Through +SignalConditioner1.implementation=Pass_Through + +;######### CHANNELS GLOBAL CONFIG ############ +Channels_1C.count=2 +Channels.in_acquisition=1 + +;# CHANNEL CONNECTION +Channel0.RF_channel_ID=0 +Channel0.signal=1C +Channel1.RF_channel_ID=1 +Channel1.signal=1C + +;######### ACQUISITION GLOBAL CONFIG ############ +Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition +Acquisition_1C.item_type=gr_complex +Acquisition_1C.threshold=20 +Acquisition_1C.use_CFAR_algorithm=false +Acquisition_1C.blocking=true +Acquisition_1C.doppler_max=10000 +Acquisition_1C.doppler_step=250 +Acquisition_1C.dump=false +Acquisition_1C.dump_filename=./acq_dump.dat + + +;######### TRACKING GLOBAL CONFIG ############ +Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking +Tracking_1C.item_type=gr_complex +Tracking_1C.dump=false +Tracking_1C.dump_filename=./tracking_ch_ +Tracking_1C.pll_bw_hz=35.0; +Tracking_1C.dll_bw_hz=2.0; +Tracking_1C.early_late_space_chips=0.5; + + +;######### TELEMETRY DECODER GPS CONFIG ############ +TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder +TelemetryDecoder_1C.dump=false + + +;######### OBSERVABLES CONFIG ############ +Observables.implementation=Hybrid_Observables +Observables.dump=false +Observables.dump_filename=./observables.dat + + +;######### PVT CONFIG ############ +PVT.implementation=RTKLIB_PVT +PVT.positioning_mode=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.dump_filename=./PVT +PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea; +PVT.flag_nmea_tty_port=false; +PVT.nmea_dump_devname=/dev/pts/4 +PVT.flag_rtcm_server=false +PVT.flag_rtcm_tty_port=false +PVT.rtcm_dump_devname=/dev/pts/1 +PVT.dump=false diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index ededc5dc7..d135412e0 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -166,6 +166,7 @@ set(SIGNAL_SOURCE_ADAPTER_SOURCES file_signal_source.cc spir_gss6450_file_signal_source.cc rtl_tcp_signal_source.cc labsat_signal_source.cc + udp_signal_source.cc ${OPT_DRIVER_SOURCES} ) diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.cc b/src/algorithms/signal_source/adapters/udp_signal_source.cc new file mode 100644 index 000000000..af0a63378 --- /dev/null +++ b/src/algorithms/signal_source/adapters/udp_signal_source.cc @@ -0,0 +1,186 @@ +/*! + * \file rtl_tcp_signal_source.cc + * \brief Signal source for the Realtek RTL2832U USB dongle DVB-T receiver + * over TCP. + * (see http://sdr.osmocom.org/trac/wiki/rtl-sdr for more information) + * \author Anthony Arnold, 2015. anthony.arnold(at)uqconnect.edu.au + * + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2015 (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 "udp_signal_source.h" +#include "configuration_interface.h" +#include "GPS_L1_CA.h" +#include +#include +#include + + +using google::LogMessage; + + +UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, + std::string role, unsigned int in_stream, unsigned int out_stream, + boost::shared_ptr queue) : role_(role), in_stream_(in_stream), out_stream_(out_stream), queue_(queue) +{ + // DUMP PARAMETERS + std::string empty = ""; + std::string default_dump_file = "./data/signal_source.dat"; + std::string default_item_type = "gr_complex"; + dump_ = configuration->property(role + ".dump", false); + dump_filename_ = configuration->property(role + ".dump_filename", + default_dump_file); + + // rtl_tcp PARAMETERS + std::string default_address = "127.0.0.1"; + int default_port = 1234; + + RF_channels_ = configuration->property(role + ".RF_channels", 2); + std::string default_sample_type = "cbyte"; + std::string sample_type = configuration->property(role + ".sample_type", default_sample_type); + + item_type_ = configuration->property(role + ".item_type", default_item_type); + address_ = configuration->property(role + ".address", default_address); + port_ = configuration->property(role + ".port", default_port); + int payload_bytes = configuration->property(role + ".payload_bytes", 1024); + + if (sample_type.compare("cbyte")==0) + { + std::cout<<"address_ "< gr_complex type conversion blocks + for (int n = 0; n < (RF_channels_ * 2); n++) + { + char_to_float.push_back(gr::blocks::char_to_float::make()); + } + + for (int n = 0; n < RF_channels_; n++) + { + float_to_complex_.push_back(gr::blocks::float_to_complex::make()); + } + + item_size_ = sizeof(gr_complex); + + if (dump_) + { + file_sink_dbg_=gr::blocks::file_sink::make(sizeof(char), "debug.dat"); + + for (int n = 0; n < RF_channels_; n++) + { + DLOG(INFO) << "Dumping output into file " << (dump_filename_+"ch"+std::to_string(n)); + file_sink_.push_back(gr::blocks::file_sink::make(item_size_, (dump_filename_+"ch"+std::to_string(n)).c_str())); + } + } +} + + +UDPSignalSource::~UDPSignalSource() +{ +} + + +void UDPSignalSource::connect(gr::top_block_sptr top_block) +{ + top_block->connect(udp_gnss_rx_source_,0, demux_,0); + DLOG(INFO)<<"connected udp_source to demux"<connect(demux_, n, char_to_float.at(n), 0); + DLOG(INFO) << "connected demux to char_to_float CH" << n; + } + for (int n = 0; n < RF_channels_; n++) + { + top_block->connect(char_to_float.at(n * 2), 0, float_to_complex_.at(n), 0); + top_block->connect(char_to_float.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); + DLOG(INFO) << "connected char_to_float to float_to_complex_ CH" << n; + } + + if (dump_) + { + top_block->connect(udp_gnss_rx_source_,0, file_sink_dbg_,0); + for (int n = 0; n < RF_channels_; n++) + { + top_block->connect(float_to_complex_.at(n), 0, file_sink_.at(n), 0); + DLOG(INFO) << "connected source to file sink"; + } + } +} + + +void UDPSignalSource::disconnect(gr::top_block_sptr top_block) +{ + + for (int n = 0; n < (RF_channels_ * 2); n++) + { + top_block->disconnect(demux_, n, char_to_float.at(n), 0); + DLOG(INFO) << "disconnect demux to char_to_float CH" << n; + } + for (int n = 0; n < RF_channels_; n++) + { + top_block->disconnect(char_to_float.at(n * 2), 0, float_to_complex_.at(n), 0); + top_block->disconnect(char_to_float.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); + DLOG(INFO) << "disconnect char_to_float to float_to_complex_ CH" << n; + } + + if (dump_) + { + top_block->disconnect(udp_gnss_rx_source_,0, file_sink_dbg_,0); + for (int n = 0; n < RF_channels_; n++) + { + top_block->disconnect(float_to_complex_.at(n), 0, file_sink_.at(n), 0); + DLOG(INFO) << "disconnected source to file sink"; + } + } + top_block->disconnect(udp_gnss_rx_source_,0, demux_,0); + DLOG(INFO)<<"disconnected udp_source to demux"<. + * + * ------------------------------------------------------------------------- + */ + +#ifndef GNSS_SDR_UDP_SIGNAL_SOURCE_H +#define GNSS_SDR_UDP_SIGNAL_SOURCE_H + +#include "gnss_block_interface.h" +#include "udp_gnss_rx_source.h" +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include + + +class ConfigurationInterface; + +/*! + * \brief This class reads from UDP packets, which streams interleaved + * I/Q samples over a network. + */ +class UDPSignalSource : public GNSSBlockInterface +{ +public: + UDPSignalSource(ConfigurationInterface* configuration, + std::string role, unsigned int in_stream, + unsigned int out_stream, boost::shared_ptr queue); + + virtual ~UDPSignalSource(); + + inline std::string role() override + { + return role_; + } + + /*! + * \brief Returns "UDP_Signal_Source" + */ + inline std::string implementation() override + { + return "UDP_Signal_Source"; + } + + inline size_t item_size() override + { + return item_size_; + } + + void connect(gr::top_block_sptr top_block) override; + void disconnect(gr::top_block_sptr top_block) override; + gr::basic_block_sptr get_left_block() override; + gr::basic_block_sptr get_right_block() override; + gr::basic_block_sptr get_right_block(int RF_channel) override; + +private: + std::string role_; + + // UDP settings + std::string address_; + int port_; + int RF_channels_; + + unsigned int in_stream_; + unsigned int out_stream_; + + + std::string item_type_; + size_t item_size_; + bool dump_; + std::string dump_filename_; + std::vector> char_to_float; + std::vector> float_to_complex_; + + udp_gnss_rx_source_sptr udp_gnss_rx_source_; + gr::blocks::deinterleave::sptr demux_; + gr::blocks::file_sink::sptr file_sink_dbg_; + std::vector> file_sink_; + boost::shared_ptr queue_; +}; + +#endif /*GNSS_SDR_UDP_SIGNAL_SOURCE_H */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt index a9252edb0..863a90390 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt @@ -25,6 +25,7 @@ set(SIGNAL_SOURCE_GR_BLOCKS_SOURCES unpack_2bit_samples.cc unpack_spir_gss6450_samples.cc labsat23_source.cc + udp_gnss_rx_source.cc ) include_directories( diff --git a/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc b/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc new file mode 100644 index 000000000..ef24c829b --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc @@ -0,0 +1,215 @@ +/* -*- c++ -*- */ +/* + * Copyright 2007-2010,2013 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio 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. + * + * GNU Radio 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. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "udp_gnss_rx_source.h" +#include +#include +#include +#include +#include +#include +#include + +const int udp_gnss_rx_source::BUF_SIZE_PAYLOADS = + gr::prefs::singleton()->get_long("udp_blocks", "buf_size_payloads", 50); + +udp_gnss_rx_source_sptr +make_udp_gnss_rx_source(size_t itemsize, + const std::string &ipaddr, int port, + int payload_size, bool eof) +{ + return gnuradio::get_initial_sptr + (new udp_gnss_rx_source(itemsize, ipaddr, port, + payload_size, eof)); +} + +udp_gnss_rx_source::udp_gnss_rx_source(size_t itemsize, + const std::string &host, int port, + int payload_size, bool eof) +: sync_block("udp_gnss_rx_source", + gr::io_signature::make(0, 0, 0), + gr::io_signature::make(1, 1, itemsize)), + d_itemsize(itemsize), d_payload_size(payload_size), + d_eof(eof), d_connected(false), d_residual(0), d_sent(0), d_offset(0) +{ + // Give us some more room to play. + d_rxbuf = new char[4*d_payload_size]; + d_residbuf = new char[BUF_SIZE_PAYLOADS*d_payload_size]; + + connect(host, port); +} + +udp_gnss_rx_source::~udp_gnss_rx_source() +{ + if(d_connected) + disconnect(); + + delete [] d_rxbuf; + delete [] d_residbuf; +} + +void +udp_gnss_rx_source::connect(const std::string &host, int port) +{ + if(d_connected) + disconnect(); + + d_host = host; + d_port = static_cast(port); + + std::string s_port; + s_port = (boost::format("%d")%d_port).str(); + + if(host.size() > 0) { + boost::asio::ip::udp::resolver resolver(d_io_service); + boost::asio::ip::udp::resolver::query query(d_host, s_port, + boost::asio::ip::resolver_query_base::passive); + d_endpoint = *resolver.resolve(query); + + d_socket = new boost::asio::ip::udp::socket(d_io_service); + d_socket->open(d_endpoint.protocol()); + + boost::asio::socket_base::reuse_address roption(true); + d_socket->set_option(roption); + + d_socket->bind(d_endpoint); + + start_receive(); + d_udp_thread = gr::thread::thread(boost::bind(&udp_gnss_rx_source::run_io_service, this)); + d_connected = true; + } +} + +void +udp_gnss_rx_source::disconnect() +{ + gr::thread::scoped_lock lock(d_setlock); + + if(!d_connected) + return; + + d_io_service.reset(); + d_io_service.stop(); + d_udp_thread.join(); + + d_socket->close(); + delete d_socket; + + d_connected = false; +} + +// Return port number of d_socket +int +udp_gnss_rx_source::get_port(void) +{ + //return d_endpoint.port(); + return d_socket->local_endpoint().port(); +} + +void +udp_gnss_rx_source::start_receive() +{ + d_socket->async_receive_from(boost::asio::buffer((void*)d_rxbuf, d_payload_size), d_endpoint_rcvd, + boost::bind(&udp_gnss_rx_source::handle_read, this, + boost::asio::placeholders::error, + boost::asio::placeholders::bytes_transferred)); +} + +void +udp_gnss_rx_source::handle_read(const boost::system::error_code& error, + size_t bytes_transferred) +{ + if(!error) { + { + boost::lock_guard lock(d_udp_mutex); + if(d_eof && (bytes_transferred == 0)) { + // If we are using EOF notification, test for it and don't + // add anything to the output. + d_residual = WORK_DONE; + d_cond_wait.notify_one(); + return; + } + else { + // Make sure we never go beyond the boundary of the + // residual buffer. This will just drop the last bit of + // data in the buffer if we've run out of room. + if((int)(d_residual + bytes_transferred) >= (BUF_SIZE_PAYLOADS*d_payload_size)) { + GR_LOG_WARN(d_logger, "Too much data; dropping packet."); + } + else { + // otherwise, copy received data into local buffer for + // copying later. + memcpy(d_residbuf+d_residual, d_rxbuf, bytes_transferred); + d_residual += bytes_transferred; + } + } + d_cond_wait.notify_one(); + } + } + start_receive(); +} + +int +udp_gnss_rx_source::work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) +{ + gr::thread::scoped_lock l(d_setlock); + + char *out = (char*)output_items[0]; + + // Use async receive_from to get data from UDP buffer and wait + // on a conditional signal before proceeding. We use this + // because the conditional wait is interruptable while a + // synchronous receive_from is not. + boost::unique_lock lock(d_udp_mutex); + + //use timed_wait to avoid permanent blocking in the work function + d_cond_wait.timed_wait(lock, boost::posix_time::milliseconds(10)); + + if (d_residual < 0) { + return d_residual; + } + + int bytes_left_in_buffer = (int)(d_residual - d_sent); + int bytes_to_send = std::min(d_itemsize * noutput_items, bytes_left_in_buffer); + + // Copy the received data in the residual buffer to the output stream + memcpy(out, d_residbuf+d_sent, bytes_to_send); + int nitems = bytes_to_send/d_itemsize; + + // Keep track of where we are if we don't have enough output + // space to send all the data in the residbuf. + if (bytes_to_send == bytes_left_in_buffer) { + d_residual = 0; + d_sent = 0; + } + else { + d_sent += bytes_to_send; + } + + return nitems; +} diff --git a/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h b/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h new file mode 100644 index 000000000..5bab10b4a --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h @@ -0,0 +1,91 @@ +/* -*- c++ -*- */ +/* + * Copyright 2007-2010,2013 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio 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. + * + * GNU Radio 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. + */ + +#ifndef INCLUDED_GR_UDP_GNSS_RX_SOURCE_IMPL_H +#define INCLUDED_GR_UDP_GNSS_RX_SOURCE_IMPL_H + +#include +#include +#include +#include + +class udp_gnss_rx_source; + +typedef boost::shared_ptr udp_gnss_rx_source_sptr; + +udp_gnss_rx_source_sptr make_udp_gnss_rx_source(size_t itemsize, + const std::string &ipaddr, int port, + int payload_size, bool eof); + + + + class udp_gnss_rx_source : public gr::blocks::udp_source + { + private: + size_t d_itemsize; + int d_payload_size; // maximum transmission unit (packet length) + bool d_eof; // look for an EOF signal + bool d_connected; // are we connected? + char *d_rxbuf; // get UDP buffer items + char *d_residbuf; // hold buffer between calls + ssize_t d_residual; // hold information about number of bytes stored in residbuf + ssize_t d_sent; // track how much of d_residbuf we've outputted + size_t d_offset; // point to residbuf location offset + + static const int BUF_SIZE_PAYLOADS; //!< The d_residbuf size in multiples of d_payload_size + + std::string d_host; + unsigned short d_port; + + boost::asio::ip::udp::socket *d_socket; + boost::asio::ip::udp::endpoint d_endpoint; + boost::asio::ip::udp::endpoint d_endpoint_rcvd; + boost::asio::io_service d_io_service; + + gr::thread::condition_variable d_cond_wait; + gr::thread::mutex d_udp_mutex; + gr::thread::thread d_udp_thread; + + void start_receive(); + void handle_read(const boost::system::error_code& error, + size_t bytes_transferred); + void run_io_service() { d_io_service.run(); } + + public: + udp_gnss_rx_source(size_t itemsize, + const std::string &host, int port, + int payload_size, bool eof); + ~udp_gnss_rx_source(); + + void connect(const std::string &host, int port); + void disconnect(); + + int payload_size() { return d_payload_size; } + int get_port(); + + int work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); + }; + + +#endif /* INCLUDED_GR_UDP_GNSS_RX_SOURCE_H */ diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 09d396b36..7aa1bab99 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -45,6 +45,7 @@ #include "spir_file_signal_source.h" #include "spir_gss6450_file_signal_source.h" #include "rtl_tcp_signal_source.h" +#include "udp_signal_source.h" #include "two_bit_packed_file_signal_source.h" #include "labsat_signal_source.h" #include "channel.h" @@ -1029,6 +1030,21 @@ std::unique_ptr GNSSBlockFactory::GetBlock( block = std::move(block_); } + catch (const std::exception &e) + { + std::cout << "GNSS-SDR program ended." << std::endl; + exit(1); + } + } + else if (implementation.compare("UDP_Signal_Source") == 0) + { + try + { + std::unique_ptr block_(new UDPSignalSource(configuration.get(), role, in_streams, + out_streams, queue)); + block = std::move(block_); + } + catch (const std::exception &e) { std::cout << "GNSS-SDR program ended." << std::endl; From 8b390d0924892189c2620e1f2f63280efee77396 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 1 May 2018 23:32:52 +0200 Subject: [PATCH 040/108] Replace boost::lexical_cast with std::to_string Fixes in optional buildings --- .../signal_source/libs/CMakeLists.txt | 4 +- src/core/receiver/control_thread.cc | 17 +- src/core/receiver/gnss_block_factory.cc | 531 +++++++++--------- src/core/receiver/gnss_flowgraph.cc | 133 ++++- 4 files changed, 408 insertions(+), 277 deletions(-) diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index 9cb569618..073cc343f 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -52,10 +52,10 @@ if(ENABLE_FMCOMMS2 OR ENABLE_AD9361) endif(LIBIIO_FOUND) endif(ENABLE_FMCOMMS2 OR ENABLE_AD9361) -if(ENABLE_FPGA) +if(ENABLE_FPGA OR ENABLE_AD9361) set(OPT_SIGNAL_SOURCE_LIB_SOURCES ${OPT_SIGNAL_SOURCE_LIB_SOURCES} fpga_switch.cc) set(OPT_SIGNAL_SOURCE_LIB_HEADERS ${OPT_SIGNAL_SOURCE_LIB_HEADERS} fpga_switch.h) -endif(ENABLE_FPGA) +endif(ENABLE_FPGA OR ENABLE_AD9361) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 9121d7fa7..aba3c0272 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -110,7 +110,15 @@ ControlThread::~ControlThread() void ControlThread::run() { // Connect the flowgraph - flowgraph_->connect(); + try + { + flowgraph_->connect(); + } + catch (const std::exception e) + { + LOG(ERROR) << e.what(); + return; + } if (flowgraph_->connected()) { LOG(INFO) << "Flowgraph connected"; @@ -141,9 +149,9 @@ void ControlThread::run() bool enable_FPGA = configuration_->property("Channel.enable_FPGA", false); if (enable_FPGA == true) - { - flowgraph_->start_acquisition_helper(); - } + { + flowgraph_->start_acquisition_helper(); + } // Main loop to read and process the control messages while (flowgraph_->running() && !stop_) @@ -271,6 +279,7 @@ bool ControlThread::read_assistance_from_XML() return ret; } + void ControlThread::assist_GNSS() { //######### GNSS Assistance ################################# diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 09d396b36..329f2e168 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -148,7 +148,6 @@ #include "gps_l1_ca_dll_pll_tracking_gpu.h" #endif -#include #include #include #include @@ -169,9 +168,16 @@ std::unique_ptr GNSSBlockFactory::GetSignalSource( { std::string default_implementation = "File_Signal_Source"; std::string role = "SignalSource"; //backwards compatibility for old conf files - if (ID != -1) + try { - role = "SignalSource" + boost::lexical_cast(ID); + if (ID != -1) + { + role = "SignalSource" + std::to_string(ID); + } + } + catch (const std::exception &e) + { + LOG(WARNING) << e.what(); } std::string implementation = configuration->property(role + ".implementation", default_implementation); LOG(INFO) << "Getting SignalSource with implementation " << implementation; @@ -188,15 +194,20 @@ std::unique_ptr GNSSBlockFactory::GetSignalConditioner( std::string role_datatypeadapter = "DataTypeAdapter"; std::string role_inputfilter = "InputFilter"; std::string role_resampler = "Resampler"; - - if (ID != -1) + try { - role_conditioner = "SignalConditioner" + boost::lexical_cast(ID); - role_datatypeadapter = "DataTypeAdapter" + boost::lexical_cast(ID); - role_inputfilter = "InputFilter" + boost::lexical_cast(ID); - role_resampler = "Resampler" + boost::lexical_cast(ID); + if (ID != -1) + { + role_conditioner = "SignalConditioner" + std::to_string(ID); + role_datatypeadapter = "DataTypeAdapter" + std::to_string(ID); + role_inputfilter = "InputFilter" + std::to_string(ID); + role_resampler = "Resampler" + std::to_string(ID); + } + } + catch (const std::exception &e) + { + LOG(WARNING) << e.what(); } - std::string signal_conditioner = configuration->property(role_conditioner + ".implementation", default_implementation); std::string data_type_adapter; @@ -293,31 +304,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_1C( LOG(INFO) << "Instantiating Channel " << channel << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm; - std::string aux = configuration->property("Acquisition_1C" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_1C" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_1C" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_1C" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_1C" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_1C" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -358,31 +369,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_2S( { LOG(INFO) << "Instantiating Channel " << channel << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm; - std::string aux = configuration->property("Acquisition_2S" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_2S" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_2S" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_2S" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_2S" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_2S" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -426,31 +437,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_1B( std::string id = stream.str(); LOG(INFO) << "Instantiating Channel " << id << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm; - std::string aux = configuration->property("Acquisition_1B" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_1B" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_1B" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_1B" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_1B" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_1B" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -494,31 +505,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_5X( std::string id = stream.str(); LOG(INFO) << "Instantiating Channel " << id << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm; - std::string aux = configuration->property("Acquisition_5X" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_5X" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_5X" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_5X" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_5X" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_5X" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -563,31 +574,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_1G( LOG(INFO) << "Instantiating Channel " << channel << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder Implementation: " << tlm; - std::string aux = configuration->property("Acquisition_1G" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_1G" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_1G" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_1G" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_1G" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_1G" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -632,31 +643,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_2G( LOG(INFO) << "Instantiating Channel " << channel << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder Implementation: " << tlm; - std::string aux = configuration->property("Acquisition_2G" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_2G" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_2G" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_2G" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_2G" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_2G" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -700,31 +711,31 @@ std::unique_ptr GNSSBlockFactory::GetChannel_L5( std::string id = stream.str(); LOG(INFO) << "Instantiating Channel " << id << " with Acquisition Implementation: " << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm; - std::string aux = configuration->property("Acquisition_L5" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + std::string aux = configuration->property("Acquisition_L5" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix1; if (aux.compare("W") != 0) { - appendix1 = boost::lexical_cast(channel); + appendix1 = std::to_string(channel); } else { appendix1 = ""; } - aux = configuration->property("Tracking_L5" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("Tracking_L5" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix2; if (aux.compare("W") != 0) { - appendix2 = boost::lexical_cast(channel); + appendix2 = std::to_string(channel); } else { appendix2 = ""; } - aux = configuration->property("TelemetryDecoder_L5" + boost::lexical_cast(channel) + ".implementation", std::string("W")); + aux = configuration->property("TelemetryDecoder_L5" + std::to_string(channel) + ".implementation", std::string("W")); std::string appendix3; if (aux.compare("W") != 0) { - appendix3 = boost::lexical_cast(channel); + appendix3 = std::to_string(channel); } else { @@ -768,227 +779,233 @@ std::unique_ptr>> GNSSBlockFacto unsigned int channel_absolute_id = 0; unsigned int Channels_1C_count = configuration->property("Channels_1C.count", 0); - unsigned int Channels_2S_count = configuration->property("Channels_2S.count", 0); unsigned int Channels_1B_count = configuration->property("Channels_1B.count", 0); - unsigned int Channels_5X_count = configuration->property("Channels_5X.count", 0); unsigned int Channels_1G_count = configuration->property("Channels_1G.count", 0); unsigned int Channels_2G_count = configuration->property("Channels_2G.count", 0); + unsigned int Channels_2S_count = configuration->property("Channels_2S.count", 0); + unsigned int Channels_5X_count = configuration->property("Channels_5X.count", 0); unsigned int Channels_L5_count = configuration->property("Channels_L5.count", 0); unsigned int total_channels = Channels_1C_count + - Channels_2S_count + Channels_1B_count + - Channels_5X_count + Channels_1G_count + + Channels_2S_count + Channels_2G_count + + Channels_5X_count + Channels_L5_count; std::unique_ptr>> channels(new std::vector>(total_channels)); - - //**************** GPS L1 C/A CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_1C_count << " GPS L1 C/A channels"; - acquisition_implementation = configuration->property("Acquisition_1C.implementation", default_implementation); - tracking_implementation = configuration->property("Tracking_1C.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_1C.implementation", default_implementation); - - for (unsigned int i = 0; i < Channels_1C_count; i++) + try { - //(i.e. Acquisition_1C0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_1C" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_1C0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_1C" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_1C" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); + //**************** GPS L1 C/A CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_1C_count << " GPS L1 C/A channels"; + acquisition_implementation = configuration->property("Acquisition_1C.implementation", default_implementation); + tracking_implementation = configuration->property("Tracking_1C.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_1C.implementation", default_implementation); - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_1C(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; + for (unsigned int i = 0; i < Channels_1C_count; i++) + { + //(i.e. Acquisition_1C0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_1C" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_1C0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_1C" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_1C" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_1C(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } + + //**************** GPS L2C (M) CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_2S_count << " GPS L2C (M) channels"; + tracking_implementation = configuration->property("Tracking_2S.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_2S.implementation", default_implementation); + acquisition_implementation = configuration->property("Acquisition_2S.implementation", default_implementation); + for (unsigned int i = 0; i < Channels_2S_count; i++) + { + //(i.e. Acquisition_1C0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_2S" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_1C0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_2S" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_2S" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_2S(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } + + //**************** GPS L5 CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_L5_count << " GPS L5 channels"; + tracking_implementation = configuration->property("Tracking_L5.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_L5.implementation", default_implementation); + acquisition_implementation = configuration->property("Acquisition_L5.implementation", default_implementation); + for (unsigned int i = 0; i < Channels_L5_count; i++) + { + //(i.e. Acquisition_1C0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_L5" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_1C0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_L5" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_L5" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_L5(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } + + //**************** GALILEO E1 B (I/NAV OS) CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_1B_count << " GALILEO E1 B (I/NAV OS) channels"; + tracking_implementation = configuration->property("Tracking_1B.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_1B.implementation", default_implementation); + acquisition_implementation = configuration->property("Acquisition_1B.implementation", default_implementation); + for (unsigned int i = 0; i < Channels_1B_count; i++) + { + //(i.e. Acquisition_1C0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_1B" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_1C0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_1B" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_1B" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_1B(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } + + //**************** GALILEO E5a I (F/NAV OS) CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_5X_count << " GALILEO E5a I (F/NAV OS) channels"; + tracking_implementation = configuration->property("Tracking_5X.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_5X.implementation", default_implementation); + acquisition_implementation = configuration->property("Acquisition_5X.implementation", default_implementation); + for (unsigned int i = 0; i < Channels_5X_count; i++) + { + //(i.e. Acquisition_1C0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_5X" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_1C0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_5X" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_5X" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_5X(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } + + //**************** GLONASS L1 C/A CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_1G_count << " GLONASS L1 C/A channels"; + acquisition_implementation = configuration->property("Acquisition_1G.implementation", default_implementation); + tracking_implementation = configuration->property("Tracking_1G.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_1G.implementation", default_implementation); + + for (unsigned int i = 0; i < Channels_1G_count; i++) + { + //(i.e. Acquisition_1G0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_1G" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_1G0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_1G" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_1G" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_1G(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } + + //**************** GLONASS L2 C/A CHANNELS ********************** + LOG(INFO) << "Getting " << Channels_2G_count << " GLONASS L2 C/A channels"; + acquisition_implementation = configuration->property("Acquisition_2G.implementation", default_implementation); + tracking_implementation = configuration->property("Tracking_2G.implementation", default_implementation); + telemetry_decoder_implementation = configuration->property("TelemetryDecoder_2G.implementation", default_implementation); + + for (unsigned int i = 0; i < Channels_2G_count; i++) + { + //(i.e. Acquisition_2G0.implementation=xxxx) + std::string acquisition_implementation_specific = configuration->property( + "Acquisition_2G" + std::to_string(channel_absolute_id) + ".implementation", + acquisition_implementation); + //(i.e. Tracking_2G0.implementation=xxxx) + std::string tracking_implementation_specific = configuration->property( + "Tracking_2G" + std::to_string(channel_absolute_id) + ".implementation", + tracking_implementation); + std::string telemetry_decoder_implementation_specific = configuration->property( + "TelemetryDecoder_2G" + std::to_string(channel_absolute_id) + ".implementation", + telemetry_decoder_implementation); + + // Push back the channel to the vector of channels + channels->at(channel_absolute_id) = std::move(GetChannel_2G(configuration, + acquisition_implementation_specific, + tracking_implementation_specific, + telemetry_decoder_implementation_specific, + channel_absolute_id, + queue)); + channel_absolute_id++; + } } - - //**************** GPS L2C (M) CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_2S_count << " GPS L2C (M) channels"; - tracking_implementation = configuration->property("Tracking_2S.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_2S.implementation", default_implementation); - acquisition_implementation = configuration->property("Acquisition_2S.implementation", default_implementation); - for (unsigned int i = 0; i < Channels_2S_count; i++) + catch (const std::exception &e) { - //(i.e. Acquisition_1C0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_2S" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_1C0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_2S" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_2S" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); - - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_2S(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; - } - - //**************** GPS L5 CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_L5_count << " GPS L5 channels"; - tracking_implementation = configuration->property("Tracking_L5.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_L5.implementation", default_implementation); - acquisition_implementation = configuration->property("Acquisition_L5.implementation", default_implementation); - for (unsigned int i = 0; i < Channels_L5_count; i++) - { - //(i.e. Acquisition_1C0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_L5" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_1C0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_L5" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_L5" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); - - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_L5(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; - } - - //**************** GALILEO E1 B (I/NAV OS) CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_1B_count << " GALILEO E1 B (I/NAV OS) channels"; - tracking_implementation = configuration->property("Tracking_1B.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_1B.implementation", default_implementation); - acquisition_implementation = configuration->property("Acquisition_1B.implementation", default_implementation); - for (unsigned int i = 0; i < Channels_1B_count; i++) - { - //(i.e. Acquisition_1C0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_1B" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_1C0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_1B" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_1B" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); - - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_1B(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; - } - - //**************** GALILEO E5a I (F/NAV OS) CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_5X_count << " GALILEO E5a I (F/NAV OS) channels"; - tracking_implementation = configuration->property("Tracking_5X.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_5X.implementation", default_implementation); - acquisition_implementation = configuration->property("Acquisition_5X.implementation", default_implementation); - for (unsigned int i = 0; i < Channels_5X_count; i++) - { - //(i.e. Acquisition_1C0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_5X" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_1C0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_5X" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_5X" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); - - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_5X(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; - } - - //**************** GLONASS L1 C/A CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_1G_count << " GLONASS L1 C/A channels"; - acquisition_implementation = configuration->property("Acquisition_1G.implementation", default_implementation); - tracking_implementation = configuration->property("Tracking_1G.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_1G.implementation", default_implementation); - - for (unsigned int i = 0; i < Channels_1G_count; i++) - { - //(i.e. Acquisition_1G0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_1G" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_1G0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_1G" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_1G" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); - - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_1G(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; - } - - //**************** GLONASS L2 C/A CHANNELS ********************** - LOG(INFO) << "Getting " << Channels_2G_count << " GLONASS L2 C/A channels"; - acquisition_implementation = configuration->property("Acquisition_2G.implementation", default_implementation); - tracking_implementation = configuration->property("Tracking_2G.implementation", default_implementation); - telemetry_decoder_implementation = configuration->property("TelemetryDecoder_2G.implementation", default_implementation); - - for (unsigned int i = 0; i < Channels_2G_count; i++) - { - //(i.e. Acquisition_2G0.implementation=xxxx) - std::string acquisition_implementation_specific = configuration->property( - "Acquisition_2G" + boost::lexical_cast(channel_absolute_id) + ".implementation", - acquisition_implementation); - //(i.e. Tracking_2G0.implementation=xxxx) - std::string tracking_implementation_specific = configuration->property( - "Tracking_2G" + boost::lexical_cast(channel_absolute_id) + ".implementation", - tracking_implementation); - std::string telemetry_decoder_implementation_specific = configuration->property( - "TelemetryDecoder_2G" + boost::lexical_cast(channel_absolute_id) + ".implementation", - telemetry_decoder_implementation); - - // Push back the channel to the vector of channels - channels->at(channel_absolute_id) = std::move(GetChannel_2G(configuration, - acquisition_implementation_specific, - tracking_implementation_specific, - telemetry_decoder_implementation_specific, - channel_absolute_id, - queue)); - channel_absolute_id++; + LOG(WARNING) << e.what(); } return channels; diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index 17cb2205a..c12c126ae 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -310,7 +310,6 @@ void GNSSFlowgraph::connect() return; } } - #else // connect the signal source to sample counter // connect the sample counter to Observables @@ -341,7 +340,14 @@ void GNSSFlowgraph::connect() { if (FPGA_enabled == false) { - selected_signal_conditioner_ID = configuration_->property("Channel" + std::to_string(i) + ".RF_channel_ID", 0); + try + { + selected_signal_conditioner_ID = configuration_->property("Channel" + std::to_string(i) + ".RF_channel_ID", 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << e.what(); + } try { top_block_->connect(sig_conditioner_.at(selected_signal_conditioner_ID)->get_right_block(), 0, @@ -376,7 +382,15 @@ void GNSSFlowgraph::connect() std::vector vector_of_channels; for (unsigned int i = 0; i < channels_count_; i++) { - unsigned int sat = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); + unsigned int sat = 0; + try + { + sat = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << e.what(); + } if (sat == 0) { vector_of_channels.push_back(i); @@ -392,7 +406,15 @@ void GNSSFlowgraph::connect() for (unsigned int& i : vector_of_channels) { std::string gnss_signal = channels_.at(i)->get_signal().get_signal_str(); // use channel's implicit signal - unsigned int sat = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); + unsigned int sat = 0; + try + { + sat = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << e.what(); + } if (sat == 0) { channels_.at(i)->set_signal(search_next_signal(gnss_signal, true)); @@ -459,7 +481,7 @@ void GNSSFlowgraph::disconnect() LOG(INFO) << "flowgraph was not connected"; return; } - + connected_ = false; // Signal Source (i) > Signal conditioner (i) > int RF_Channels = 0; int signal_conditioner_ID = 0; @@ -511,24 +533,77 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect signal source " << i << " to signal conditioner " << i << ": " << e.what(); + top_block_->disconnect_all(); + return; } } + bool FPGA_enabled = configuration_->property(sig_source_.at(0)->role() + ".enable_FPGA", false); + +#if ENABLE_FPGA + if (FPGA_enabled == false) + { + // disconnect the signal source to sample counter + // disconnect the sample counter to Observables + try + { + top_block_->disconnect(sig_conditioner_.at(0)->get_right_block(), 0, ch_out_sample_counter, 0); + top_block_->disconnect(ch_out_sample_counter, 0, observables_->get_left_block(), channels_count_); // extra port for the sample counter pulse + } + catch (const std::exception& e) + { + LOG(WARNING) << "Can't disconnect sample counter"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } + } + else + { + try + { + top_block_->disconnect(null_source_, 0, throttle_, 0); + top_block_->disconnect(throttle_, 0, time_counter_, 0); + top_block_->disconnect(time_counter_, 0, observables_->get_left_block(), channels_count_); + } + catch (const std::exception& e) + { + LOG(WARNING) << "Can't connect sample counter"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; + } + } +#else + // disconnect the signal source to sample counter + // disconnect the sample counter to Observables try { top_block_->disconnect(sig_conditioner_.at(0)->get_right_block(), 0, ch_out_sample_counter, 0); - top_block_->disconnect(ch_out_sample_counter, 0, observables_->get_left_block(), channels_count_); //extra port for the sample counter pulse + top_block_->disconnect(ch_out_sample_counter, 0, observables_->get_left_block(), channels_count_); // extra port for the sample counter pulse } catch (const std::exception& e) { - LOG(INFO) << "Can't disconnect sample counter: " << e.what(); + LOG(WARNING) << "Can't connect sample counter"; + LOG(ERROR) << e.what(); + top_block_->disconnect_all(); + return; } - +#endif // Signal conditioner (selected_signal_source) >> channels (i) (dependent of their associated SignalSource_ID) int selected_signal_conditioner_ID; for (unsigned int i = 0; i < channels_count_; i++) { - selected_signal_conditioner_ID = configuration_->property("Channel" + std::to_string(i) + ".RF_channel_ID", 0); + try + { + selected_signal_conditioner_ID = configuration_->property("Channel" + std::to_string(i) + ".RF_channel_ID", 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << e.what(); + top_block_->disconnect_all(); + return; + } try { top_block_->disconnect(sig_conditioner_.at(selected_signal_conditioner_ID)->get_right_block(), 0, @@ -537,6 +612,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect signal conditioner " << selected_signal_conditioner_ID << " to channel " << i << ": " << e.what(); + top_block_->disconnect_all(); + return; } // Signal Source > Signal conditioner >> Channels >> Observables @@ -548,6 +625,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect channel " << i << " to observables: " << e.what(); + top_block_->disconnect_all(); + return; } } @@ -562,6 +641,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect observables to PVT: " << e.what(); + top_block_->disconnect_all(); + return; } for (int i = 0; i < sources_count_; i++) @@ -573,6 +654,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect signal source block " << i << " internally: " << e.what(); + top_block_->disconnect_all(); + return; } } @@ -586,6 +669,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect signal conditioner block " << i << " internally: " << e.what(); + top_block_->disconnect_all(); + return; } } @@ -598,6 +683,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect channel " << i << " internally: " << e.what(); + top_block_->disconnect_all(); + return; } } @@ -608,6 +695,8 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect observables block internally: " << e.what(); + top_block_->disconnect_all(); + return; } // Signal Source > Signal conditioner >> Channels >> Observables > PVT @@ -618,11 +707,11 @@ void GNSSFlowgraph::disconnect() catch (const std::exception& e) { LOG(INFO) << "Can't disconnect PVT block internally: " << e.what(); + top_block_->disconnect_all(); + return; } DLOG(INFO) << "blocks disconnected internally"; - - connected_ = false; LOG(INFO) << "Flowgraph disconnected"; } @@ -658,7 +747,15 @@ bool GNSSFlowgraph::send_telemetry_msg(pmt::pmt_t msg) void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what) { DLOG(INFO) << "Received " << what << " from " << who << ". Number of applied actions = " << applied_actions_; - unsigned int sat = configuration_->property("Channel" + boost::lexical_cast(who) + ".satellite", 0); + unsigned int sat = 0; + try + { + sat = configuration_->property("Channel" + std::to_string(who) + ".satellite", 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << e.what(); + } switch (what) { case 0: @@ -679,7 +776,15 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what) acq_channels_count_--; for (unsigned int i = 0; i < channels_count_; i++) { - unsigned int sat_ = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); + unsigned int sat_ = 0; + try + { + sat_ = configuration_->property("Channel" + std::to_string(i) + ".satellite", 0); + } + catch (const std::exception& e) + { + LOG(WARNING) << e.what(); + } if (!available_GNSS_signals_.empty() && (acq_channels_count_ < max_acq_channels_) && (channels_state_[i] == 0)) { channels_state_[i] = 1; @@ -828,7 +933,7 @@ void GNSSFlowgraph::init() std::cout << "Please update your configuration file." << std::endl; } - std::shared_ptr > > channels = block_factory_->GetChannels(configuration_, queue_); + std::shared_ptr>> channels = block_factory_->GetChannels(configuration_, queue_); channels_count_ = channels->size(); for (unsigned int i = 0; i < channels_count_; i++) From 189cded82a856eeebda92eecaf79ae69a6813092 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Wed, 2 May 2018 19:48:15 +0200 Subject: [PATCH 041/108] Adding IQ Swap options to UDP source --- .../adapters/udp_signal_source.cc | 105 +++++++++++++----- .../adapters/udp_signal_source.h | 13 +-- 2 files changed, 80 insertions(+), 38 deletions(-) diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.cc b/src/algorithms/signal_source/adapters/udp_signal_source.cc index af0a63378..85d353a96 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/udp_signal_source.cc @@ -57,50 +57,62 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, std::string default_address = "127.0.0.1"; int default_port = 1234; - RF_channels_ = configuration->property(role + ".RF_channels", 2); + RF_channels_ = configuration->property(role + ".RF_channels", 1); + channels_in_udp_= configuration->property(role + ".channels_in_udp", 1); + IQ_swap_= configuration->property(role + ".IQ_swap", false); + std::string default_sample_type = "cbyte"; std::string sample_type = configuration->property(role + ".sample_type", default_sample_type); item_type_ = configuration->property(role + ".item_type", default_item_type); - address_ = configuration->property(role + ".address", default_address); - port_ = configuration->property(role + ".port", default_port); + std::string address = configuration->property(role + ".address", default_address); + int port = configuration->property(role + ".port", default_port); int payload_bytes = configuration->property(role + ".payload_bytes", 1024); if (sample_type.compare("cbyte")==0) { - std::cout<<"address_ "< gr_complex type conversion blocks - for (int n = 0; n < (RF_channels_ * 2); n++) + for (int n = 0; n < (channels_in_udp_ * 2); n++) { - char_to_float.push_back(gr::blocks::char_to_float::make()); + char_to_float_.push_back(gr::blocks::char_to_float::make()); } - for (int n = 0; n < RF_channels_; n++) + for (int n = 0; n < channels_in_udp_; n++) { float_to_complex_.push_back(gr::blocks::float_to_complex::make()); } - item_size_ = sizeof(gr_complex); + if (channels_in_udp_>=RF_channels_) + { + for (int n = 0; n < (channels_in_udp_-RF_channels_); n++) + { + null_sinks_.push_back(gr::blocks::null_sink::make(sizeof(gr_complex))); + } + }else + { + std::cout<<"Configuration error: RF_channelsconnect(udp_gnss_rx_source_,0, demux_,0); DLOG(INFO)<<"connected udp_source to demux"<connect(demux_, n, char_to_float.at(n), 0); + top_block->connect(demux_, n, char_to_float_.at(n), 0); DLOG(INFO) << "connected demux to char_to_float CH" << n; } - for (int n = 0; n < RF_channels_; n++) + for (int n = 0; n < channels_in_udp_; n++) { - top_block->connect(char_to_float.at(n * 2), 0, float_to_complex_.at(n), 0); - top_block->connect(char_to_float.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); + if (!IQ_swap_) + { + top_block->connect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 0); + top_block->connect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); + } + else + { + top_block->connect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 1); + top_block->connect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 0); + } DLOG(INFO) << "connected char_to_float to float_to_complex_ CH" << n; } + //connect null sinks to unused streams + if (channels_in_udp_>RF_channels_) + { + for (int n = 0; n < (channels_in_udp_-RF_channels_); n++) + { + top_block->connect(float_to_complex_.at(RF_channels_+n),0,null_sinks_.at(n),0); + } + } + if (dump_) { - top_block->connect(udp_gnss_rx_source_,0, file_sink_dbg_,0); - for (int n = 0; n < RF_channels_; n++) + for (int n = 0; n < channels_in_udp_; n++) { top_block->connect(float_to_complex_.at(n), 0, file_sink_.at(n), 0); DLOG(INFO) << "connected source to file sink"; @@ -141,22 +169,39 @@ void UDPSignalSource::connect(gr::top_block_sptr top_block) void UDPSignalSource::disconnect(gr::top_block_sptr top_block) { - for (int n = 0; n < (RF_channels_ * 2); n++) + for (int n = 0; n < (channels_in_udp_ * 2); n++) { - top_block->disconnect(demux_, n, char_to_float.at(n), 0); + top_block->disconnect(demux_, n, char_to_float_.at(n), 0); DLOG(INFO) << "disconnect demux to char_to_float CH" << n; } - for (int n = 0; n < RF_channels_; n++) + for (int n = 0; n < channels_in_udp_; n++) { - top_block->disconnect(char_to_float.at(n * 2), 0, float_to_complex_.at(n), 0); - top_block->disconnect(char_to_float.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); + if (!IQ_swap_) + { + top_block->disconnect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 0); + top_block->disconnect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); + } + else + { + top_block->disconnect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 1); + top_block->disconnect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 0); + } DLOG(INFO) << "disconnect char_to_float to float_to_complex_ CH" << n; } + //disconnect null sinks to unused streams + if (channels_in_udp_>RF_channels_) + { + for (int n = 0; n < (channels_in_udp_-RF_channels_); n++) + { + top_block->disconnect(float_to_complex_.at(RF_channels_+n),0,null_sinks_.at(n),0); + } + } + + if (dump_) { - top_block->disconnect(udp_gnss_rx_source_,0, file_sink_dbg_,0); - for (int n = 0; n < RF_channels_; n++) + for (int n = 0; n < channels_in_udp_; n++) { top_block->disconnect(float_to_complex_.at(n), 0, file_sink_.at(n), 0); DLOG(INFO) << "disconnected source to file sink"; diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.h b/src/algorithms/signal_source/adapters/udp_signal_source.h index 8b81d528c..cd60b8e34 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.h +++ b/src/algorithms/signal_source/adapters/udp_signal_source.h @@ -37,8 +37,8 @@ #include #include #include -//#include #include +#include #include #include #include @@ -88,25 +88,22 @@ public: private: std::string role_; - // UDP settings - std::string address_; - int port_; + bool IQ_swap_; int RF_channels_; - + int channels_in_udp_; unsigned int in_stream_; unsigned int out_stream_; - std::string item_type_; size_t item_size_; bool dump_; std::string dump_filename_; - std::vector> char_to_float; + std::vector> char_to_float_; std::vector> float_to_complex_; + std::vector> null_sinks_; udp_gnss_rx_source_sptr udp_gnss_rx_source_; gr::blocks::deinterleave::sptr demux_; - gr::blocks::file_sink::sptr file_sink_dbg_; std::vector> file_sink_; boost::shared_ptr queue_; }; From 4fa5648aa438dba1e994a4aa3de77f1b17c86210 Mon Sep 17 00:00:00 2001 From: mmajoral Date: Thu, 3 May 2018 10:38:21 +0200 Subject: [PATCH 042/108] Currently creating a generic tracking class for the FPGA in the same way as it is done in the SW. --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 3 +- .../gnuradio_blocks/pcps_acquisition_fpga.cc | 2 +- .../gnuradio_blocks/pcps_acquisition_fpga.h | 4 +- .../gps_l1_ca_dll_pll_tracking_fpga.cc | 139 +++++++++++------- .../gps_l1_ca_dll_pll_tracking_fpga.h | 9 +- .../tracking/gnuradio_blocks/CMakeLists.txt | 2 +- ...ga_sc.cc => dll_pll_veml_tracking_fpga.cc} | 126 +++++++++++----- ...fpga_sc.h => dll_pll_veml_tracking_fpga.h} | 122 +++++++++------ src/algorithms/tracking/libs/CMakeLists.txt | 2 +- ...relator_8sc.cc => fpga_multicorrelator.cc} | 24 +-- ...orrelator_8sc.h => fpga_multicorrelator.h} | 4 +- .../gps_l1_ca_dll_pll_tracking_test_fpga.cc | 2 +- 12 files changed, 285 insertions(+), 154 deletions(-) rename src/algorithms/tracking/gnuradio_blocks/{gps_l1_ca_dll_pll_tracking_fpga_sc.cc => dll_pll_veml_tracking_fpga.cc} (87%) rename src/algorithms/tracking/gnuradio_blocks/{gps_l1_ca_dll_pll_tracking_fpga_sc.h => dll_pll_veml_tracking_fpga.h} (57%) rename src/algorithms/tracking/libs/{fpga_multicorrelator_8sc.cc => fpga_multicorrelator.cc} (95%) rename src/algorithms/tracking/libs/{fpga_multicorrelator_8sc.h => fpga_multicorrelator.h} (97%) 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 455fac062..adbcfe05a 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 @@ -132,12 +132,13 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( delete fft_if; delete[] fft_codes_padded; - acquisition_fpga_ = pcps_make_acquisition(acq_parameters); + acquisition_fpga_ = pcps_make_acquisition_fpga(acq_parameters); DLOG(INFO) << "acquisition(" << acquisition_fpga_->unique_id() << ")"; channel_ = 0; doppler_step_ = 0; gnss_synchro_ = 0; + } diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc index 6a337925e..5bc5b2b3d 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -45,7 +45,7 @@ using google::LogMessage; -pcps_acquisition_fpga_sptr pcps_make_acquisition(pcpsconf_fpga_t conf_) +pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_) { return pcps_acquisition_fpga_sptr(new pcps_acquisition_fpga(conf_)); } diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h index 3014a278a..9edb69685 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h @@ -81,7 +81,7 @@ class pcps_acquisition_fpga; typedef boost::shared_ptr pcps_acquisition_fpga_sptr; pcps_acquisition_fpga_sptr -pcps_make_acquisition(pcpsconf_fpga_t conf_); +pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_); /*! * \brief This class implements a Parallel Code Phase Search Acquisition that uses the FPGA. @@ -94,7 +94,7 @@ class pcps_acquisition_fpga : public gr::block private: friend pcps_acquisition_fpga_sptr - pcps_make_acquisition(pcpsconf_fpga_t conf_); + pcps_make_acquisition_fpga(pcpsconf_fpga_t conf_); pcps_acquisition_fpga(pcpsconf_fpga_t conf_); diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc index 336e93eb8..8658a5a0b 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc @@ -1,8 +1,9 @@ /*! * \file gps_l1_ca_dll_pll_tracking.cc * \brief Implementation of an adapter of a DLL+PLL tracking loop block - * for GPS L1 C/A to a TrackingInterface - * \author Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com + * for GPS L1 C/A to a TrackingInterface that uses the FPGA + * \author Marc Majoral, 2018, mmajoral(at)cttc.es + * Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com * Javier Arribas, 2011. jarribas(at)cttc.es * * Code DLL + carrier PLL according to the algorithms described in: @@ -36,11 +37,19 @@ */ -#include "gps_l1_ca_dll_pll_tracking_fpga.h" -#include -#include "GPS_L1_CA.h" -#include "configuration_interface.h" +//#include + +#include +#include "gps_sdr_signal_processing.h" +#include "gps_l1_ca_dll_pll_tracking_fpga.h" +#include "configuration_interface.h" +#include "GPS_L1_CA.h" +#include "gnss_sdr_flags.h" +#include "display.h" + + +#define NUM_PRNs 32 using google::LogMessage; @@ -49,59 +58,88 @@ GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga( unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams) { + dllpllconf_fpga_t trk_param_fpga; DLOG(INFO) << "role " << role; //################# CONFIGURATION PARAMETERS ######################## - int fs_in; - int vector_length; - int f_if; - bool dump; - std::string dump_filename; - std::string item_type; - //std::string default_item_type = "gr_complex"; - std::string default_item_type = "cshort"; - float pll_bw_hz; - float dll_bw_hz; - float early_late_space_chips; - item_type = configuration->property(role + ".item_type", default_item_type); int fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000); - std::string device_name; - unsigned int device_base; - std::string default_device_name = "/dev/uio"; - device_name = configuration->property(role + ".devicename", default_device_name); - device_base = configuration->property(role + ".device_base", 1); - fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); - f_if = configuration->property(role + ".if", 0); - dump = configuration->property(role + ".dump", false); - pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0); - dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0); - early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5); + int fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); + trk_param_fpga.fs_in = fs_in; + bool dump = configuration->property(role + ".dump", false); + trk_param_fpga.dump = dump; + float pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0); + if (FLAGS_pll_bw_hz != 0.0) pll_bw_hz = static_cast(FLAGS_pll_bw_hz); + trk_param_fpga.pll_bw_hz = pll_bw_hz; + float pll_bw_narrow_hz = configuration->property(role + ".pll_bw_narrow_hz", 20.0); + trk_param_fpga.pll_bw_narrow_hz = pll_bw_narrow_hz; + float dll_bw_narrow_hz = configuration->property(role + ".dll_bw_narrow_hz", 2.0); + trk_param_fpga.dll_bw_narrow_hz = dll_bw_narrow_hz; + float dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0); + if (FLAGS_dll_bw_hz != 0.0) dll_bw_hz = static_cast(FLAGS_dll_bw_hz); + trk_param_fpga.dll_bw_hz = dll_bw_hz; + float early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5); + trk_param_fpga.early_late_space_chips = early_late_space_chips; + float early_late_space_narrow_chips = configuration->property(role + ".early_late_space_narrow_chips", 0.5); + trk_param_fpga.early_late_space_narrow_chips = early_late_space_narrow_chips; std::string default_dump_filename = "./track_ch"; - dump_filename = configuration->property(role + ".dump_filename", default_dump_filename); //unused! - vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS)); - if (item_type.compare("cshort") == 0) + std::string dump_filename = configuration->property(role + ".dump_filename", default_dump_filename); + trk_param_fpga.dump_filename = dump_filename; + int vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS)); + trk_param_fpga.vector_length = vector_length; + int symbols_extended_correlator = configuration->property(role + ".extend_correlation_symbols", 1); + if (symbols_extended_correlator < 1) { - item_size_ = sizeof(lv_16sc_t); - tracking_fpga_sc = gps_l1_ca_dll_pll_make_tracking_fpga_sc( - f_if, fs_in, vector_length, dump, dump_filename, pll_bw_hz, - dll_bw_hz, early_late_space_chips, device_name, - device_base); - DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() - << ")"; + symbols_extended_correlator = 1; + std::cout << TEXT_RED << "WARNING: GPS L1 C/A. extend_correlation_symbols must be bigger than 1. Coherent integration has been set to 1 symbol (1 ms)" << TEXT_RESET << std::endl; } - else + else if (symbols_extended_correlator > 20) { + symbols_extended_correlator = 20; + std::cout << TEXT_RED << "WARNING: GPS L1 C/A. extend_correlation_symbols must be lower than 21. Coherent integration has been set to 20 symbols (20 ms)" << TEXT_RESET << std::endl; + } + trk_param_fpga.extend_correlation_symbols = symbols_extended_correlator; + bool track_pilot = configuration->property(role + ".track_pilot", false); + if (track_pilot) + { + std::cout << TEXT_RED << "WARNING: GPS L1 C/A does not have pilot signal. Data tracking has been enabled" << TEXT_RESET << std::endl; + } + if ((symbols_extended_correlator > 1) and (pll_bw_narrow_hz > pll_bw_hz or dll_bw_narrow_hz > dll_bw_hz)) + { + std::cout << TEXT_RED << "WARNING: GPS L1 C/A. PLL or DLL narrow tracking bandwidth is higher than wide tracking one" << TEXT_RESET << std::endl; + } + trk_param_fpga.very_early_late_space_chips = 0.0; + trk_param_fpga.very_early_late_space_narrow_chips = 0.0; + trk_param_fpga.track_pilot = false; + trk_param_fpga.system = 'G'; + char sig_[3] = "1C"; + std::memcpy(trk_param_fpga.signal, sig_, 3); - item_size_ = sizeof(lv_16sc_t); - // LOG(WARNING) << item_type_ << " unknown tracking item type"; - LOG(WARNING) << item_type - << " the tracking item type for the FPGA tracking test has to be cshort"; - } + // FPGA configuration parameters + std::string default_device_name = "/dev/uio"; + std::string device_name = configuration->property(role + ".devicename", default_device_name); + trk_param_fpga.device_name = device_name; + unsigned int device_base = configuration->property(role + ".device_base", 1); + trk_param_fpga.device_base = device_base; + + //################# PRE-COMPUTE ALL THE CODES ################# + d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); + for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) + { + gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); + } + trk_param_fpga.ca_codes = d_ca_codes; + trk_param_fpga.code_length = GPS_L1_CA_CODE_LENGTH_CHIPS; + + //################# MAKE TRACKING GNURadio object ################### + tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); channel_ = 0; DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; + } GpsL1CaDllPllTrackingFpga::~GpsL1CaDllPllTrackingFpga() -{} +{ + delete[] d_ca_codes; +} void GpsL1CaDllPllTrackingFpga::start_tracking() { @@ -125,14 +163,14 @@ void GpsL1CaDllPllTrackingFpga::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) void GpsL1CaDllPllTrackingFpga::connect(gr::top_block_sptr top_block) { if(top_block) { /* top_block is not null */}; - //nothing to connect, now the tracking uses gr_sync_decimator + //nothing to connect } void GpsL1CaDllPllTrackingFpga::disconnect(gr::top_block_sptr top_block) { if(top_block) { /* top_block is not null */}; - //nothing to disconnect, now the tracking uses gr_sync_decimator + //nothing to disconnect } @@ -148,8 +186,3 @@ gr::basic_block_sptr GpsL1CaDllPllTrackingFpga::get_right_block() } -void GpsL1CaDllPllTrackingFpga::reset(void) -{ - // tracking_fpga_sc->reset(); - -} diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h index f45e3f802..1da65cda8 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h @@ -40,7 +40,7 @@ #include #include "tracking_interface.h" -#include "gps_l1_ca_dll_pll_tracking_fpga_sc.h" +#include "dll_pll_veml_tracking_fpga.h" class ConfigurationInterface; @@ -92,16 +92,17 @@ public: void start_tracking() override; - void reset(void); + //void reset(void); private: - //gps_l1_ca_dll_pll_tracking_cc_sptr tracking_; - gps_l1_ca_dll_pll_tracking_fpga_sc_sptr tracking_fpga_sc; + //gps_l1_ca_dll_pll_tracking_cc_sptr tracking_; + dll_pll_veml_tracking_fpga_sptr tracking_fpga_sc; size_t item_size_; unsigned int channel_; std::string role_; unsigned int in_streams_; unsigned int out_streams_; + int* d_ca_codes; }; #endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ diff --git a/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt b/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt index 4cb869a79..2010ef817 100644 --- a/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt @@ -23,7 +23,7 @@ if(ENABLE_CUDA) endif(ENABLE_CUDA) if(ENABLE_FPGA) - set(OPT_TRACKING_BLOCKS ${OPT_TRACKING_BLOCKS} gps_l1_ca_dll_pll_tracking_fpga_sc.cc) + set(OPT_TRACKING_BLOCKS ${OPT_TRACKING_BLOCKS} dll_pll_veml_tracking_fpga.cc) endif(ENABLE_FPGA) set(TRACKING_GR_BLOCKS_SOURCES diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc similarity index 87% rename from src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc rename to src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc index 069b426db..22c6cad45 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc @@ -34,7 +34,7 @@ * ------------------------------------------------------------------------- */ -#include "gps_l1_ca_dll_pll_tracking_fpga_sc.h" +#include "dll_pll_veml_tracking_fpga.h" #include #include #include @@ -61,43 +61,96 @@ using google::LogMessage; -gps_l1_ca_dll_pll_tracking_fpga_sc_sptr -gps_l1_ca_dll_pll_make_tracking_fpga_sc( - long if_freq, - long fs_in, - unsigned int vector_length, - bool dump, - std::string dump_filename, - float pll_bw_hz, - float dll_bw_hz, - float early_late_space_chips, - std::string device_name, - unsigned int device_base) +//dll_pll_veml_tracking_fpga_sptr +//dll_pll_veml_make_tracking_fpga( +// long if_freq, +// long fs_in, +// unsigned int vector_length, +// bool dump, +// std::string dump_filename, +// float pll_bw_hz, +// float dll_bw_hz, +// float early_late_space_chips, +// std::string device_name, +// unsigned int device_base, +// int* ca_codes, +// unsigned int code_length) +//{ +// return dll_pll_veml_tracking_fpga_sptr(new dll_pll_veml_tracking_fpga(if_freq, +// fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, early_late_space_chips, device_name, device_base, ca_codes, code_length)); +// +//// return dll_pll_veml_tracking_fpga_sptr(new dll_pll_veml_tracking_fpga(conf_)); +//} + + + + +dll_pll_veml_tracking_fpga_sptr dll_pll_veml_make_tracking_fpga(dllpllconf_fpga_t conf_) { - return gps_l1_ca_dll_pll_tracking_fpga_sc_sptr(new Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc(if_freq, - fs_in, vector_length, dump, dump_filename, pll_bw_hz, dll_bw_hz, early_late_space_chips, device_name, device_base)); + + return dll_pll_veml_tracking_fpga_sptr(new dll_pll_veml_tracking_fpga(conf_)); + //return dll_pll_veml_tracking_fpga_sptr(new dll_pll_veml_tracking_fpga(//0, //conf_.f_if, // if_freq is removed ... why ???????????? + // conf_.fs_in, conf_.vector_length, conf_.dump, conf_.dump_filename, conf_.pll_bw_hz, conf_.dll_bw_hz, + // conf_.early_late_space_chips, conf_.device_name, conf_.device_base, conf_.ca_codes, conf_.code_length)); + } -Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( - long if_freq, - long fs_in, - unsigned int vector_length, - bool dump, - std::string dump_filename, - float pll_bw_hz, - float dll_bw_hz, - float early_late_space_chips, - std::string device_name, - unsigned int device_base) : - gr::block("Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc", gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) + + +//dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga( +// //long if_freq, +// long fs_in, +// unsigned int vector_length, +// bool dump, +// std::string dump_filename, +// float pll_bw_hz, +// float dll_bw_hz, +// float early_late_space_chips, +// std::string device_name, +// unsigned int device_base, +// int* ca_codes, +// unsigned int code_length) : +// gr::block("dll_pll_veml_tracking_fpga", gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), +// gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) +//{ + +dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) : + gr::block("dll_pll_veml_tracking_fpga", gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { + + trk_parameters = conf_; + // Telemetry bit synchronization message port input this->message_port_register_out(pmt::mp("events")); + + + long fs_in = trk_parameters.fs_in; + unsigned int vector_length = trk_parameters.vector_length; + bool dump = trk_parameters.dump; + std::string dump_filename = trk_parameters.dump_filename; + float pll_bw_hz = trk_parameters.pll_bw_hz; + float dll_bw_hz = trk_parameters.dll_bw_hz; + float early_late_space_chips = trk_parameters.early_late_space_chips; + std::string device_name = trk_parameters.device_name; + unsigned int device_base = trk_parameters.device_base; + int* ca_codes = trk_parameters.ca_codes; + unsigned int code_length = trk_parameters.code_length; + + + + + + + + + + + // initialize internal vars d_dump = dump; - d_if_freq = if_freq; + //d_if_freq = if_freq; d_fs_in = fs_in; d_vector_length = vector_length; d_dump_filename = dump_filename; @@ -132,7 +185,7 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( d_local_code_shift_chips[2] = d_early_late_spc_chips; // create multicorrelator class - multicorrelator_fpga_8sc = std::make_shared (d_n_correlator_taps, device_name, device_base); + multicorrelator_fpga_8sc = std::make_shared (d_n_correlator_taps, device_name, device_base, ca_codes, code_length); //--- Perform initializations ------------------------------ // define initial code frequency basis of NCO @@ -174,9 +227,10 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc( set_relative_rate(1.0 / static_cast(d_vector_length)); multicorrelator_fpga_8sc->set_output_vectors(d_correlator_outs); + } -void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::start_tracking() +void dll_pll_veml_tracking_fpga::start_tracking() { /* * correct the code phase according to the delay between acq and trk @@ -252,7 +306,7 @@ void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::start_tracking() << " PULL-IN Code Phase [samples]=" << d_acq_code_phase_samples; } -Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc() +dll_pll_veml_tracking_fpga::~dll_pll_veml_tracking_fpga() { if (d_dump_file.is_open()) { @@ -278,7 +332,7 @@ Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc() } } -int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { @@ -513,7 +567,7 @@ int Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::general_work (int noutput_items __attrib -void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::set_channel(unsigned int channel) +void dll_pll_veml_tracking_fpga::set_channel(unsigned int channel) { d_channel = channel; multicorrelator_fpga_8sc->set_channel(d_channel); @@ -541,12 +595,12 @@ void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::set_channel(unsigned int channel) } -void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) +void dll_pll_veml_tracking_fpga::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) { d_acquisition_gnss_synchro = p_gnss_synchro; } -void Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc::reset(void) +void dll_pll_veml_tracking_fpga::reset(void) { multicorrelator_fpga_8sc->unlock_channel(); } diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h similarity index 57% rename from src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h rename to src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h index 161d87530..cd505f0cb 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_fpga_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h @@ -35,8 +35,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H -#define GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H +#ifndef GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H +#define GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H #include #include @@ -45,34 +45,63 @@ #include "gnss_synchro.h" #include "tracking_2nd_DLL_filter.h" #include "tracking_2nd_PLL_filter.h" -#include "fpga_multicorrelator_8sc.h" +#include "fpga_multicorrelator.h" -class Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc; +typedef struct +{ + /* DLL/PLL tracking configuration */ + double fs_in; + unsigned int vector_length; + bool dump; + std::string dump_filename; + float pll_bw_hz; + float dll_bw_hz; + float pll_bw_narrow_hz; + float dll_bw_narrow_hz; + float early_late_space_chips; + float very_early_late_space_chips; + float early_late_space_narrow_chips; + float very_early_late_space_narrow_chips; + int extend_correlation_symbols; + bool track_pilot; + char system; + char signal[3]; + std::string device_name; + unsigned int device_base; + unsigned int code_length; + int* ca_codes; + //int f_if; +} dllpllconf_fpga_t; -typedef boost::shared_ptr - gps_l1_ca_dll_pll_tracking_fpga_sc_sptr; +class dll_pll_veml_tracking_fpga; -gps_l1_ca_dll_pll_tracking_fpga_sc_sptr -gps_l1_ca_dll_pll_make_tracking_fpga_sc(long if_freq, - long fs_in, unsigned - int vector_length, - bool dump, - std::string dump_filename, - float pll_bw_hz, - float dll_bw_hz, - float early_late_space_chips, - std::string device_name, - unsigned int device_base); +typedef boost::shared_ptr +dll_pll_veml_tracking_fpga_sptr; +//dll_pll_veml_tracking_fpga_sptr +//dll_pll_veml_make_tracking_fpga(long if_freq, +// long fs_in, unsigned +// int vector_length, +// bool dump, +// std::string dump_filename, +// float pll_bw_hz, +// float dll_bw_hz, +// float early_late_space_chips, +// std::string device_name, +// unsigned int device_base, +// int* ca_codes, +// unsigned int code_length); + +dll_pll_veml_tracking_fpga_sptr dll_pll_veml_make_tracking_fpga(dllpllconf_fpga_t conf_); /*! * \brief This class implements a DLL + PLL tracking loop block */ -class Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc: public gr::block +class dll_pll_veml_tracking_fpga: public gr::block { public: - ~Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc(); + ~dll_pll_veml_tracking_fpga(); void set_channel(unsigned int channel); void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro); @@ -84,28 +113,37 @@ public: void reset(void); private: - friend gps_l1_ca_dll_pll_tracking_fpga_sc_sptr - gps_l1_ca_dll_pll_make_tracking_fpga_sc(long if_freq, - long fs_in, unsigned - int vector_length, - bool dump, - std::string dump_filename, - float pll_bw_hz, - float dll_bw_hz, - float early_late_space_chips, - std::string device_name, - unsigned int device_base); +// friend dll_pll_veml_tracking_fpga_sptr +// dll_pll_veml_make_tracking_fpga(long if_freq, +// long fs_in, unsigned +// int vector_length, +// bool dump, +// std::string dump_filename, +// float pll_bw_hz, +// float dll_bw_hz, +// float early_late_space_chips, +// std::string device_name, +// unsigned int device_base, +// int* ca_codes, +// unsigned int code_length); + friend dll_pll_veml_tracking_fpga_sptr dll_pll_veml_make_tracking_fpga(dllpllconf_fpga_t conf_); - Gps_L1_Ca_Dll_Pll_Tracking_fpga_sc(long if_freq, - long fs_in, unsigned - int vector_length, - bool dump, - std::string dump_filename, - float pll_bw_hz, - float dll_bw_hz, - float early_late_space_chips, - std::string device_name, - unsigned int device_base); + dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_); +// dll_pll_veml_tracking_fpga(//long if_freq, +// long fs_in, unsigned +// int vector_length, +// bool dump, +// std::string dump_filename, +// float pll_bw_hz, +// float dll_bw_hz, +// float early_late_space_chips, +// std::string device_name, +// unsigned int device_base, +// int* ca_codes, +// unsigned int code_length); + + + dllpllconf_fpga_t trk_parameters; // tracking configuration vars unsigned int d_vector_length; @@ -114,7 +152,7 @@ private: Gnss_Synchro* d_acquisition_gnss_synchro; unsigned int d_channel; - long d_if_freq; + //long d_if_freq; long d_fs_in; double d_early_late_spc_chips; @@ -184,4 +222,4 @@ private: }; -#endif //GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_SC_H +#endif //GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H diff --git a/src/algorithms/tracking/libs/CMakeLists.txt b/src/algorithms/tracking/libs/CMakeLists.txt index 88c4eb2a5..4e2a93efd 100644 --- a/src/algorithms/tracking/libs/CMakeLists.txt +++ b/src/algorithms/tracking/libs/CMakeLists.txt @@ -46,7 +46,7 @@ set(TRACKING_LIB_SOURCES ) if(ENABLE_FPGA) - SET(TRACKING_LIB_SOURCES ${TRACKING_LIB_SOURCES} fpga_multicorrelator_8sc.cc) + SET(TRACKING_LIB_SOURCES ${TRACKING_LIB_SOURCES} fpga_multicorrelator.cc) endif(ENABLE_FPGA) include_directories( diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc b/src/algorithms/tracking/libs/fpga_multicorrelator.cc similarity index 95% rename from src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc rename to src/algorithms/tracking/libs/fpga_multicorrelator.cc index 9c9e6af0b..281bf2bc2 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator.cc @@ -34,7 +34,7 @@ * ------------------------------------------------------------------------- */ -#include "fpga_multicorrelator_8sc.h" +#include "fpga_multicorrelator.h" #include @@ -65,9 +65,9 @@ #include // constants -#include "GPS_L1_CA.h" +#include "GPS_L1_CA.h" -#include "gps_sdr_signal_processing.h" +//#include "gps_sdr_signal_processing.h" #define NUM_PRNs 32 #define PAGE_SIZE 0x10000 @@ -144,7 +144,7 @@ void fpga_multicorrelator_8sc::Carrier_wipeoff_multicorrelator_resampler( } fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, - std::string device_name, unsigned int device_base) + std::string device_name, unsigned int device_base, int *ca_codes, unsigned int code_length) { d_n_correlators = n_correlators; d_device_name = device_name; @@ -170,14 +170,16 @@ fpga_multicorrelator_8sc::fpga_multicorrelator_8sc(int n_correlators, d_phase_step_rad_int = 0; d_initial_sample_counter = 0; d_channel = 0; - d_correlator_length_samples = 0; + d_correlator_length_samples = 0, + d_code_length = code_length; // pre-compute all the codes - d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); - for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) - { - gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); - } +// d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); +// for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) +// { +// gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); +// } + d_ca_codes = ca_codes; DLOG(INFO) << "TRACKING FPGA CLASS CREATED"; } @@ -278,7 +280,7 @@ void fpga_multicorrelator_8sc::fpga_configure_tracking_gps_local_code(int PRN) for (k = 0; k < d_code_length_chips; k++) { //if (d_local_code_in[k] == 1) - if (d_ca_codes[((int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)) + k] == 1) + if (d_ca_codes[((int(d_code_length)) * (PRN - 1)) + k] == 1) { code_chip = 1; } diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h b/src/algorithms/tracking/libs/fpga_multicorrelator.h similarity index 97% rename from src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h rename to src/algorithms/tracking/libs/fpga_multicorrelator.h index 9bf44536e..5012651d4 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator_8sc.h +++ b/src/algorithms/tracking/libs/fpga_multicorrelator.h @@ -49,7 +49,7 @@ class fpga_multicorrelator_8sc { public: fpga_multicorrelator_8sc(int n_correlators, std::string device_name, - unsigned int device_base); + unsigned int device_base, int *ca_codes, unsigned int code_length); ~fpga_multicorrelator_8sc(); //bool set_output_vectors(gr_complex* corr_out); void set_output_vectors(gr_complex* corr_out); @@ -110,6 +110,8 @@ private: int* d_ca_codes; + unsigned int d_code_length; // nominal number of chips + // private functions unsigned fpga_acquisition_test_register(unsigned writeval); void fpga_configure_tracking_gps_local_code(int PRN); diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc index 91c611d2d..896c2a6c0 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc @@ -534,7 +534,7 @@ TEST_F(GpsL1CADllPllTrackingTestFpga, ValidationOfResultsFpga) { start = std::chrono::system_clock::now(); top_block->run(); // Start threads and wait - tracking->reset();// unlock the channel + //tracking->reset();// unlock the channel end = std::chrono::system_clock::now(); elapsed_seconds = end - start; }) << "Failure running the top_block."; From 9912acc4f8ec74677ed8461f659ba2bbba36557f Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Thu, 3 May 2018 18:44:04 +0200 Subject: [PATCH 043/108] Adding channel selector option in config if a single RF channel is used in UDP source --- conf/gnss-sdr_GPS_L1_2ch_udp.conf | 34 +++++++++++-------- .../adapters/udp_signal_source.cc | 17 +++++----- .../adapters/udp_signal_source.h | 1 + 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf index 6fa7684c6..65773b04c 100644 --- a/conf/gnss-sdr_GPS_L1_2ch_udp.conf +++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf @@ -6,7 +6,8 @@ ;######### GLOBAL OPTIONS ################## ;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [Sps]. -GNSS-SDR.internal_fs_sps=2600000 +;GNSS-SDR.internal_fs_sps=3312500 +GNSS-SDR.internal_fs_sps=2650000 ;######### SIGNAL_SOURCE CONFIG ############ SignalSource.implementation=UDP_Signal_Source @@ -17,32 +18,37 @@ SignalSource.address=0.0.0.0 SignalSource.port=1234 SignalSource.payload_bytes=1024 SignalSource.sample_type=cbyte -SignalSource.RF_channels=2 -SignalSource.dump=true +SignalSource.RF_channels=1 +SignalSource.select_single_channel=1 +SignalSource.channels_in_udp=2 +SignalSource.IQ_swap=true +SignalSource.dump=false SignalSource.dump_filename=./signal_source.dat ;######### SIGNAL_CONDITIONER CONFIG ############ -SignalConditioner0.implementation=Pass_Through -SignalConditioner1.implementation=Pass_Through +SignalConditioner.implementation=Pass_Through +;SignalConditioner0.implementation=Pass_Through +;SignalConditioner1.implementation=Pass_Through ;######### CHANNELS GLOBAL CONFIG ############ -Channels_1C.count=2 +Channels_1C.count=8 Channels.in_acquisition=1 ;# CHANNEL CONNECTION -Channel0.RF_channel_ID=0 -Channel0.signal=1C -Channel1.RF_channel_ID=1 -Channel1.signal=1C +Channel.signal=1C +;Channel0.RF_channel_ID=0 +;Channel0.signal=1C +;Channel1.RF_channel_ID=1 +;Channel1.signal=1C ;######### ACQUISITION GLOBAL CONFIG ############ Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition Acquisition_1C.item_type=gr_complex -Acquisition_1C.threshold=20 +Acquisition_1C.threshold=60 Acquisition_1C.use_CFAR_algorithm=false -Acquisition_1C.blocking=true -Acquisition_1C.doppler_max=10000 +Acquisition_1C.blocking=false +Acquisition_1C.doppler_max=5000 Acquisition_1C.doppler_step=250 Acquisition_1C.dump=false Acquisition_1C.dump_filename=./acq_dump.dat @@ -51,7 +57,7 @@ Acquisition_1C.dump_filename=./acq_dump.dat ;######### TRACKING GLOBAL CONFIG ############ Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking Tracking_1C.item_type=gr_complex -Tracking_1C.dump=false +Tracking_1C.dump=true Tracking_1C.dump_filename=./tracking_ch_ Tracking_1C.pll_bw_hz=35.0; Tracking_1C.dll_bw_hz=2.0; diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.cc b/src/algorithms/signal_source/adapters/udp_signal_source.cc index 85d353a96..f24345293 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/udp_signal_source.cc @@ -53,11 +53,12 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); - // rtl_tcp PARAMETERS + // network PARAMETERS std::string default_address = "127.0.0.1"; int default_port = 1234; RF_channels_ = configuration->property(role + ".RF_channels", 1); + select_single_channel_ = configuration->property(role + ".select_single_channel", 0); channels_in_udp_= configuration->property(role + ".channels_in_udp", 1); IQ_swap_= configuration->property(role + ".IQ_swap", false); @@ -90,9 +91,9 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, float_to_complex_.push_back(gr::blocks::float_to_complex::make()); } - if (channels_in_udp_>=RF_channels_) + if (channels_in_udp_>RF_channels_) { - for (int n = 0; n < (channels_in_udp_-RF_channels_); n++) + for (int n = 0; n < channels_in_udp_; n++) { null_sinks_.push_back(gr::blocks::null_sink::make(sizeof(gr_complex))); } @@ -149,9 +150,9 @@ void UDPSignalSource::connect(gr::top_block_sptr top_block) //connect null sinks to unused streams if (channels_in_udp_>RF_channels_) { - for (int n = 0; n < (channels_in_udp_-RF_channels_); n++) + for (int n = 0; n < channels_in_udp_; n++) { - top_block->connect(float_to_complex_.at(RF_channels_+n),0,null_sinks_.at(n),0); + top_block->connect(float_to_complex_.at(n),0,null_sinks_.at(n),0); } } @@ -192,9 +193,9 @@ void UDPSignalSource::disconnect(gr::top_block_sptr top_block) //disconnect null sinks to unused streams if (channels_in_udp_>RF_channels_) { - for (int n = 0; n < (channels_in_udp_-RF_channels_); n++) + for (int n = 0; n < channels_in_udp_; n++) { - top_block->disconnect(float_to_complex_.at(RF_channels_+n),0,null_sinks_.at(n),0); + top_block->disconnect(float_to_complex_.at(n),0,null_sinks_.at(n),0); } } @@ -221,7 +222,7 @@ gr::basic_block_sptr UDPSignalSource::get_left_block() gr::basic_block_sptr UDPSignalSource::get_right_block() { - return get_right_block(0); + return get_right_block(select_single_channel_); } gr::basic_block_sptr UDPSignalSource::get_right_block(int RF_channel) diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.h b/src/algorithms/signal_source/adapters/udp_signal_source.h index cd60b8e34..ebb8636af 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.h +++ b/src/algorithms/signal_source/adapters/udp_signal_source.h @@ -90,6 +90,7 @@ private: bool IQ_swap_; int RF_channels_; + int select_single_channel_; int channels_in_udp_; unsigned int in_stream_; unsigned int out_stream_; From 813b2a9d04073803eeca28a0586e5d5203641194 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 4 May 2018 13:39:45 +0200 Subject: [PATCH 044/108] Fix bug in GPS L5 and Galileo E5a decoding --- .../galileo_e5a_telemetry_decoder_cc.cc | 53 +++++++++---------- .../gnuradio_blocks/dll_pll_veml_tracking.cc | 9 ++-- 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc index 647647698..41bf44833 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc @@ -81,7 +81,6 @@ void galileo_e5a_telemetry_decoder_cc::decode_word(double *page_symbols, int fra { double page_symbols_deint[frame_length]; // 1. De-interleave - deinterleaver(GALILEO_FNAV_INTERLEAVER_ROWS, GALILEO_FNAV_INTERLEAVER_COLS, page_symbols, page_symbols_deint); // 2. Viterbi decoder @@ -116,7 +115,6 @@ void galileo_e5a_telemetry_decoder_cc::decode_word(double *page_symbols, int fra if (d_nav.flag_CRC_test == true) { LOG(INFO) << "Galileo E5a CRC correct in channel " << d_channel << " from satellite " << d_satellite; - //std::cout << "Galileo E5a CRC correct on channel " << d_channel << " from satellite " << d_satellite << std::endl; } else { @@ -191,19 +189,19 @@ galileo_e5a_telemetry_decoder_cc::galileo_e5a_telemetry_decoder_cc( delta_t = 0.0; d_symbol_counter = 0; d_prompt_acum = 0.0; - flag_bit_start = false; + flag_bit_start = true; new_symbol = false; required_symbols = GALILEO_FNAV_SYMBOLS_PER_PAGE + GALILEO_FNAV_PREAMBLE_LENGTH_BITS; // vars for Viterbi decoder - int max_states = 1 << mm; /* 2^mm */ - g_encoder[0] = 121; // Polynomial G1 - g_encoder[1] = 91; // Polynomial G2 + int max_states = 1 << mm; // 2^mm + g_encoder[0] = 121; // Polynomial G1 + g_encoder[1] = 91; // Polynomial G2 out0 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); out1 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); state0 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); state1 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); - /* create appropriate transition matrices */ + // create appropriate transition matrices nsc_transit(out0, state0, 0, g_encoder, KK, nn); nsc_transit(out1, state1, 1, g_encoder, KK, nn); } @@ -241,7 +239,7 @@ void galileo_e5a_telemetry_decoder_cc::set_channel(int channel) { d_channel = channel; LOG(INFO) << "Navigation channel set to " << channel; - // ############# ENABLE DATA FILE LOG ################# + // Enable data file logging if (d_dump == true) { if (d_dump_file.is_open() == false) @@ -272,7 +270,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute Gnss_Synchro *out = reinterpret_cast(output_items[0]); // Get the output buffer pointer const Gnss_Synchro *in = reinterpret_cast(input_items[0]); // Get the input buffer pointer - //1. Copy the current tracking output + // 1. Copy the current tracking output Gnss_Synchro current_sample = in[0]; d_symbol_counter++; if (flag_bit_start) @@ -281,7 +279,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute if (d_symbol_counter == GALILEO_FNAV_CODES_PER_SYMBOL) { current_sample.Prompt_I = d_prompt_acum / static_cast(GALILEO_FNAV_CODES_PER_SYMBOL); - d_symbol_history.push_back(current_sample); //add new symbol to the symbol queue + d_symbol_history.push_back(current_sample); // add new symbol to the symbol queue d_prompt_acum = 0.0; d_symbol_counter = 0; new_symbol = true; @@ -323,14 +321,14 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute } } } - d_sample_counter++; //count for the processed samples + d_sample_counter++; // count for the processed samples consume_each(1); d_flag_preamble = false; if ((d_symbol_history.size() > required_symbols) && new_symbol) { - //******* preamble correlation ******** + // ****************** Preamble orrelation ****************** corr_value = 0; for (int i = 0; i < GALILEO_FNAV_PREAMBLE_LENGTH_BITS; i++) { @@ -344,13 +342,12 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute } } } - - //******* frame sync ****************** - if ((d_stat == 0) && new_symbol) //no preamble information + // ****************** Frame sync ****************** + if ((d_stat == 0) && new_symbol) // no preamble information { if (abs(corr_value) >= GALILEO_FNAV_PREAMBLE_LENGTH_BITS) { - d_preamble_index = d_sample_counter; //record the preamble sample stamp + d_preamble_index = d_sample_counter; // record the preamble sample stamp LOG(INFO) << "Preamble detection for Galileo E5a satellite " << d_satellite; d_stat = 1; // enter into frame pre-detection status } @@ -359,13 +356,13 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute { if (abs(corr_value) >= GALILEO_FNAV_PREAMBLE_LENGTH_BITS) { - //check preamble separation + // check preamble separation preamble_diff = d_sample_counter - d_preamble_index; if (preamble_diff == GALILEO_FNAV_CODES_PER_PAGE) { - //try to decode frame + // try to decode frame LOG(INFO) << "Starting page decoder for Galileo E5a satellite " << d_satellite; - d_preamble_index = d_sample_counter; //record the preamble sample stamp + d_preamble_index = d_sample_counter; // record the preamble sample stamp d_stat = 2; } else if (preamble_diff > GALILEO_FNAV_CODES_PER_PAGE) @@ -397,13 +394,13 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute page_symbols[i] = corr_sign * d_symbol_history.at(i + GALILEO_FNAV_PREAMBLE_LENGTH_BITS).Prompt_I; // because last symbol of the preamble is just received now! } - //call the decoder + // call the decoder decode_word(page_symbols, frame_length); if (d_nav.flag_CRC_test == true) { d_CRC_error_counter = 0; - d_flag_preamble = true; //valid preamble indicator (initialized to false every work()) - d_preamble_index = d_sample_counter; //record the preamble sample stamp (t_P) + d_flag_preamble = true; // valid preamble indicator (initialized to false every work()) + d_preamble_index = d_sample_counter; // record the preamble sample stamp (t_P) if (!d_flag_frame_sync) { d_flag_frame_sync = true; @@ -414,7 +411,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute else { d_CRC_error_counter++; - d_preamble_index = d_sample_counter; //record the preamble sample stamp + d_preamble_index = d_sample_counter; // record the preamble sample stamp if (d_CRC_error_counter > GALILEO_E5A_CRC_ERROR_LIMIT) { LOG(INFO) << "Lost of frame sync SAT " << this->d_satellite; @@ -428,10 +425,10 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute new_symbol = false; // UPDATE GNSS SYNCHRO DATA - //Add the telemetry decoder information + // Add the telemetry decoder information if (d_flag_preamble and d_nav.flag_TOW_set) - //update TOW at the preamble instant - //We expect a preamble each 10 seconds (FNAV page period) + // update TOW at the preamble instant + // We expect a preamble each 10 seconds (FNAV page period) { if (d_nav.flag_TOW_1 == true) { @@ -458,7 +455,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute d_TOW_at_current_symbol += GALILEO_E5a_CODE_PERIOD; } } - else //if there is not a new preamble, we define the TOW of the current symbol + else // if there is not a new preamble, we define the TOW of the current symbol { d_TOW_at_current_symbol += GALILEO_E5a_CODE_PERIOD; } @@ -499,7 +496,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute { d_symbol_history.pop_front(); } - //3. Make the output + // 3. Make the output if (current_sample.Flag_valid_word) { out[0] = current_sample; diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 515e21ada..372aec4ff 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -144,21 +144,20 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_correlation_length_ms = 1; d_code_samples_per_chip = 1; d_code_length_chips = static_cast(GPS_L5i_CODE_LENGTH_CHIPS); - // GPS L5 does not have pilot secondary code d_secondary = true; - interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(GPS_L5q_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5q_NH_CODE_STR); signal_pretty_name = signal_pretty_name + "Q"; - //interchange_iq = true; + interchange_iq = true; } else { d_secondary_code_length = static_cast(GPS_L5i_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5i_NH_CODE_STR); signal_pretty_name = signal_pretty_name + "I"; + interchange_iq = false; } } else @@ -212,18 +211,18 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_code_samples_per_chip = 1; d_code_length_chips = static_cast(Galileo_E5a_CODE_LENGTH_CHIPS); d_secondary = true; - interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(Galileo_E5a_Q_SECONDARY_CODE_LENGTH); signal_pretty_name = signal_pretty_name + "Q"; - // interchange_iq = true; + interchange_iq = true; } else { d_secondary_code_length = static_cast(Galileo_E5a_I_SECONDARY_CODE_LENGTH); d_secondary_code_string = const_cast(&Galileo_E5a_I_SECONDARY_CODE); signal_pretty_name = signal_pretty_name + "I"; + interchange_iq = false; } } else From 62198abdf4fe923983d49b52ec3eb000c686935b Mon Sep 17 00:00:00 2001 From: zosoworld Date: Fri, 4 May 2018 19:04:09 +0200 Subject: [PATCH 045/108] Fixed rtl_tcp signal source deadlock --- .../rtl_tcp_signal_source_c.cc | 2 + .../galileo_e5a_telemetry_decoder_cc.cc | 53 +++++++++---------- .../gnuradio_blocks/dll_pll_veml_tracking.cc | 9 ++-- 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc index 4ec4420ce..2207e6d88 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc @@ -154,7 +154,9 @@ rtl_tcp_signal_source_c::rtl_tcp_signal_source_c(const std::string &address, rtl_tcp_signal_source_c::~rtl_tcp_signal_source_c() { + boost::mutex::scoped_lock lock(mutex_); io_service_.stop(); + not_empty_.notify_one(); } diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc index 647647698..41bf44833 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc @@ -81,7 +81,6 @@ void galileo_e5a_telemetry_decoder_cc::decode_word(double *page_symbols, int fra { double page_symbols_deint[frame_length]; // 1. De-interleave - deinterleaver(GALILEO_FNAV_INTERLEAVER_ROWS, GALILEO_FNAV_INTERLEAVER_COLS, page_symbols, page_symbols_deint); // 2. Viterbi decoder @@ -116,7 +115,6 @@ void galileo_e5a_telemetry_decoder_cc::decode_word(double *page_symbols, int fra if (d_nav.flag_CRC_test == true) { LOG(INFO) << "Galileo E5a CRC correct in channel " << d_channel << " from satellite " << d_satellite; - //std::cout << "Galileo E5a CRC correct on channel " << d_channel << " from satellite " << d_satellite << std::endl; } else { @@ -191,19 +189,19 @@ galileo_e5a_telemetry_decoder_cc::galileo_e5a_telemetry_decoder_cc( delta_t = 0.0; d_symbol_counter = 0; d_prompt_acum = 0.0; - flag_bit_start = false; + flag_bit_start = true; new_symbol = false; required_symbols = GALILEO_FNAV_SYMBOLS_PER_PAGE + GALILEO_FNAV_PREAMBLE_LENGTH_BITS; // vars for Viterbi decoder - int max_states = 1 << mm; /* 2^mm */ - g_encoder[0] = 121; // Polynomial G1 - g_encoder[1] = 91; // Polynomial G2 + int max_states = 1 << mm; // 2^mm + g_encoder[0] = 121; // Polynomial G1 + g_encoder[1] = 91; // Polynomial G2 out0 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); out1 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); state0 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); state1 = static_cast(volk_gnsssdr_malloc(max_states * sizeof(int), volk_gnsssdr_get_alignment())); - /* create appropriate transition matrices */ + // create appropriate transition matrices nsc_transit(out0, state0, 0, g_encoder, KK, nn); nsc_transit(out1, state1, 1, g_encoder, KK, nn); } @@ -241,7 +239,7 @@ void galileo_e5a_telemetry_decoder_cc::set_channel(int channel) { d_channel = channel; LOG(INFO) << "Navigation channel set to " << channel; - // ############# ENABLE DATA FILE LOG ################# + // Enable data file logging if (d_dump == true) { if (d_dump_file.is_open() == false) @@ -272,7 +270,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute Gnss_Synchro *out = reinterpret_cast(output_items[0]); // Get the output buffer pointer const Gnss_Synchro *in = reinterpret_cast(input_items[0]); // Get the input buffer pointer - //1. Copy the current tracking output + // 1. Copy the current tracking output Gnss_Synchro current_sample = in[0]; d_symbol_counter++; if (flag_bit_start) @@ -281,7 +279,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute if (d_symbol_counter == GALILEO_FNAV_CODES_PER_SYMBOL) { current_sample.Prompt_I = d_prompt_acum / static_cast(GALILEO_FNAV_CODES_PER_SYMBOL); - d_symbol_history.push_back(current_sample); //add new symbol to the symbol queue + d_symbol_history.push_back(current_sample); // add new symbol to the symbol queue d_prompt_acum = 0.0; d_symbol_counter = 0; new_symbol = true; @@ -323,14 +321,14 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute } } } - d_sample_counter++; //count for the processed samples + d_sample_counter++; // count for the processed samples consume_each(1); d_flag_preamble = false; if ((d_symbol_history.size() > required_symbols) && new_symbol) { - //******* preamble correlation ******** + // ****************** Preamble orrelation ****************** corr_value = 0; for (int i = 0; i < GALILEO_FNAV_PREAMBLE_LENGTH_BITS; i++) { @@ -344,13 +342,12 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute } } } - - //******* frame sync ****************** - if ((d_stat == 0) && new_symbol) //no preamble information + // ****************** Frame sync ****************** + if ((d_stat == 0) && new_symbol) // no preamble information { if (abs(corr_value) >= GALILEO_FNAV_PREAMBLE_LENGTH_BITS) { - d_preamble_index = d_sample_counter; //record the preamble sample stamp + d_preamble_index = d_sample_counter; // record the preamble sample stamp LOG(INFO) << "Preamble detection for Galileo E5a satellite " << d_satellite; d_stat = 1; // enter into frame pre-detection status } @@ -359,13 +356,13 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute { if (abs(corr_value) >= GALILEO_FNAV_PREAMBLE_LENGTH_BITS) { - //check preamble separation + // check preamble separation preamble_diff = d_sample_counter - d_preamble_index; if (preamble_diff == GALILEO_FNAV_CODES_PER_PAGE) { - //try to decode frame + // try to decode frame LOG(INFO) << "Starting page decoder for Galileo E5a satellite " << d_satellite; - d_preamble_index = d_sample_counter; //record the preamble sample stamp + d_preamble_index = d_sample_counter; // record the preamble sample stamp d_stat = 2; } else if (preamble_diff > GALILEO_FNAV_CODES_PER_PAGE) @@ -397,13 +394,13 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute page_symbols[i] = corr_sign * d_symbol_history.at(i + GALILEO_FNAV_PREAMBLE_LENGTH_BITS).Prompt_I; // because last symbol of the preamble is just received now! } - //call the decoder + // call the decoder decode_word(page_symbols, frame_length); if (d_nav.flag_CRC_test == true) { d_CRC_error_counter = 0; - d_flag_preamble = true; //valid preamble indicator (initialized to false every work()) - d_preamble_index = d_sample_counter; //record the preamble sample stamp (t_P) + d_flag_preamble = true; // valid preamble indicator (initialized to false every work()) + d_preamble_index = d_sample_counter; // record the preamble sample stamp (t_P) if (!d_flag_frame_sync) { d_flag_frame_sync = true; @@ -414,7 +411,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute else { d_CRC_error_counter++; - d_preamble_index = d_sample_counter; //record the preamble sample stamp + d_preamble_index = d_sample_counter; // record the preamble sample stamp if (d_CRC_error_counter > GALILEO_E5A_CRC_ERROR_LIMIT) { LOG(INFO) << "Lost of frame sync SAT " << this->d_satellite; @@ -428,10 +425,10 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute new_symbol = false; // UPDATE GNSS SYNCHRO DATA - //Add the telemetry decoder information + // Add the telemetry decoder information if (d_flag_preamble and d_nav.flag_TOW_set) - //update TOW at the preamble instant - //We expect a preamble each 10 seconds (FNAV page period) + // update TOW at the preamble instant + // We expect a preamble each 10 seconds (FNAV page period) { if (d_nav.flag_TOW_1 == true) { @@ -458,7 +455,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute d_TOW_at_current_symbol += GALILEO_E5a_CODE_PERIOD; } } - else //if there is not a new preamble, we define the TOW of the current symbol + else // if there is not a new preamble, we define the TOW of the current symbol { d_TOW_at_current_symbol += GALILEO_E5a_CODE_PERIOD; } @@ -499,7 +496,7 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute { d_symbol_history.pop_front(); } - //3. Make the output + // 3. Make the output if (current_sample.Flag_valid_word) { out[0] = current_sample; diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 515e21ada..372aec4ff 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -144,21 +144,20 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_correlation_length_ms = 1; d_code_samples_per_chip = 1; d_code_length_chips = static_cast(GPS_L5i_CODE_LENGTH_CHIPS); - // GPS L5 does not have pilot secondary code d_secondary = true; - interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(GPS_L5q_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5q_NH_CODE_STR); signal_pretty_name = signal_pretty_name + "Q"; - //interchange_iq = true; + interchange_iq = true; } else { d_secondary_code_length = static_cast(GPS_L5i_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5i_NH_CODE_STR); signal_pretty_name = signal_pretty_name + "I"; + interchange_iq = false; } } else @@ -212,18 +211,18 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_code_samples_per_chip = 1; d_code_length_chips = static_cast(Galileo_E5a_CODE_LENGTH_CHIPS); d_secondary = true; - interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(Galileo_E5a_Q_SECONDARY_CODE_LENGTH); signal_pretty_name = signal_pretty_name + "Q"; - // interchange_iq = true; + interchange_iq = true; } else { d_secondary_code_length = static_cast(Galileo_E5a_I_SECONDARY_CODE_LENGTH); d_secondary_code_string = const_cast(&Galileo_E5a_I_SECONDARY_CODE); signal_pretty_name = signal_pretty_name + "I"; + interchange_iq = false; } } else From 79170327ab96467e260694636da3f12a2c7d9515 Mon Sep 17 00:00:00 2001 From: zosoworld Date: Fri, 4 May 2018 19:54:45 +0200 Subject: [PATCH 046/108] Fixed rtl_tcp signal source --- .../signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc index 2207e6d88..cad8c570f 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc @@ -157,6 +157,7 @@ rtl_tcp_signal_source_c::~rtl_tcp_signal_source_c() boost::mutex::scoped_lock lock(mutex_); io_service_.stop(); not_empty_.notify_one(); + not_full_.notify_one(); } From 1ff445937bb240af85557f22a501f10e0e202803 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 4 May 2018 23:44:00 +0200 Subject: [PATCH 047/108] Clean configuration files Add header and pointer to the block documentation page Remove most of the comments so files are easier to read Remove old/unused parameters --- conf/front-end-cal.conf | 3 + conf/gnss-sdr.conf | 131 +-------- ...nss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf | 7 +- .../gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf | 7 +- conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf | 5 +- .../gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf | 5 +- ...nss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf | 8 +- .../gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf | 8 +- conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf | 5 +- .../gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf | 5 +- ...gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf | 3 + conf/gnss-sdr_GPS_L1_CA_ibyte.conf | 3 + conf/gnss-sdr_GPS_L1_FPGA.conf | 10 +- conf/gnss-sdr_GPS_L1_GN3S_realtime.conf | 7 +- conf/gnss-sdr_GPS_L1_LimeSDR.conf | 3 + conf/gnss-sdr_GPS_L1_SPIR.conf | 127 +------- conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf | 143 +-------- conf/gnss-sdr_GPS_L1_USRP_realtime.conf | 173 +---------- conf/gnss-sdr_GPS_L1_acq_QuickSync.conf | 152 +--------- conf/gnss-sdr_GPS_L1_bladeRF.conf | 12 +- conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf | 16 +- conf/gnss-sdr_GPS_L1_gr_complex.conf | 32 +- conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf | 7 +- conf/gnss-sdr_GPS_L1_ishort.conf | 27 +- conf/gnss-sdr_GPS_L1_nsr.conf | 14 +- conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf | 4 +- conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf | 3 + ...-sdr_GPS_L1_pulse_blanking_gr_complex.conf | 47 +-- conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf | 116 +------- conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf | 12 +- conf/gnss-sdr_GPS_L1_two_bits_cpx.conf | 7 +- conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf | 64 +--- conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf | 7 +- ...nss-sdr_Galileo_E1_USRP_X300_realtime.conf | 4 +- conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf | 178 +---------- conf/gnss-sdr_Galileo_E1_ishort.conf | 158 +--------- conf/gnss-sdr_Galileo_E1_nsr.conf | 12 +- conf/gnss-sdr_Galileo_E5a.conf | 172 +---------- conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf | 8 +- conf/gnss-sdr_Hybrid_byte.conf | 145 +-------- conf/gnss-sdr_Hybrid_byte_sim.conf | 149 +--------- conf/gnss-sdr_Hybrid_gr_complex.conf | 173 +---------- conf/gnss-sdr_Hybrid_ishort.conf | 154 +--------- conf/gnss-sdr_Hybrid_nsr.conf | 136 +-------- ...r_galileo_E1_extended_correlator_byte.conf | 91 +----- ...galileo_E1_extended_correlator_labsat.conf | 127 +------- ...nnel_GPS_L1_Flexiband_bin_file_III_1a.conf | 126 +------- ...nnel_GPS_L1_Flexiband_realtime_III_1a.conf | 136 +-------- ...nnel_GPS_L1_Flexiband_realtime_III_1b.conf | 126 +------- ...annel_GPS_L1_Flexiband_realtime_II_3b.conf | 121 +------- ...hannel_GPS_L1_Flexiband_realtime_I_1b.conf | 127 +------- ...l_GPS_L1_L2_Flexiband_realtime_III_1b.conf | 168 +---------- ...Galileo_E1B_Flexiband_bin_file_III_1b.conf | 193 +----------- ...ultichannel_GPS_L1_USRP_X300_realtime.conf | 222 +------------- ...el_GPS_L2_M_Flexiband_bin_file_III_1b.conf | 195 +----------- ...S_L2_M_Flexiband_bin_file_III_1b_real.conf | 146 +-------- ..._all_in_one_Flexiband_bin_file_III_1b.conf | 277 ++++-------------- conf/gnss-sdr_multisource_Hybrid_ishort.conf | 246 +--------------- conf/gnss-sdr_multisource_Hybrid_nsr.conf | 210 +------------ 59 files changed, 310 insertions(+), 4663 deletions(-) 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 From 9e35ae223960acc0d3ff4006ca52f455c17cbe96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Cebri=C3=A1n=20Juan?= Date: Sat, 5 May 2018 07:44:20 +0200 Subject: [PATCH 048/108] Add GPS Exchange Format (GPX) output writer class --- src/algorithms/PVT/libs/gpx_printer.cc | 176 +++++++++++++++++++++++++ src/algorithms/PVT/libs/gpx_printer.h | 62 +++++++++ 2 files changed, 238 insertions(+) create mode 100644 src/algorithms/PVT/libs/gpx_printer.cc create mode 100644 src/algorithms/PVT/libs/gpx_printer.h diff --git a/src/algorithms/PVT/libs/gpx_printer.cc b/src/algorithms/PVT/libs/gpx_printer.cc new file mode 100644 index 000000000..2960e6e7c --- /dev/null +++ b/src/algorithms/PVT/libs/gpx_printer.cc @@ -0,0 +1,176 @@ +/*! + * \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 + << "" << 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; + + 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 << "" << height << "" << std::endl; + return true; + } + else + { + return false; + } +} + + +bool Gpx_Printer::close_file() +{ + if (gpx_file.is_open()) + { + gpx_file << "" << std::endl + << "" << std::endl + << ""; + gpx_file.close(); + return true; + } + else + { + return false; + } +} + + +Gpx_Printer::Gpx_Printer() +{ + positions_printed = false; +} + + +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..f7415cf71 --- /dev/null +++ b/src/algorithms/PVT/libs/gpx_printer.h @@ -0,0 +1,62 @@ +/*! + * \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 +#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; + +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 From 460dc217040dd3f4375b3138b4a9d19ce0c3fb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Cebri=C3=A1n=20Juan?= Date: Sat, 5 May 2018 07:46:04 +0200 Subject: [PATCH 049/108] Add gpx_printer.cc to CMakeLists --- src/algorithms/PVT/libs/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) 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 From f1a77dfb1fa4d833c35dc631de491ea5a84a22ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Cebri=C3=A1n=20Juan?= Date: Sat, 5 May 2018 07:47:42 +0200 Subject: [PATCH 050/108] Initialize gpx printer in RTKLIB_PVT block --- src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc | 7 +++++++ src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h | 2 ++ 2 files changed, 9 insertions(+) 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; From 3bc6ce4f758bd24390d0712877e932a43a8e2783 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 5 May 2018 12:50:00 +0200 Subject: [PATCH 051/108] Fix warnings --- src/core/receiver/gnss_flowgraph.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index c12c126ae..28fd703c9 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -335,7 +335,7 @@ void GNSSFlowgraph::connect() } #endif // Signal conditioner (selected_signal_source) >> channels (i) (dependent of their associated SignalSource_ID) - int selected_signal_conditioner_ID; + int selected_signal_conditioner_ID = 0; for (unsigned int i = 0; i < channels_count_; i++) { if (FPGA_enabled == false) @@ -538,9 +538,8 @@ void GNSSFlowgraph::disconnect() } } - bool FPGA_enabled = configuration_->property(sig_source_.at(0)->role() + ".enable_FPGA", false); - #if ENABLE_FPGA + bool FPGA_enabled = configuration_->property(sig_source_.at(0)->role() + ".enable_FPGA", false); if (FPGA_enabled == false) { // disconnect the signal source to sample counter From 632bceb653fa1988deddcd57a976ab0227aceb4c Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 7 May 2018 09:13:45 +0200 Subject: [PATCH 052/108] Fix DOP computation, print it in GPX and NMEA --- src/algorithms/PVT/libs/gpx_printer.cc | 21 +++-- src/algorithms/PVT/libs/gpx_printer.h | 4 +- src/algorithms/PVT/libs/hybrid_ls_pvt.cc | 3 - src/algorithms/PVT/libs/ls_pvt.cc | 2 +- src/algorithms/PVT/libs/nmea_printer.cc | 10 +-- src/algorithms/PVT/libs/nmea_printer.h | 6 +- src/algorithms/PVT/libs/pvt_solution.cc | 85 ------------------- src/algorithms/PVT/libs/pvt_solution.h | 17 ---- src/algorithms/PVT/libs/rtklib_solver.cc | 34 +++++++- src/algorithms/PVT/libs/rtklib_solver.h | 8 +- src/tests/CMakeLists.txt | 1 + .../pvt/nmea_printer_test.cc | 12 ++- 12 files changed, 77 insertions(+), 126 deletions(-) diff --git a/src/algorithms/PVT/libs/gpx_printer.cc b/src/algorithms/PVT/libs/gpx_printer.cc index 2960e6e7c..65dda1636 100644 --- a/src/algorithms/PVT/libs/gpx_printer.cc +++ b/src/algorithms/PVT/libs/gpx_printer.cc @@ -98,7 +98,9 @@ bool Gpx_Printer::set_headers(std::string filename, bool time_tag_name) << "xmlns=\"http://www.topografix.com/GPX/1/1\"" << std::endl << "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" << 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 @@ -108,15 +110,21 @@ bool Gpx_Printer::set_headers(std::string filename, bool time_tag_name) } -bool Gpx_Printer::print_position(const std::shared_ptr& position, bool print_average_values) +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; - 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) { @@ -133,7 +141,9 @@ bool Gpx_Printer::print_position(const std::shared_ptr& position, if (gpx_file.is_open()) { - gpx_file << "" << height << "" << std::endl; + gpx_file << indent << indent << "" << height << "" + << "" + << "" << hdop << "" << vdop << "" << pdop << "" << std::endl; return true; } else @@ -147,7 +157,7 @@ bool Gpx_Printer::close_file() { if (gpx_file.is_open()) { - gpx_file << "" << std::endl + gpx_file << indent << "" << std::endl << "" << std::endl << ""; gpx_file.close(); @@ -163,6 +173,7 @@ bool Gpx_Printer::close_file() Gpx_Printer::Gpx_Printer() { positions_printed = false; + indent = " "; } diff --git a/src/algorithms/PVT/libs/gpx_printer.h b/src/algorithms/PVT/libs/gpx_printer.h index f7415cf71..347d95599 100644 --- a/src/algorithms/PVT/libs/gpx_printer.h +++ b/src/algorithms/PVT/libs/gpx_printer.h @@ -34,6 +34,7 @@ #define GNSS_SDR_GPX_PRINTER_H_ #include "pvt_solution.h" +#include "rtklib_solver.h" #include #include #include @@ -50,12 +51,13 @@ 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 print_position(const std::shared_ptr& position, bool print_average_values); bool close_file(); }; 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..8dc81a90a 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,14 @@ 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; + // TODO: Reduce the number of satellites in DOP computation + double azel[MAXSAT * 2] = {0.0}; + for (unsigned int i = 0; i < MAXSAT; i++) + { + azel[2 * i] = rtk_.ssat[i].azel[0]; + azel[2 * i + 1] = rtk_.ssat[i].azel[1]; + } + dops(MAXSAT, 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/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index c43b47a07..ff2d91ee8 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -308,6 +308,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-rrlp ${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-supl ${CMAKE_SOURCE_DIR}/src/algorithms/libs + ${CMAKE_SOURCE_DIR}/src/algorithms/libs/rtklib ${CMAKE_SOURCE_DIR}/src/algorithms/data_type_adapter/adapters ${CMAKE_SOURCE_DIR}/src/algorithms/data_type_adapter/gnuradio_blocks ${CMAKE_SOURCE_DIR}/src/algorithms/resampler/adapters diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc index 0e260dd75..f259947e5 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc @@ -38,8 +38,10 @@ TEST(NmeaPrinterTest, PrintLine) { std::string filename("nmea_test.nmea"); - - std::shared_ptr pvt_solution = std::make_shared(); + rtk_t rtk; + prcopt_t rtklib_configuration_options; + rtkinit(&rtk, &rtklib_configuration_options); + std::shared_ptr pvt_solution = std::make_shared(12, "filename", false, rtk); boost::posix_time::ptime pt(boost::gregorian::date(1994, boost::date_time::Nov, 19), boost::posix_time::hours(22) + boost::posix_time::minutes(54) + boost::posix_time::seconds(46)); // example from http://aprs.gids.nl/nmea/#rmc @@ -77,8 +79,10 @@ TEST(NmeaPrinterTest, PrintLine) TEST(NmeaPrinterTest, PrintLineLessthan10min) { std::string filename("nmea_test.nmea"); - - std::shared_ptr pvt_solution = std::make_shared(); + rtk_t rtk; + prcopt_t rtklib_configuration_options; + rtkinit(&rtk, &rtklib_configuration_options); + std::shared_ptr pvt_solution = std::make_shared(12, "filename", false, rtk); boost::posix_time::ptime pt(boost::gregorian::date(1994, boost::date_time::Nov, 19), boost::posix_time::hours(22) + boost::posix_time::minutes(54) + boost::posix_time::seconds(46)); // example from http://aprs.gids.nl/nmea/#rmc From 2a64473aad94d327cdcf625da64c810fa1ef081f Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Mon, 7 May 2018 11:45:41 +0200 Subject: [PATCH 053/108] Update UDP source config example --- conf/gnss-sdr_GPS_L1_2ch_udp.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf index 65773b04c..25334e569 100644 --- a/conf/gnss-sdr_GPS_L1_2ch_udp.conf +++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf @@ -19,7 +19,7 @@ SignalSource.port=1234 SignalSource.payload_bytes=1024 SignalSource.sample_type=cbyte SignalSource.RF_channels=1 -SignalSource.select_single_channel=1 +SignalSource.select_single_channel=0 SignalSource.channels_in_udp=2 SignalSource.IQ_swap=true SignalSource.dump=false From a23e6644ac6cb0837d5dd6a1a85f47a607c02003 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 7 May 2018 14:34:53 +0200 Subject: [PATCH 054/108] Fix DOP computation --- src/algorithms/PVT/libs/rtklib_solver.cc | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/algorithms/PVT/libs/rtklib_solver.cc b/src/algorithms/PVT/libs/rtklib_solver.cc index 8dc81a90a..8d74aea20 100644 --- a/src/algorithms/PVT/libs/rtklib_solver.cc +++ b/src/algorithms/PVT/libs/rtklib_solver.cc @@ -459,14 +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; - // TODO: Reduce the number of satellites in DOP computation - double azel[MAXSAT * 2] = {0.0}; + // DOP computation + unsigned int used_sats = 0; for (unsigned int i = 0; i < MAXSAT; i++) { - azel[2 * i] = rtk_.ssat[i].azel[0]; - azel[2 * i + 1] = rtk_.ssat[i].azel[1]; + if (int vsat = rtk_.ssat[i].vsat[0] == 1) used_sats++; } - dops(MAXSAT, azel, 0.0, dop_); + + 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]; From 7754fc66a68b3d3280ea22d549ffa947183c6fa5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 9 May 2018 13:09:26 +0200 Subject: [PATCH 055/108] Code cleaning --- .../gps_l1_ca_pcps_acquisition_fpga.cc | 18 +-- .../gnuradio_blocks/pcps_acquisition_fpga.cc | 20 ++- .../gps_l1_ca_dll_pll_tracking_fpga.cc | 130 +++--------------- .../gps_l1_ca_dll_pll_tracking_fpga.h | 16 +-- .../dll_pll_veml_tracking_fpga.cc | 93 +++++-------- .../dll_pll_veml_tracking_fpga.h | 11 +- 6 files changed, 88 insertions(+), 200 deletions(-) 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 2e5fecee9..4b7aae6d0 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 @@ -34,16 +34,15 @@ * ------------------------------------------------------------------------- */ +#include "gps_l1_ca_pcps_acquisition_fpga.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 "gps_sdr_signal_processing.h" #include #include #include - #define NUM_PRNs 32 using google::LogMessage; @@ -123,8 +122,7 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( } } - //acq_parameters - + // acq_parameters acq_parameters.all_fft_codes = d_all_fft_codes_; // temporary buffers that we can delete @@ -138,7 +136,6 @@ GpsL1CaPcpsAcquisitionFpga::GpsL1CaPcpsAcquisitionFpga( channel_ = 0; doppler_step_ = 0; gnss_synchro_ = 0; - } @@ -212,15 +209,20 @@ void GpsL1CaPcpsAcquisitionFpga::set_state(int state) acquisition_fpga_->set_state(state); } + void GpsL1CaPcpsAcquisitionFpga::connect(gr::top_block_sptr top_block) { - // nothing to connect + if (top_block) + { // nothing to disconnect + } } void GpsL1CaPcpsAcquisitionFpga::disconnect(gr::top_block_sptr top_block) { - // nothing to disconnect + if (top_block) + { // nothing to disconnect + } } diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc index 5bc5b2b3d..8a5d3ea99 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -38,10 +38,10 @@ * ------------------------------------------------------------------------- */ - +#include "pcps_acquisition_fpga.h" #include #include -#include "pcps_acquisition_fpga.h" + using google::LogMessage; @@ -52,8 +52,8 @@ pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(pcpsconf_fpga_t 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)) + gr::io_signature::make(0, 0, 0), + gr::io_signature::make(0, 0, 0)) { this->message_port_register_out(pmt::mp("events")); @@ -71,10 +71,8 @@ pcps_acquisition_fpga::pcps_acquisition_fpga(pcpsconf_fpga_t conf_) : gr::block( 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); - + 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); } @@ -196,9 +194,9 @@ void pcps_acquisition_fpga::set_active(bool active) 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->run_acquisition(); // runs acquisition and waits until it is finished acquisition_fpga->read_acquisition_results(&indext, &magt, - &initial_sample, &d_input_power); + &initial_sample, &d_input_power); d_sample_counter = initial_sample; if (d_mag < magt) @@ -213,7 +211,7 @@ void pcps_acquisition_fpga::set_active(bool active) 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; + 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 diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc index df4f193eb..111de94c5 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc @@ -36,17 +36,13 @@ * ------------------------------------------------------------------------- */ - - -//#include - -#include -#include "gps_sdr_signal_processing.h" #include "gps_l1_ca_dll_pll_tracking_fpga.h" #include "configuration_interface.h" -#include "GPS_L1_CA.h" -#include "gnss_sdr_flags.h" #include "display.h" +#include "gnss_sdr_flags.h" +#include "GPS_L1_CA.h" +#include "gps_sdr_signal_processing.h" +#include #define NUM_PRNs 32 @@ -54,16 +50,13 @@ using google::LogMessage; GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga( - ConfigurationInterface* configuration, std::string role, - unsigned int in_streams, unsigned int out_streams) : - role_(role), in_streams_(in_streams), out_streams_(out_streams) + ConfigurationInterface* configuration, std::string role, + unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams) { dllpllconf_fpga_t trk_param_fpga; DLOG(INFO) << "role " << role; - + //################# CONFIGURATION PARAMETERS ######################## - //std::string default_item_type = "gr_complex"; - //std::string item_type = configuration->property(role + ".item_type", default_item_type); int fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000); int fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); trk_param_fpga.fs_in = fs_in; @@ -136,11 +129,11 @@ GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga( trk_param_fpga.device_base = device_base; //################# PRE-COMPUTE ALL THE CODES ################# - d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); + d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS * NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) - { - gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); - } + { + gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); + } trk_param_fpga.ca_codes = d_ca_codes; trk_param_fpga.code_length = GPS_L1_CA_CODE_LENGTH_CHIPS; @@ -148,104 +141,21 @@ GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga( tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); channel_ = 0; DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; - - - - - - - - /* - - - //################# CONFIGURATION PARAMETERS ######################## - int fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000); - int fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); - trk_param_fpga.fs_in = fs_in; - bool dump = configuration->property(role + ".dump", false); - trk_param_fpga.dump = dump; - float pll_bw_hz = configuration->property(role + ".pll_bw_hz", 50.0); - if (FLAGS_pll_bw_hz != 0.0) pll_bw_hz = static_cast(FLAGS_pll_bw_hz); - trk_param_fpga.pll_bw_hz = pll_bw_hz; - float pll_bw_narrow_hz = configuration->property(role + ".pll_bw_narrow_hz", 20.0); - trk_param_fpga.pll_bw_narrow_hz = pll_bw_narrow_hz; - float dll_bw_narrow_hz = configuration->property(role + ".dll_bw_narrow_hz", 2.0); - trk_param_fpga.dll_bw_narrow_hz = dll_bw_narrow_hz; - float dll_bw_hz = configuration->property(role + ".dll_bw_hz", 2.0); - if (FLAGS_dll_bw_hz != 0.0) dll_bw_hz = static_cast(FLAGS_dll_bw_hz); - trk_param_fpga.dll_bw_hz = dll_bw_hz; - float early_late_space_chips = configuration->property(role + ".early_late_space_chips", 0.5); - trk_param_fpga.early_late_space_chips = early_late_space_chips; - float early_late_space_narrow_chips = configuration->property(role + ".early_late_space_narrow_chips", 0.5); - trk_param_fpga.early_late_space_narrow_chips = early_late_space_narrow_chips; - std::string default_dump_filename = "./track_ch"; - std::string dump_filename = configuration->property(role + ".dump_filename", default_dump_filename); - trk_param_fpga.dump_filename = dump_filename; - int vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS)); - trk_param_fpga.vector_length = vector_length; - int symbols_extended_correlator = configuration->property(role + ".extend_correlation_symbols", 1); - if (symbols_extended_correlator < 1) - { - symbols_extended_correlator = 1; - std::cout << TEXT_RED << "WARNING: GPS L1 C/A. extend_correlation_symbols must be bigger than 1. Coherent integration has been set to 1 symbol (1 ms)" << TEXT_RESET << std::endl; - } - else if (symbols_extended_correlator > 20) - { - symbols_extended_correlator = 20; - std::cout << TEXT_RED << "WARNING: GPS L1 C/A. extend_correlation_symbols must be lower than 21. Coherent integration has been set to 20 symbols (20 ms)" << TEXT_RESET << std::endl; - } - trk_param_fpga.extend_correlation_symbols = symbols_extended_correlator; - bool track_pilot = configuration->property(role + ".track_pilot", false); - if (track_pilot) - { - std::cout << TEXT_RED << "WARNING: GPS L1 C/A does not have pilot signal. Data tracking has been enabled" << TEXT_RESET << std::endl; - } - if ((symbols_extended_correlator > 1) and (pll_bw_narrow_hz > pll_bw_hz or dll_bw_narrow_hz > dll_bw_hz)) - { - std::cout << TEXT_RED << "WARNING: GPS L1 C/A. PLL or DLL narrow tracking bandwidth is higher than wide tracking one" << TEXT_RESET << std::endl; - } - trk_param_fpga.very_early_late_space_chips = 0.0; - trk_param_fpga.very_early_late_space_narrow_chips = 0.0; - trk_param_fpga.track_pilot = false; - trk_param_fpga.system = 'G'; - char sig_[3] = "1C"; - std::memcpy(trk_param_fpga.signal, sig_, 3); - - // FPGA configuration parameters - std::string default_device_name = "/dev/uio"; - std::string device_name = configuration->property(role + ".devicename", default_device_name); - trk_param_fpga.device_name = device_name; - unsigned int device_base = configuration->property(role + ".device_base", 1); - trk_param_fpga.device_base = device_base; - - //################# PRE-COMPUTE ALL THE CODES ################# - d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L1_CA_CODE_LENGTH_CHIPS*NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); - for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) - { - gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); - } - trk_param_fpga.ca_codes = d_ca_codes; - trk_param_fpga.code_length = GPS_L1_CA_CODE_LENGTH_CHIPS; - - //################# MAKE TRACKING GNURadio object ################### - tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); - channel_ = 0; - DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; - - */ - } + GpsL1CaDllPllTrackingFpga::~GpsL1CaDllPllTrackingFpga() { delete[] d_ca_codes; } + void GpsL1CaDllPllTrackingFpga::start_tracking() { tracking_fpga_sc->start_tracking(); } + /* * Set tracking channel unique ID */ @@ -255,21 +165,27 @@ void GpsL1CaDllPllTrackingFpga::set_channel(unsigned int channel) tracking_fpga_sc->set_channel(channel); } + void GpsL1CaDllPllTrackingFpga::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) { tracking_fpga_sc->set_gnss_synchro(p_gnss_synchro); } + void GpsL1CaDllPllTrackingFpga::connect(gr::top_block_sptr top_block) { - if(top_block) { /* top_block is not null */}; + if (top_block) + { /* top_block is not null */ + }; //nothing to connect } void GpsL1CaDllPllTrackingFpga::disconnect(gr::top_block_sptr top_block) { - if(top_block) { /* top_block is not null */}; + if (top_block) + { /* top_block is not null */ + }; //nothing to disconnect } @@ -284,5 +200,3 @@ gr::basic_block_sptr GpsL1CaDllPllTrackingFpga::get_right_block() { return tracking_fpga_sc; } - - diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h index b7798be81..4c5a171d2 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h @@ -39,10 +39,9 @@ #ifndef GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ #define GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ -#include #include "tracking_interface.h" #include "dll_pll_veml_tracking_fpga.h" - +#include class ConfigurationInterface; @@ -53,9 +52,9 @@ class GpsL1CaDllPllTrackingFpga : public TrackingInterface { public: GpsL1CaDllPllTrackingFpga(ConfigurationInterface* configuration, - std::string role, - unsigned int in_streams, - unsigned int out_streams); + std::string role, + unsigned int in_streams, + unsigned int out_streams); virtual ~GpsL1CaDllPllTrackingFpga(); @@ -93,11 +92,8 @@ public: void start_tracking() override; - //void reset(void); - private: - //gps_l1_ca_dll_pll_tracking_cc_sptr tracking_; - dll_pll_veml_tracking_fpga_sptr tracking_fpga_sc; + dll_pll_veml_tracking_fpga_sptr tracking_fpga_sc; size_t item_size_; unsigned int channel_; std::string role_; @@ -106,4 +102,4 @@ private: int* d_ca_codes; }; -#endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ +#endif // GNSS_SDR_GPS_L1_CA_DLL_PLL_TRACKING_FPGA_H_ diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc index 2a75713c4..fe856cded 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc @@ -64,9 +64,8 @@ dll_pll_veml_tracking_fpga_sptr dll_pll_veml_make_tracking_fpga(dllpllconf_fpga_ } -dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) : - gr::block("dll_pll_veml_tracking_fpga", gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) +dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) : gr::block("dll_pll_veml_tracking_fpga", gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { trk_parameters = conf_; // Telemetry bit synchronization message port input @@ -133,21 +132,20 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) d_correlation_length_ms = 1; d_code_samples_per_chip = 1; d_code_length_chips = static_cast(GPS_L5i_CODE_LENGTH_CHIPS); - // GPS L5 does not have pilot secondary code d_secondary = true; - interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(GPS_L5q_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5q_NH_CODE_STR); signal_pretty_name = signal_pretty_name + "Q"; - //interchange_iq = true; + interchange_iq = true; } else { d_secondary_code_length = static_cast(GPS_L5i_NH_CODE_LENGTH); d_secondary_code_string = const_cast(&GPS_L5i_NH_CODE_STR); signal_pretty_name = signal_pretty_name + "I"; + interchange_iq = false; } } else @@ -201,18 +199,18 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) d_code_samples_per_chip = 1; d_code_length_chips = static_cast(Galileo_E5a_CODE_LENGTH_CHIPS); d_secondary = true; - interchange_iq = false; if (trk_parameters.track_pilot) { d_secondary_code_length = static_cast(Galileo_E5a_Q_SECONDARY_CODE_LENGTH); signal_pretty_name = signal_pretty_name + "Q"; - // interchange_iq = true; + interchange_iq = true; } else { d_secondary_code_length = static_cast(Galileo_E5a_I_SECONDARY_CODE_LENGTH); d_secondary_code_string = const_cast(&Galileo_E5a_I_SECONDARY_CODE); signal_pretty_name = signal_pretty_name + "I"; + interchange_iq = false; } } else @@ -248,7 +246,6 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) K_blk_samples = 0.0; // Initialize tracking ========================================== - d_code_loop_filter = Tracking_2nd_DLL_filter(static_cast(d_code_period)); d_carrier_loop_filter = Tracking_2nd_PLL_filter(static_cast(d_code_period)); d_carrier_loop_filter.set_PLL_BW(trk_parameters.pll_bw_hz); @@ -333,7 +330,7 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) d_current_prn_length_samples = static_cast(trk_parameters.vector_length); d_next_prn_length_samples = d_current_prn_length_samples; - d_correlation_length_samples = static_cast(trk_parameters.vector_length); // this one is only for initialisation and does not change its value (MM) + d_correlation_length_samples = static_cast(trk_parameters.vector_length); // this one is only for initialisation and does not change its value (MM) // CN0 estimation and lock detector buffers d_cn0_estimation_counter = 0; @@ -364,9 +361,9 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(dllpllconf_fpga_t conf_) // create multicorrelator class std::string device_name = trk_parameters.device_name; unsigned int device_base = trk_parameters.device_base; - int* ca_codes = trk_parameters.ca_codes; + int *ca_codes = trk_parameters.ca_codes; unsigned int code_length = trk_parameters.code_length; - multicorrelator_fpga = std::make_shared (d_n_correlator_taps, device_name, device_base, ca_codes, code_length); + multicorrelator_fpga = std::make_shared(d_n_correlator_taps, device_name, device_base, ca_codes, code_length); multicorrelator_fpga->set_output_vectors(d_correlator_outs); d_pull_in = 0; @@ -381,7 +378,7 @@ void dll_pll_veml_tracking_fpga::start_tracking() d_acq_carrier_doppler_hz = d_acquisition_gnss_synchro->Acq_doppler_hz; d_acq_sample_stamp = d_acquisition_gnss_synchro->Acq_samplestamp_samples; - double acq_trk_diff_seconds = 0; // when using the FPGA we don't use the global sample counter + double acq_trk_diff_seconds = 0; // when using the FPGA we don't use the global sample counter // Doppler effect Fd = (C / (C + Vr)) * F double radial_velocity = (d_signal_carrier_freq + d_acq_carrier_doppler_hz) / d_signal_carrier_freq; // new chip and prn sequence periods based on acq Doppler @@ -509,7 +506,6 @@ void dll_pll_veml_tracking_fpga::start_tracking() d_pull_in = 1; // enable tracking pull-in and d_state at the end to avoid general work from starting pull-in before the start tracking function is finished d_state = 1; - } dll_pll_veml_tracking_fpga::~dll_pll_veml_tracking_fpga() @@ -1136,14 +1132,21 @@ void dll_pll_veml_tracking_fpga::set_channel(unsigned int channel) } } -void dll_pll_veml_tracking_fpga::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) + +void dll_pll_veml_tracking_fpga::set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) { d_acquisition_gnss_synchro = p_gnss_synchro; } -int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), - gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) +void dll_pll_veml_tracking_fpga::reset(void) +{ + multicorrelator_fpga->unlock_channel(); +} + + +int dll_pll_veml_tracking_fpga::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), + gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { // Block input data and block output stream pointers Gnss_Synchro **out = reinterpret_cast(&output_items[0]); @@ -1160,22 +1163,21 @@ int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((u { for (int n = 0; n < d_n_correlator_taps; n++) { - d_correlator_outs[n] = gr_complex(0,0); + d_correlator_outs[n] = gr_complex(0, 0); } - current_synchro_data.Tracking_sample_counter =d_sample_counter + d_current_prn_length_samples; + current_synchro_data.Tracking_sample_counter = d_sample_counter + d_current_prn_length_samples; current_synchro_data.System = {'G'}; current_synchro_data.correlation_length_ms = 1; break; - } case 1: // Standby - Consume samples at full throttle, do nothing { d_pull_in = 0; multicorrelator_fpga->lock_channel(); unsigned counter_value = multicorrelator_fpga->read_sample_counter(); - unsigned num_frames = ceil((counter_value - current_synchro_data.Acq_samplestamp_samples - current_synchro_data.Acq_delay_samples)/d_correlation_length_samples); - unsigned absolute_samples_offset = current_synchro_data.Acq_delay_samples + current_synchro_data.Acq_samplestamp_samples + num_frames*d_correlation_length_samples; + unsigned num_frames = ceil((counter_value - current_synchro_data.Acq_samplestamp_samples - current_synchro_data.Acq_delay_samples) / d_correlation_length_samples); + unsigned absolute_samples_offset = current_synchro_data.Acq_delay_samples + current_synchro_data.Acq_samplestamp_samples + num_frames * d_correlation_length_samples; multicorrelator_fpga->set_initial_sample(absolute_samples_offset); d_sample_counter = absolute_samples_offset; current_synchro_data.Tracking_sample_counter = absolute_samples_offset; @@ -1188,14 +1190,14 @@ int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((u case 2: { d_sample_counter = d_sample_counter_next; - d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; + d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; // ################# CARRIER WIPEOFF AND CORRELATORS ############################## // perform carrier wipe-off and compute Early, Prompt and Late correlation multicorrelator_fpga->Carrier_wipeoff_multicorrelator_resampler( - d_rem_carr_phase_rad, d_carrier_phase_step_rad, - d_rem_code_phase_chips, d_code_phase_step_chips, - d_current_prn_length_samples); + d_rem_carr_phase_rad, d_carrier_phase_step_rad, + d_rem_code_phase_chips, d_code_phase_step_chips, + d_current_prn_length_samples); // Save single correlation step variables if (d_veml) @@ -1317,11 +1319,9 @@ int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((u } else { - d_state = 4; } } - } break; @@ -1330,15 +1330,15 @@ int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((u case 3: { d_sample_counter = d_sample_counter_next; - d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; + d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; // Fill the acquisition data current_synchro_data = *d_acquisition_gnss_synchro; // perform a correlation step multicorrelator_fpga->Carrier_wipeoff_multicorrelator_resampler( - d_rem_carr_phase_rad, d_carrier_phase_step_rad, - d_rem_code_phase_chips, d_code_phase_step_chips, - d_current_prn_length_samples); + d_rem_carr_phase_rad, d_carrier_phase_step_rad, + d_rem_code_phase_chips, d_code_phase_step_chips, + d_current_prn_length_samples); update_tracking_vars(); save_correlation_results(); @@ -1390,14 +1390,14 @@ int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((u case 4: // narrow tracking { d_sample_counter = d_sample_counter_next; - d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; + d_sample_counter_next = d_sample_counter + d_current_prn_length_samples; // perform a correlation step //do_correlation_step(in); multicorrelator_fpga->Carrier_wipeoff_multicorrelator_resampler( - d_rem_carr_phase_rad, d_carrier_phase_step_rad, - d_rem_code_phase_chips, d_code_phase_step_chips, - d_current_prn_length_samples); + d_rem_carr_phase_rad, d_carrier_phase_step_rad, + d_rem_code_phase_chips, d_code_phase_step_chips, + d_current_prn_length_samples); save_correlation_results(); @@ -1472,24 +1472,3 @@ int dll_pll_veml_tracking_fpga::general_work (int noutput_items __attribute__((u } return 0; } - -void dll_pll_veml_tracking_fpga::reset(void) -{ - multicorrelator_fpga->unlock_channel(); -} - - - - - - - - - - - - - - - - diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h index 750d24a42..0d8b93f1e 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h @@ -39,15 +39,15 @@ #ifndef GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H #define GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H +#include "fpga_multicorrelator.h" #include "gnss_synchro.h" #include "tracking_2nd_DLL_filter.h" #include "tracking_2nd_PLL_filter.h" -#include "fpga_multicorrelator.h" #include #include #include #include -#include "fpga_multicorrelator.h" + typedef struct { @@ -75,13 +75,13 @@ typedef struct std::string device_name; unsigned int device_base; unsigned int code_length; - int* ca_codes; + int *ca_codes; } dllpllconf_fpga_t; class dll_pll_veml_tracking_fpga; typedef boost::shared_ptr -dll_pll_veml_tracking_fpga_sptr; + dll_pll_veml_tracking_fpga_sptr; dll_pll_veml_tracking_fpga_sptr dll_pll_veml_make_tracking_fpga(dllpllconf_fpga_t conf_); @@ -221,7 +221,6 @@ private: int d_next_prn_length_samples; unsigned long int d_sample_counter_next; unsigned int d_pull_in = 0; - }; -#endif //GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H +#endif //GNSS_SDR_DLL_PLL_VEML_TRACKING_FPGA_H From d93a3b6c3f0533f9fb4e00eeb4bb9da3cba264cb Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 9 May 2018 20:20:57 +0200 Subject: [PATCH 056/108] Switch to https://gnss-sdr.org --- AUTHORS | 37 +-- CONTRIBUTING.md | 12 +- MANIFEST.md | 13 +- README.md | 50 +-- conf/front-end-cal.conf | 35 +-- conf/gnss-sdr.conf | 3 +- ...nss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf | 2 +- .../gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf | 2 +- conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf | 2 +- .../gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf | 2 +- ...nss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf | 2 +- .../gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf | 2 +- conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf | 2 +- .../gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf | 2 +- ...gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf | 2 +- conf/gnss-sdr_GPS_L1_CA_ibyte.conf | 2 +- conf/gnss-sdr_GPS_L1_FPGA.conf | 3 +- conf/gnss-sdr_GPS_L1_GN3S_realtime.conf | 2 +- conf/gnss-sdr_GPS_L1_LimeSDR.conf | 2 +- conf/gnss-sdr_GPS_L1_SPIR.conf | 4 +- conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf | 2 +- conf/gnss-sdr_GPS_L1_USRP_realtime.conf | 2 +- conf/gnss-sdr_GPS_L1_acq_QuickSync.conf | 2 +- conf/gnss-sdr_GPS_L1_bladeRF.conf | 2 +- conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf | 2 +- conf/gnss-sdr_GPS_L1_gr_complex.conf | 2 +- conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf | 2 +- conf/gnss-sdr_GPS_L1_ishort.conf | 2 +- conf/gnss-sdr_GPS_L1_nsr.conf | 2 +- conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf | 2 +- conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf | 2 +- ...-sdr_GPS_L1_pulse_blanking_gr_complex.conf | 2 +- conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf | 2 +- conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf | 14 +- conf/gnss-sdr_GPS_L1_two_bits_cpx.conf | 2 +- conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf | 2 +- conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf | 2 +- ...nss-sdr_Galileo_E1_USRP_X300_realtime.conf | 3 + conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf | 2 +- conf/gnss-sdr_Galileo_E1_ishort.conf | 4 +- conf/gnss-sdr_Galileo_E1_nsr.conf | 2 +- conf/gnss-sdr_Galileo_E5a.conf | 3 + conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf | 3 + conf/gnss-sdr_Hybrid_byte.conf | 2 +- conf/gnss-sdr_Hybrid_byte_sim.conf | 2 +- conf/gnss-sdr_Hybrid_gr_complex.conf | 2 +- conf/gnss-sdr_Hybrid_ishort.conf | 2 +- conf/gnss-sdr_Hybrid_nsr.conf | 2 +- ...r_galileo_E1_extended_correlator_byte.conf | 2 +- ...galileo_E1_extended_correlator_labsat.conf | 2 +- ...nnel_GPS_L1_Flexiband_bin_file_III_1a.conf | 2 +- ...nnel_GPS_L1_Flexiband_realtime_III_1a.conf | 4 +- ...nnel_GPS_L1_Flexiband_realtime_III_1b.conf | 4 +- ...annel_GPS_L1_Flexiband_realtime_II_3b.conf | 4 +- ...hannel_GPS_L1_Flexiband_realtime_I_1b.conf | 2 +- ...l_GPS_L1_L2_Flexiband_realtime_III_1b.conf | 2 +- ...Galileo_E1B_Flexiband_bin_file_III_1b.conf | 3 +- ...ultichannel_GPS_L1_USRP_X300_realtime.conf | 2 +- ...el_GPS_L2_M_Flexiband_bin_file_III_1b.conf | 2 +- ...S_L2_M_Flexiband_bin_file_III_1b_real.conf | 4 +- ..._all_in_one_Flexiband_bin_file_III_1b.conf | 2 +- conf/gnss-sdr_multisource_Hybrid_ishort.conf | 2 +- conf/gnss-sdr_multisource_Hybrid_nsr.conf | 4 +- docs/PULL_REQUEST_TEMPLATE.md | 8 +- docs/doxygen/other/main_page.dox | 291 +++++++++--------- docs/manpage/front-end-cal-manpage | 8 +- docs/manpage/gnss-sdr-manpage | 18 +- src/algorithms/PVT/libs/rinex_printer.cc | 36 +-- .../volk_gnsssdr/README.md | 14 +- .../volk_gnsssdr-config-info-manpage | 4 +- .../Packaging/volk_gnsssdr_profile-manpage | 6 +- 71 files changed, 339 insertions(+), 341 deletions(-) diff --git a/AUTHORS b/AUTHORS index 17aa5fa4b..20a6511a7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,34 +1,34 @@ GNSS-SDR Authorship ------------------------------------------------------------------------------ -The GNSS-SDR project is hosted and sponsored by the Centre Tecnologic de -Telecomunicacions de Catalunya (CTTC), a non-profit research foundation located -in Castelldefels (40.396764 N, 3.713379 E), 20 km south of Barcelona, Spain. -GNSS-SDR is the by-product of GNSS research conducted at the Communications -Systems Division of CTTC, and it is the combined effort of students, +The GNSS-SDR project is hosted and sponsored by the Centre Tecnologic de +Telecomunicacions de Catalunya (CTTC), a non-profit research foundation located +in Castelldefels (40.396764 N, 3.713379 E), 20 km south of Barcelona, Spain. +GNSS-SDR is the by-product of GNSS research conducted at the Communications +Systems Division of CTTC, and it is the combined effort of students, software engineers and researchers from different institutions around the World. Contact Information ------------------------------------------------------------------------------ - GNSS-SDR Homepage + GNSS-SDR Homepage ---------------------------- - http://gnss-sdr.org - - + https://gnss-sdr.org + + CTTC Homepage ---------------------------- http://www.cttc.cat - - - Mailing Lists + + + Mailing Lists ---------------------------- - gnss-sdr-developers@lists.sourceforge.net + gnss-sdr-developers@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers - - + + Email ---------------------------- - Inquiries beyond the mailing list can be sent to carles.fernandez@cttc.cat + Inquiries beyond the mailing list can be sent to carles.fernandez@cttc.cat List of authors @@ -40,7 +40,7 @@ Antonio Ramos antonio.ramos@cttc.es Developer Marc Majoral marc.majoral@cttc.cat Developer Pau Closas pau.closas@northeastern.edu Consultant Jordi Vila-Valls jordi.vila@cttc.cat Consultant -Carlos Aviles carlos.avilesr@googlemail.com Contributor +Carlos Aviles carlos.avilesr@googlemail.com Contributor David Pubill david.pubill@cttc.cat Contributor Mara Branzanti mara.branzanti@gmail.com Contributor Marc Molina marc.molina.pena@gmail.com Contributor @@ -54,6 +54,3 @@ Fran Fabra fabra@ice.csic.es Contributor Cillian O'Driscoll cillian.odriscoll@gmail.com Contributor Gabriel Araujo gabriel.araujo.5000@gmail.com Contributor Carlos Paniego carpanie@hotmail.com Artwork - - - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 262feeb0c..06f37b0a2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -128,7 +128,7 @@ $ git pull --rebase upstream next ### How to submit a pull request -Before submitting your code, please be sure to [apply clang-format](http://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting). +Before submitting your code, please be sure to [apply clang-format](https://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting). When the contribution is ready, you can [submit a pull request](https://github.com/gnss-sdr/gnss-sdr/compare/). Head to your @@ -146,24 +146,24 @@ accepted: * Avoid platform-dependent code. If your code require external dependencies, they must be available as packages in [Debian OldStable](https://wiki.debian.org/DebianOldStable). * Write tests. - * Follow our [coding style guide](http://gnss-sdr.org/coding-style/). + * Follow our [coding style guide](https://gnss-sdr.org/coding-style/). * Write a descriptive and detailed summary. Please consider that reviewing pull requests is hard, so include as much information as possible to make your pull request's intent clear. For more details about Git usage, please check out [our -tutorial](http://gnss-sdr.org/docs/tutorials/using-git/). +tutorial](https://gnss-sdr.org/docs/tutorials/using-git/). ## Contributing to the website -The content of http://gnss-sdr.org lives in a GitHub repository at +The content of https://gnss-sdr.org lives in a GitHub repository at https://github.com/gnss-sdr/geniuss-place You can fork that repository, reproduce the entire website on your computer using [Jekyll](https://jekyllrb.com/), do changes and submit pull requests, just as explained above. For more details, please check -out [how to contribute](http://gnss-sdr.org/contribute/). +out [how to contribute](https://gnss-sdr.org/contribute/). Last but not the least, you can leave your comments on the website. @@ -173,6 +173,6 @@ Last but not the least, you can leave your comments on the website. ![GeNiuSS -contributes](http://gnss-sdr.org/assets/images/geniuss-contribute.png) +contributes](https://gnss-sdr.org/assets/images/geniuss-contribute.png) Thanks for your contribution to GNSS-SDR! diff --git a/MANIFEST.md b/MANIFEST.md index 1248e47aa..f78022b17 100644 --- a/MANIFEST.md +++ b/MANIFEST.md @@ -14,13 +14,12 @@ copyright_owner: dependencies: gnuradio (>= 3.7.3), armadillo, gflags, glog, gnutls license: GPLv3+ repo: https://github.com/gnss-sdr/gnss-sdr -website: http://gnss-sdr.org +website: https://gnss-sdr.org icon: http://a.fsdn.com/con/app/proj/gnss-sdr/screenshots/logo400x400.jpg --- -Global Navigation Satellite Systems receiver defined by software. It performs all the signal -processing from raw signal samples up to the computation of the Position-Velocity-Time solution, -including code and phase observables. It is able to work with raw data files or, if there is -computational power enough, in real time with suitable radiofrequency front-ends. This software +Global Navigation Satellite Systems receiver defined by software. It performs all the signal +processing from raw signal samples up to the computation of the Position-Velocity-Time solution, +including code and phase observables. It is able to work with raw data files or, if there is +computational power enough, in real time with suitable radiofrequency front-ends. This software is mainly developed at [CTTC](http://www.cttc.es "Centre Tecnologic de Telecomunicacions de Catalunya") -with contributions from around the world. More info at [gnss-sdr.org](http://gnss-sdr.org "GNSS-SDR's Homepage"). - +with contributions from around the world. More info at [gnss-sdr.org](https://gnss-sdr.org "GNSS-SDR's Homepage"). diff --git a/README.md b/README.md index ddb36c7c9..98ae27efa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![](./docs/doxygen/images/gnss-sdr_logo.png)](http://gnss-sdr.org "GNSS-SDR website") +[![](./docs/doxygen/images/gnss-sdr_logo.png)](https://gnss-sdr.org "GNSS-SDR website") [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) @@ -19,14 +19,14 @@ In the L5 band (centered at 1176.45 MHz): - 🛰 GPS L5 :white_check_mark: - 🛰 Galileo E5a :white_check_mark: -GNSS-SDR provides interfaces for a wide range of radio frequency front-ends, generates processing outputs in standard formats, allows for the full inspection of the whole signal processing chain, and offers a framework for the development of new features. Please visit [http://gnss-sdr.org](http://gnss-sdr.org "GNSS-SDR website") for more information about this open source software-defined GNSS receiver. +GNSS-SDR provides interfaces for a wide range of radio frequency front-ends, generates processing outputs in standard formats, allows for the full inspection of the whole signal processing chain, and offers a framework for the development of new features. Please visit [https://gnss-sdr.org](https://gnss-sdr.org "GNSS-SDR website") for more information about this open source software-defined GNSS receiver. # How to build GNSS-SDR -This section describes how to set up the compilation environment in GNU/Linux or [macOS / Mac OS X](#macosx), and to build GNSS-SDR. See also our [build and install page](http://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install"). +This section describes how to set up the compilation environment in GNU/Linux or [macOS / Mac OS X](#macosx), and to build GNSS-SDR. See also our [build and install page](https://gnss-sdr.org/build-and-install/ "GNSS-SDR's Build and Install"). GNU/Linux @@ -286,7 +286,7 @@ By default, you will be in the 'master' branch of the Git repository, which corr $ git checkout next ~~~~~~ -More information about GNSS-SDR-specific Git usage and pointers to further readings can be found at our [Git tutorial](http://gnss-sdr.org/docs/tutorials/using-git/ "Using Git"). +More information about GNSS-SDR-specific Git usage and pointers to further readings can be found at our [Git tutorial](https://gnss-sdr.org/docs/tutorials/using-git/ "Using Git"). ### Build and install GNSS-SDR @@ -507,7 +507,7 @@ $ sudo make install Using this option, all SIMD instructions are exclusively accessed via VOLK, which automatically includes versions of each function for different SIMD instruction sets, then detects at runtime which to use, or if there are none, substitutes a generic, non-SIMD implementation. -More details can be found in our tutorial about [GNSS-SDR configuration options at building time](http://gnss-sdr.org/docs/tutorials/using-git/ "Configuration options at building time"). +More details can be found in our tutorial about [GNSS-SDR configuration options at building time](https://gnss-sdr.org/docs/tutorials/using-git/ "Configuration options at building time"). macOS and Mac OS X @@ -648,7 +648,7 @@ Other builds * **Snap packages**: [Snaps](http://snapcraft.io) are universal Linux packages aimed to work on any distribution or device, from IoT devices to servers, desktops to mobile devices. Visit [https://github.com/carlesfernandez/snapcraft-sandbox](https://github.com/carlesfernandez/snapcraft-sandbox) for instructions. -* **GNSS-SDR in embedded platforms**: we provide a Software Development Kit (SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for cross-compiling GNSS-SDR in your desktop computer and for producing executables that can run in embedded platforms, such as a Zedboard or a Raspberry Pi 3. Visit [Cross-compiling GNSS-SDR](http://gnss-sdr.org/docs/tutorials/cross-compiling/) for instructions. +* **GNSS-SDR in embedded platforms**: we provide a Software Development Kit (SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for cross-compiling GNSS-SDR in your desktop computer and for producing executables that can run in embedded platforms, such as a Zedboard or a Raspberry Pi 3. Visit [Cross-compiling GNSS-SDR](https://gnss-sdr.org/docs/tutorials/cross-compiling/) for instructions. Updating GNSS-SDR @@ -680,9 +680,9 @@ Before rebuilding the source code, it is safe (and recommended) to remove the re $ rm -rf gnss-sdr/build/* ~~~~~~ -If you are interested in contributing to the development of GNSS-SDR, please check out [how to do it](http://gnss-sdr.org/contribute/ "How to contribute to GNSS-SDR source code"). +If you are interested in contributing to the development of GNSS-SDR, please check out [how to do it](https://gnss-sdr.org/contribute/ "How to contribute to GNSS-SDR source code"). -There is a more controlled way to upgrade your repository, which is to use the Git commands ```fetch``` and ```merge```, as described in our [Git Tutorial](http://gnss-sdr.org/docs/tutorials/using-git/ "Using Git"). +There is a more controlled way to upgrade your repository, which is to use the Git commands ```fetch``` and ```merge```, as described in our [Git Tutorial](https://gnss-sdr.org/docs/tutorials/using-git/ "Using Git"). @@ -712,7 +712,7 @@ We use a [DBSRX2](https://www.ettus.com/product/details/DBSRX2) to do the task, ```$ gnss-sdr --config_file=/path/to/my_receiver.conf``` The program reports the current status in text mode, directly to the terminal window. If all goes well, and GNSS-SDR is able to successfully track and decode at least 4 satellites, you will get PVT fixes. The program will write .kml, .geojson and RINEX files in the folder from which ```gnss-sdr``` was run. In addition to the console output, GNSS-SDR also writes log files at /tmp/ (configurable with the commandline flag ```./gnss-sdr --log_dir=/path/to/log```). -For more information, check out our [quick start guide](http://gnss-sdr.org/quick-start-guide/). +For more information, check out our [quick start guide](https://gnss-sdr.org/quick-start-guide/). Using GNSS-SDR @@ -772,7 +772,7 @@ Since the configuration is just a set of property names and values without any m Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called [GNSSBlockFactory](./src/core/receiver/gnss_block_factory.h). This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration enables extending the application capacities in a high degree. It also allows producing fully customized receivers, for instance a testbed for acquisition algorithms, and to place observers at any point of the receiver chain. -More information can be found at the [Control Plane page](http://gnss-sdr.org/docs/control-plane/). +More information can be found at the [Control Plane page](https://gnss-sdr.org/docs/control-plane/). Signal Processing plane @@ -800,7 +800,7 @@ Internally, GNSS-SDR makes use of the complex data types defined by [VOLK](http: - **`gr_complex`**: Complex samples, with real and imaginary parts of type `float`. C++ type name: `std::complex`. -More information about the available processing blocks and their configuration parameters can be found at the [Signal Processing Blocks documentation page](http://gnss-sdr.org/docs/sp-blocks/). +More information about the available processing blocks and their configuration parameters can be found at the [Signal Processing Blocks documentation page](https://gnss-sdr.org/docs/sp-blocks/). ### Signal Source @@ -994,7 +994,7 @@ SignalSource.dump1=false ~~~~~~ -More documentation and examples are available at the [Signal Source Blocks page](http://gnss-sdr.org/docs/sp-blocks/signal-source/). +More documentation and examples are available at the [Signal Source Blocks page](https://gnss-sdr.org/docs/sp-blocks/signal-source/). ### Signal Conditioner @@ -1015,7 +1015,7 @@ If you need to adapt some aspect of your signal, you can enable the Signal Condi SignalConditioner.implementation=Signal_Conditioner ~~~~~~ -More documentation at the [Signal Conditioner Blocks page](http://gnss-sdr.org/docs/sp-blocks/signal-conditioner/). +More documentation at the [Signal Conditioner Blocks page](https://gnss-sdr.org/docs/sp-blocks/signal-conditioner/). #### Data type adapter @@ -1027,7 +1027,7 @@ This block changes the type of input data samples. If your signal source deliver DataTypeAdapter.implementation=Ishort_To_Complex ~~~~~~ -More documentation at the [Data Type Adapter Blocks page](http://gnss-sdr.org/docs/sp-blocks/data-type-adapter/). +More documentation at the [Data Type Adapter Blocks page](https://gnss-sdr.org/docs/sp-blocks/data-type-adapter/). #### Input filter @@ -1082,7 +1082,7 @@ InputFilter.IF=0 InputFilter.decimation_factor=1 ~~~~~~ -More documentation at the [Input Filter Blocks page](http://gnss-sdr.org/docs/sp-blocks/input-filter/). +More documentation at the [Input Filter Blocks page](https://gnss-sdr.org/docs/sp-blocks/input-filter/). #### Resampler @@ -1100,7 +1100,7 @@ Resampler.sample_freq_in=8000000 ; sample frequency of the input signal Resampler.sample_freq_out=4000000 ; desired sample frequency of the output signal ~~~~~~ -More documentation at the [Resampler Blocks page](http://gnss-sdr.org/docs/sp-blocks/resampler/). +More documentation at the [Resampler Blocks page](https://gnss-sdr.org/docs/sp-blocks/resampler/). ### Channel @@ -1150,7 +1150,7 @@ This module is also in charge of managing the interplay between acquisition and The abstract class [ChannelInterface](./src/core/interfaces/channel_interface.h) represents an interface to a channel GNSS block. Check [Channel](./src/algorithms/channel/adapters/channel.h) for an actual implementation. -More documentation at the [Channels page](http://gnss-sdr.org/docs/sp-blocks/channels/). +More documentation at the [Channels page](https://gnss-sdr.org/docs/sp-blocks/channels/). @@ -1201,7 +1201,7 @@ Acquisition_1B.dump=false Acquisition_1B.dump_filename=./acq_dump.dat ~~~~~~ -More documentation at the [Acquisition Blocks page](http://gnss-sdr.org/docs/sp-blocks/acquisition/). +More documentation at the [Acquisition Blocks page](https://gnss-sdr.org/docs/sp-blocks/acquisition/). #### Tracking @@ -1251,7 +1251,7 @@ Tracking_1B.dump=false Tracking_1B.dump_filename=../data/veml_tracking_ch_ ~~~~~~ -More documentation at the [Tracking Blocks page](http://gnss-sdr.org/docs/sp-blocks/tracking/). +More documentation at the [Tracking Blocks page](https://gnss-sdr.org/docs/sp-blocks/tracking/). #### Decoding of the navigation message @@ -1279,7 +1279,7 @@ TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder TelemetryDecoder_1B.dump=false ~~~~~~ -More documentation at the [Telemetry Decoder Blocks page](http://gnss-sdr.org/docs/sp-blocks/telemetry-decoder/). +More documentation at the [Telemetry Decoder Blocks page](https://gnss-sdr.org/docs/sp-blocks/telemetry-decoder/). #### Observables @@ -1297,7 +1297,7 @@ Observables.dump=false Observables.dump_filename=./observables.dat ~~~~~~ -More documentation at the [Observables Blocks page](http://gnss-sdr.org/docs/sp-blocks/observables/). +More documentation at the [Observables Blocks page](https://gnss-sdr.org/docs/sp-blocks/observables/). #### Computation of Position, Velocity and Time @@ -1354,7 +1354,7 @@ PVT.rtcm_station_id=1111 In order to get well-formatted GeoJSON, KML and RINEX files, always terminate ```gnss-sdr``` execution by pressing key ```q``` and then key ```ENTER```. Those files will be automatically deleted if no position fix have been obtained during the execution of the software receiver. -More documentation at the [PVT Blocks page](http://gnss-sdr.org/docs/sp-blocks/pvt/). +More documentation at the [PVT Blocks page](https://gnss-sdr.org/docs/sp-blocks/pvt/). About the software license @@ -1393,7 +1393,7 @@ For LaTeX users, this is the BibTeX entry for your convenience: ~~~~~~ -There is a list of papers related to GNSS-SDR in our [publications page](http://gnss-sdr.org/publications/ "Publications"). +There is a list of papers related to GNSS-SDR in our [publications page](https://gnss-sdr.org/publications/ "Publications"). @@ -1404,9 +1404,9 @@ In order to start using GNSS-SDR, you may want to populate ```gnss-sdr/data``` f Another interesting option is working in real-time with an RF front-end. We provide drivers for UHD-compatible hardware such as the [USRP family](http://www.ettus.com/product), for OsmoSDR and other front-ends (HackRF, bladeRF, LimeSDR), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time. -You can find more information at the [GNSS-SDR Documentation page](http://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers). +You can find more information at the [GNSS-SDR Documentation page](https://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers). -You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](http://gnss-sdr.org/contribute/). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](http://gnss-sdr.org/team/). +You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](https://gnss-sdr.org/contribute/). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](https://gnss-sdr.org/team/). **Enjoy GNSS-SDR!** diff --git a/conf/front-end-cal.conf b/conf/front-end-cal.conf index 6ef6ec846..106b8d736 100644 --- a/conf/front-end-cal.conf +++ b/conf/front-end-cal.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Default configuration file ; You can define your own front-end calibration tool configuration and invoke it by doing @@ -21,7 +21,7 @@ GNSS-SDR.init_altitude_m=10 ; Mozoncillo ;GNSS-SDR.init_latitude_deg=41.14534824586196 -;GNSS-SDR.init_longitude_deg=-4.187125019737464 +;GNSS-SDR.init_longitude_deg=-4.187125019737464 ;GNSS-SDR.init_altitude_m=900 @@ -45,28 +45,28 @@ GNSS-SDR.SUPL_CI=40184 ;######### SIGNAL_SOURCE CONFIG ############ SignalSource.implementation=Osmosdr_Signal_Source -;#freq: RF front-end center frequency in [Hz] +;#freq: RF front-end center frequency in [Hz] SignalSource.freq=1575420000 ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. SignalSource.item_type=gr_complex -;#sampling_frequency: Original Signal sampling frequency in samples per second +;#sampling_frequency: Original Signal sampling frequency in samples per second SignalSource.sampling_frequency=2000000 -;#gain: Front-end Gain in [dB] -SignalSource.gain=40 +;#gain: Front-end Gain in [dB] +SignalSource.gain=40 SignalSource.rf_gain=40 SignalSource.if_gain=30 SignalSource.AGC_enabled=false -;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM +;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM ;# temperature compensated oscillator (TCXO), which is well suited for GNSS ;# signal processing, and a 4.5 V powered bias-tee to feed an active antenna. -;# Whether the bias-tee is turned off before reception depends on which version -;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version -;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the -;# bias-tee, and then call gnss-sdr. +;# Whether the bias-tee is turned off before reception depends on which version +;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version +;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the +;# bias-tee, and then call gnss-sdr. ;# See https://github.com/rtlsdrblog/rtl_biast ;# After reception the bias-tee is switched off automatically by the program. -;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be +;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be ;# activated by uncommenting the following line: ;SignalSource.osmosdr_args=rtl,bias=1 @@ -82,7 +82,7 @@ SignalSource.dump=false SignalSource.dump_filename=../data/signal_source.dat ;######### SIGNAL_CONDITIONER CONFIG ############ -;## It holds blocks to change data type, filter and resample input data. +;## It holds blocks to change data type, filter and resample input data. ;#implementation: Use [Pass_Through] or [Signal_Conditioner] ;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks @@ -108,7 +108,7 @@ DataTypeAdapter.dump_filename=../data/data_type_adapter.dat InputFilter.implementation=Freq_Xlating_Fir_Filter -;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation. +;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation. ;#These options are based on parameters of gnuradio's function: gr_remez. ;#This function calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, ;#the desired response on those bands, and the weight given to the error in those bands. @@ -151,7 +151,7 @@ InputFilter.ampl2_end=0.0 InputFilter.band1_error=1.0 InputFilter.band2_error=1.0 -;#filter_type: one of "bandpass", "hilbert" or "differentiator" +;#filter_type: one of "bandpass", "hilbert" or "differentiator" InputFilter.filter_type=bandpass ;#grid_density: determines how accurately the filter will be constructed. @@ -182,7 +182,7 @@ Resampler.implementation=Pass_Through Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. Acquisition.item_type=gr_complex -;#if: Signal intermediate frequency in [Hz] +;#if: Signal intermediate frequency in [Hz] Acquisition.if=0 ;#sampled_ms: Signal block duration for the acquisition signal detection [ms] Acquisition.sampled_ms=1 @@ -196,8 +196,7 @@ Acquisition.doppler_min=-100000 Acquisition.doppler_step=500 ;#maximum dwells Acquisition.max_dwells=15 -;#dump: Enable or disable the acquisition internal data file logging [true] or [false] +;#dump: Enable or disable the acquisition internal data file logging [true] or [false] Acquisition.dump=false ;#filename: Log path and filename Acquisition.dump_filename=./acq_dump.dat - diff --git a/conf/gnss-sdr.conf b/conf/gnss-sdr.conf index e9a05e798..4c9ae11a4 100644 --- a/conf/gnss-sdr.conf +++ b/conf/gnss-sdr.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Default configuration file ; You can define your own receiver and invoke it by doing @@ -141,4 +141,3 @@ PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false 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 f042def9c..88c8741b6 100644 --- a/conf/gnss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf +++ b/conf/gnss-sdr_GLONASS_L1_CA_GPS_L1_CA_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] 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 09bddfb46..435194b75 100644 --- a/conf/gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf +++ b/conf/gnss-sdr_GLONASS_L1_CA_GPS_L2C_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] diff --git a/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf b/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf index 077d3dd1e..1e4b6a24b 100644 --- a/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf +++ b/conf/gnss-sdr_GLONASS_L1_CA_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] 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 ca1197a6d..6e30d5566 100644 --- a/conf/gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf +++ b/conf/gnss-sdr_GLONASS_L1_CA_ibyte_coh_trk.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] 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 7e4e9e03f..3c56e6132 100644 --- a/conf/gnss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf +++ b/conf/gnss-sdr_GLONASS_L2_CA_GPS_L1_CA_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] 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 c3ab7cb9c..10df72ae2 100644 --- a/conf/gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf +++ b/conf/gnss-sdr_GLONASS_L2_CA_GPS_L2C_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] diff --git a/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf b/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf index 7cc44a0a4..39b6fa5ab 100644 --- a/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf +++ b/conf/gnss-sdr_GLONASS_L2_CA_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] 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 ca1197a6d..6e30d5566 100644 --- a/conf/gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf +++ b/conf/gnss-sdr_GLONASS_L2_CA_ibyte_coh_trk.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] diff --git a/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf b/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf index f53fe2ea6..cd3345904 100644 --- a/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_2ch_fmcomms2_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_CA_ibyte.conf b/conf/gnss-sdr_GPS_L1_CA_ibyte.conf index 959181078..da4b273c2 100644 --- a/conf/gnss-sdr_GPS_L1_CA_ibyte.conf +++ b/conf/gnss-sdr_GPS_L1_CA_ibyte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] diff --git a/conf/gnss-sdr_GPS_L1_FPGA.conf b/conf/gnss-sdr_GPS_L1_FPGA.conf index c6bb2edfc..70ec83ed5 100644 --- a/conf/gnss-sdr_GPS_L1_FPGA.conf +++ b/conf/gnss-sdr_GPS_L1_FPGA.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -82,4 +82,3 @@ PVT.flag_rtcm_server=false PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false - diff --git a/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf b/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf index bc99d4a28..9982a1cbd 100644 --- a/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_GN3S_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_LimeSDR.conf b/conf/gnss-sdr_GPS_L1_LimeSDR.conf index ab1242bc7..c50572aef 100644 --- a/conf/gnss-sdr_GPS_L1_LimeSDR.conf +++ b/conf/gnss-sdr_GPS_L1_LimeSDR.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] diff --git a/conf/gnss-sdr_GPS_L1_SPIR.conf b/conf/gnss-sdr_GPS_L1_SPIR.conf index 6f3affed4..f6fa9a076 100644 --- a/conf/gnss-sdr_GPS_L1_SPIR.conf +++ b/conf/gnss-sdr_GPS_L1_SPIR.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -133,5 +133,3 @@ PVT.flag_nmea_tty_port=true; PVT.nmea_dump_devname=/dev/pts/4 PVT.dump=false 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 89f84fd77..ba96a533e 100644 --- a/conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_USRP_X300_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Configuration file for using USRP X300 as a RF front-end for GPS L1 signals. ; Set SignalSource.device_address to the IP address of your device diff --git a/conf/gnss-sdr_GPS_L1_USRP_realtime.conf b/conf/gnss-sdr_GPS_L1_USRP_realtime.conf index 1cb41801f..b432eb6b2 100644 --- a/conf/gnss-sdr_GPS_L1_USRP_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_USRP_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Configuration file for using USRP 1 as a RF front-end for GPS L1 signals. ; Run: diff --git a/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf b/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf index 1f74645fb..fd7b5d8ff 100644 --- a/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf +++ b/conf/gnss-sdr_GPS_L1_acq_QuickSync.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_bladeRF.conf b/conf/gnss-sdr_GPS_L1_bladeRF.conf index 48017a8ec..80e9ddda8 100644 --- a/conf/gnss-sdr_GPS_L1_bladeRF.conf +++ b/conf/gnss-sdr_GPS_L1_bladeRF.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ [GNSS-SDR] diff --git a/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf b/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf index 17880d8a2..3de8486d8 100644 --- a/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_fmcomms2_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_gr_complex.conf b/conf/gnss-sdr_GPS_L1_gr_complex.conf index 0cf4d146c..7f83c666c 100644 --- a/conf/gnss-sdr_GPS_L1_gr_complex.conf +++ b/conf/gnss-sdr_GPS_L1_gr_complex.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf b/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf index 7ecb75715..33c3a07b6 100644 --- a/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf +++ b/conf/gnss-sdr_GPS_L1_gr_complex_gpu.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_ishort.conf b/conf/gnss-sdr_GPS_L1_ishort.conf index a9528d183..373049a25 100644 --- a/conf/gnss-sdr_GPS_L1_ishort.conf +++ b/conf/gnss-sdr_GPS_L1_ishort.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_nsr.conf b/conf/gnss-sdr_GPS_L1_nsr.conf index 5e2bee6ba..2b3d3f5f4 100644 --- a/conf/gnss-sdr_GPS_L1_nsr.conf +++ b/conf/gnss-sdr_GPS_L1_nsr.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Sample configuration file for IFEN SX-NSR software receiver front-end ; http://www.ifen.com/products/sx-scientific-gnss-solutions/nsr-software-receiver.html diff --git a/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf b/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf index dffa01314..d31885566 100644 --- a/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf +++ b/conf/gnss-sdr_GPS_L1_nsr_twobit_packed.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Sample configuration file for IFEN SX-NSR software receiver front-end ; http://www.ifen.com/products/sx-scientific-gnss-solutions/nsr-software-receiver.html diff --git a/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf b/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf index d3be2c6b6..fa8996dc7 100644 --- a/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_plutosdr_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf b/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf index 4f68bdb08..e186f1da7 100644 --- a/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf +++ b/conf/gnss-sdr_GPS_L1_pulse_blanking_gr_complex.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf b/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf index 01b30c02a..91b952ad0 100644 --- a/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_rtl_tcp_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf b/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf index 18d783741..f3252578b 100644 --- a/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf +++ b/conf/gnss-sdr_GPS_L1_rtlsdr_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -45,16 +45,16 @@ SignalSource.dump=false SignalSource.dump_filename=../data/signal_source.dat SignalSource.enable_throttle_control=false -;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM +;# Please note that the new RTL-SDR Blog V3 dongles ship a < 1 PPM ;# temperature compensated oscillator (TCXO), which is well suited for GNSS ;# signal processing, and a 4.5 V powered bias-tee to feed an active antenna. -;# Whether the bias-tee is turned off before reception depends on which version -;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version -;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the -;# bias-tee, and then call gnss-sdr. +;# Whether the bias-tee is turned off before reception depends on which version +;# of gr-osmosdr was used when compiling GNSS-SDR. With an old version +;# (for example, v0.1.4-8), the utility rtl_biast may be used to switch the +;# bias-tee, and then call gnss-sdr. ;# See https://github.com/rtlsdrblog/rtl_biast ;# After reception the bias-tee is switched off automatically by the program. -;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be +;# With newer versions of gr-osmosdr (>= 0.1.4-13), the bias-tee can be ;# activated by uncommenting the following line: ;SignalSource.osmosdr_args=rtl,bias=1 diff --git a/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf b/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf index 1cf1ac378..84753bee7 100644 --- a/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf +++ b/conf/gnss-sdr_GPS_L1_two_bits_cpx.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf b/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf index 362e747a3..6d61e063b 100644 --- a/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf +++ b/conf/gnss-sdr_GPS_L2C_USRP1_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Configuration file for using USRP1 as a RF front-end for GPS L2C signals ; Run: diff --git a/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf b/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf index 1572b45cd..55a84a13e 100644 --- a/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf +++ b/conf/gnss-sdr_GPS_L2C_USRP_X300_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; Configuration file for using USRP X300 as a RF front-end for GPS L2C signals ; Set SignalSource.device_address to the IP address of your device diff --git a/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf b/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf index aad3dd417..2207039da 100644 --- a/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf +++ b/conf/gnss-sdr_Galileo_E1_USRP_X300_realtime.conf @@ -1,3 +1,6 @@ +; This is a GNSS-SDR configuration file +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ + ; Configuration file for using USRP X300 as a RF front-end for Galileo E1 signals. ; Set SignalSource.device_address to the IP address of your device ; and run: diff --git a/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf b/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf index 2653a1402..8ed21451f 100644 --- a/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf +++ b/conf/gnss-sdr_Galileo_E1_acq_QuickSync.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_Galileo_E1_ishort.conf b/conf/gnss-sdr_Galileo_E1_ishort.conf index 22a64245d..ff0f52a5a 100644 --- a/conf/gnss-sdr_Galileo_E1_ishort.conf +++ b/conf/gnss-sdr_Galileo_E1_ishort.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -104,4 +104,4 @@ PVT.rtcm_MSM_rate_ms=1000 PVT.flag_rtcm_tty_port=false; PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false -PVT.dump_filename=./PVT \ No newline at end of file +PVT.dump_filename=./PVT diff --git a/conf/gnss-sdr_Galileo_E1_nsr.conf b/conf/gnss-sdr_Galileo_E1_nsr.conf index 7350f5314..b95b2a972 100644 --- a/conf/gnss-sdr_Galileo_E1_nsr.conf +++ b/conf/gnss-sdr_Galileo_E1_nsr.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_Galileo_E5a.conf b/conf/gnss-sdr_Galileo_E5a.conf index 5ab3096c3..c4df4139f 100644 --- a/conf/gnss-sdr_Galileo_E5a.conf +++ b/conf/gnss-sdr_Galileo_E5a.conf @@ -1,3 +1,6 @@ +; This is a GNSS-SDR configuration file +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ + ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf ; diff --git a/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf b/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf index e884778d2..f66079cb4 100644 --- a/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf +++ b/conf/gnss-sdr_Galileo_E5a_IFEN_CTTC.conf @@ -1,3 +1,6 @@ +; This is a GNSS-SDR configuration file +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ + ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf ; diff --git a/conf/gnss-sdr_Hybrid_byte.conf b/conf/gnss-sdr_Hybrid_byte.conf index bf50bcb30..a70b62820 100644 --- a/conf/gnss-sdr_Hybrid_byte.conf +++ b/conf/gnss-sdr_Hybrid_byte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_Hybrid_byte_sim.conf b/conf/gnss-sdr_Hybrid_byte_sim.conf index 60cca8e00..cd5ce2f3c 100644 --- a/conf/gnss-sdr_Hybrid_byte_sim.conf +++ b/conf/gnss-sdr_Hybrid_byte_sim.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_Hybrid_gr_complex.conf b/conf/gnss-sdr_Hybrid_gr_complex.conf index dbd9d8286..14fee756d 100644 --- a/conf/gnss-sdr_Hybrid_gr_complex.conf +++ b/conf/gnss-sdr_Hybrid_gr_complex.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_Hybrid_ishort.conf b/conf/gnss-sdr_Hybrid_ishort.conf index 6fc17c35c..55a70b7a2 100644 --- a/conf/gnss-sdr_Hybrid_ishort.conf +++ b/conf/gnss-sdr_Hybrid_ishort.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_Hybrid_nsr.conf b/conf/gnss-sdr_Hybrid_nsr.conf index 682482991..934ca2ffd 100644 --- a/conf/gnss-sdr_Hybrid_nsr.conf +++ b/conf/gnss-sdr_Hybrid_nsr.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf b/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf index 18d9f5307..aea77c99c 100644 --- a/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf +++ b/conf/gnss-sdr_galileo_E1_extended_correlator_byte.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf b/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf index cfbd1f73c..2a63b36b6 100644 --- a/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf +++ b/conf/gnss-sdr_galileo_E1_extended_correlator_labsat.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf index 2180d8ccb..7b978be5b 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_bin_file_III_1a.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf index e53db62e7..bb5d4327e 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1a.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -185,4 +185,4 @@ PVT.flag_rtcm_server=true PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false -PVT.dump_filename=./PVT \ No newline at end of file +PVT.dump_filename=./PVT diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf index aa0e26be4..2ef22b956 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_III_1b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -184,4 +184,4 @@ PVT.flag_rtcm_server=true PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false -PVT.dump_filename=./PVT \ No newline at end of file +PVT.dump_filename=./PVT diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf index 7a7627cef..1d7fa6097 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_II_3b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -191,4 +191,4 @@ PVT.flag_rtcm_server=true PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false -PVT.dump_filename=./PVT \ No newline at end of file +PVT.dump_filename=./PVT diff --git a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf index 3dd9d76cd..2072f8c7d 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_Flexiband_realtime_I_1b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf b/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf index 1513e6c8b..3094d8c97 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_L2_Flexiband_realtime_III_1b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_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 349b2f2b3..720c68fa9 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_L2_Galileo_E1B_Flexiband_bin_file_III_1b.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_L2_Galileo_E1B_Flexiband_bin_file_III_1b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -278,4 +278,3 @@ PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false 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 c2216e648..411a712ab 100644 --- a/conf/gnss-sdr_multichannel_GPS_L1_USRP_X300_realtime.conf +++ b/conf/gnss-sdr_multichannel_GPS_L1_USRP_X300_realtime.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_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 9c899e6ca..fb6fae1c2 100644 --- a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf +++ b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_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 ab8bbaed6..6d62e65b3 100644 --- a/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b_real.conf +++ b/conf/gnss-sdr_multichannel_GPS_L2_M_Flexiband_bin_file_III_1b_real.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf @@ -253,4 +253,4 @@ PVT.flag_rtcm_server=false PVT.flag_rtcm_tty_port=false PVT.rtcm_dump_devname=/dev/pts/1 PVT.dump=false -PVT.dump_filename=./PVT \ No newline at end of file +PVT.dump_filename=./PVT diff --git a/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf b/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf index 26fa98a81..50e49f2e9 100644 --- a/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf +++ b/conf/gnss-sdr_multichannel_all_in_one_Flexiband_bin_file_III_1b.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_multisource_Hybrid_ishort.conf b/conf/gnss-sdr_multisource_Hybrid_ishort.conf index 60f03431b..3394aff23 100644 --- a/conf/gnss-sdr_multisource_Hybrid_ishort.conf +++ b/conf/gnss-sdr_multisource_Hybrid_ishort.conf @@ -1,5 +1,5 @@ ; This is a GNSS-SDR configuration file -; The configuration API is described at http://gnss-sdr.org/docs/sp-blocks/ +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf diff --git a/conf/gnss-sdr_multisource_Hybrid_nsr.conf b/conf/gnss-sdr_multisource_Hybrid_nsr.conf index 8c035713e..aecb783a6 100644 --- a/conf/gnss-sdr_multisource_Hybrid_nsr.conf +++ b/conf/gnss-sdr_multisource_Hybrid_nsr.conf @@ -1,4 +1,6 @@ -; Default configuration file +; This is a GNSS-SDR configuration file +; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/ + ; You can define your own receiver and invoke it by doing ; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf ; diff --git a/docs/PULL_REQUEST_TEMPLATE.md b/docs/PULL_REQUEST_TEMPLATE.md index bb69db911..0ab14dff6 100644 --- a/docs/PULL_REQUEST_TEMPLATE.md +++ b/docs/PULL_REQUEST_TEMPLATE.md @@ -1,12 +1,12 @@ -:+1::tada: Hello, and thanks for contributing to [GNSS-SDR](http://gnss-sdr.org)! :tada::+1: +:+1::tada: Hello, and thanks for contributing to [GNSS-SDR](https://gnss-sdr.org)! :tada::+1: Before submitting your pull request, please make sure the following is done: 1. You undertake the [Contributor Covenant Code of Conduct](https://github.com/gnss-sdr/gnss-sdr/blob/master/CODE_OF_CONDUCT.md). 2. If you are a first-time contributor, after your pull request you will be asked to sign an Individual Contributor License Agreement ([CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement)) before your code gets accepted into `master`. This license is for your protection as a Contributor as well as for the protection of [CTTC](http://www.cttc.es/); it does not change your rights to use your own contributions for any other purpose. Except for the license granted therein to CTTC and recipients of software distributed by CTTC, you reserve all right, title, and interest in and to your contributions. The information you provide in that CLA will be maintained in accordance with [CTTC's privacy policy](http://www.cttc.es/privacy/). 3. You have read the [Contributing Guidelines](https://github.com/gnss-sdr/gnss-sdr/blob/master/CONTRIBUTING.md). - 4. You have read the [coding style guide](http://gnss-sdr.org/coding-style/). - 5. Specifically, you have read [about clang-format](http://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting) and you have applied it. + 4. You have read the [coding style guide](https://gnss-sdr.org/coding-style/). + 5. Specifically, you have read [about clang-format](https://gnss-sdr.org/coding-style/#use-tools-for-automated-code-formatting) and you have applied it. 6. You have forked the [gnss-sdr upstream repository](https://github.com/gnss-sdr/gnss-sdr) and have created your branch from `next` (or any other currently living branch in the upstream repository). 7. Please include a description of your changes here. -**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request.** \ No newline at end of file +**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request.** diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox index edb07f998..10d95dbcc 100644 --- a/docs/doxygen/other/main_page.dox +++ b/docs/doxygen/other/main_page.dox @@ -26,7 +26,7 @@ Welcome to GNSS-SDR! GNSS-SDR is an open-source GNSS software receiver freely available to the research community. This project provides a common framework for GNSS signal processing which can operate in a variety of computer platforms. This tool is intended to foster collaboration, increase awareness, and reduce development costs in the field of GNSS receiver design and customized use of GNSS signals. For details about GNSS-SDR and using it, please see the main project page or browse the code at the main project page or browse the code at the Sourceforge project page. You could be also interested in subscribing to the mailing list. @@ -56,15 +56,15 @@ More details on GNSS-SDR signal processing blocks: \section overview Overview -GNSS-SDR provides an interface to different suitable RF front-ends and implements all the receiver chain up to the navigation solution. -Its design allows any kind of customization, including interchangeability of signal sources, signal processing algorithms, -interoperability with other systems, output formats, and offers interfaces to all the intermediate signals, parameters and variables. -The goal is to write efficient and truly reusable code, easy to read and maintain, with fewer bugs, and producing highly optimized executables -in a variety of hardware platforms and operating systems. In that sense, the challenge consists of defining a gentle balance within level -of abstraction and performance. GNSS-SDR runs in a personal computer and provides interfaces through USB and Ethernet +GNSS-SDR provides an interface to different suitable RF front-ends and implements all the receiver chain up to the navigation solution. +Its design allows any kind of customization, including interchangeability of signal sources, signal processing algorithms, +interoperability with other systems, output formats, and offers interfaces to all the intermediate signals, parameters and variables. +The goal is to write efficient and truly reusable code, easy to read and maintain, with fewer bugs, and producing highly optimized executables +in a variety of hardware platforms and operating systems. In that sense, the challenge consists of defining a gentle balance within level +of abstraction and performance. GNSS-SDR runs in a personal computer and provides interfaces through USB and Ethernet buses to a variety of either commercially available or custom-made RF front-ends, adapting the processing algorithms to different sampling frequencies, intermediate - frequencies and sample resolutions. This makes possible rapid prototyping of specific receivers intended, for instance, to geodetic applications, - observation of the ionospheric impact on navigation signals, GNSS reflectometry, signal quality monitoring, or carrier-phase based navigation techniques. + frequencies and sample resolutions. This makes possible rapid prototyping of specific receivers intended, for instance, to geodetic applications, + observation of the ionospheric impact on navigation signals, GNSS reflectometry, signal quality monitoring, or carrier-phase based navigation techniques. \image html overview.png \image latex overview.png "Overview" width=12cm @@ -73,8 +73,8 @@ As signal inputs, it accepts: \li Raw data file captured with a data grabber (digitized at some intermediate frequency or directly at baseband). \li Any suitable RF configuration that can be driven by the Universal Software Radio Peripheral Hardware Driver (UHD). This includes all current and future Ettus Research products. The USRP1 + DBSRX 2.2 daughterboard is an example of working configuration for GPS L1 C/A and Galileo E1B and E1C signals. -\li The GN3S v2 USB dongle (GN3S v3 might work with small modifications). -\li Experimentally, with some USB DVB-T dongles based on the Realtek RTL2832U chipset. +\li The GN3S v2 USB dongle (GN3S v3 might work with small modifications). +\li Experimentally, with some USB DVB-T dongles based on the Realtek RTL2832U chipset. \li For mathematical representations of the targeted signals, check out the \ref the_signal_model page. As outputs, it provides: @@ -85,13 +85,13 @@ As outputs, it provides: \li Position, Velocity and Time solution in KML format and NMEA -\section build Building GNSS-SDR +\section build Building GNSS-SDR -In principle, GNSS-SDR can be built in any Unix-like system. In practice, it depends on being able to install all the required dependencies. See the building guide page for details about the project's +In principle, GNSS-SDR can be built in any Unix-like system. In practice, it depends on being able to install all the required dependencies. See the building guide page for details about the project's dependencies and build process. Mainly, it consists on installing GNU Radio plus some few more libraries: \li Gflags, a library that implements commandline flags processing, -\li Glog, a library that implements application-level logging, +\li Glog, a library that implements application-level logging, \li Armadillo, a C++ linear algebra library, \li Googletest, Google's framework for writing C++ tests (requires definition of the GTEST_DIR variable), @@ -100,7 +100,7 @@ and, optionally, After all dependencies are installed, clone the GNSS-SDR repository: \verbatim -$ git clone git://git.code.sf.net/p/gnss-sdr/cttc gnss-sdr +$ git clone git://git.code.sf.net/p/gnss-sdr/cttc gnss-sdr \endverbatim This will create a folder named gnss-sdr with the following structure: @@ -111,7 +111,7 @@ This will create a folder named gnss-sdr with the following structure: |---conf <- Configuration files. Each file represents one receiver. |---data <- Populate this folder with your captured data. |---docs <- Contains documentation-related files - |---install <- Executables + |---install <- Executables |---src <- Source code folder |-----algorithms |-------PVT @@ -149,8 +149,8 @@ You can run them from that folder, but if you prefer to install gnss-sdr on your $ sudo make install \endverbatim -This will make a copy of the conf/ folder into /usr/local/share/gnss-sdr/conf for your reference. -We suggest to create a working directory at your preferred location and store your own configuration and data files there. +This will make a copy of the conf/ folder into /usr/local/share/gnss-sdr/conf for your reference. +We suggest to create a working directory at your preferred location and store your own configuration and data files there. You can create the documentation by doing: @@ -158,7 +158,7 @@ You can create the documentation by doing: $ make doc \endverbatim -from the gnss-sdr/build folder. In both cases, Doxygen will generate HTML documentation that can be +from the gnss-sdr/build folder. In both cases, Doxygen will generate HTML documentation that can be retrieved pointing your browser of preference to gnss-sdr/docs/html/index.html. There are two more extra targets available. From the gnss-sdr/build folder: @@ -207,7 +207,7 @@ You can also check The Git Boo With GNSS-SDR, you can define you own receiver, work with captured raw data or from a RF front-end, dump into files intermediate signals, or tune every single algorithm used in the \ref signal_processing. All the configuration is done in a single file. Those configuration files reside at the gnss-sdr/conf folder. By default, the executable gnss-sdr will read the configuration -available at gnss-sdr/conf/gnss-sdr.conf. You can edit that file to fit your needs, or even better, define a new my_receiver.conf file with your own configuration. +available at gnss-sdr/conf/gnss-sdr.conf. You can edit that file to fit your needs, or even better, define a new my_receiver.conf file with your own configuration. This new receiver can be done by invoking gnss-sdr with the --config_file flag pointing to your configuration file: \verbatim $ gnss-sdr --config_file=../conf/my_receiver.conf @@ -224,41 +224,41 @@ $ gnss-sdr --config_file=../conf/my_receiver.conf --signal_source=../data/my_cap \endverbatim This will override the SignalSource.filename specified in the configuration file. -You can get a complete list of available commandline flags by doing: +You can get a complete list of available commandline flags by doing: \verbatim $ gnss-sdr --help \endverbatim For general usage of commandline flags, see how to use Google Commandline Flags. \section control_plane Control plane -GNSS-SDR's main method initializes the logging library, processes the command line flags, if any, provided by the user and instantiates a ControlThread object. -Its constructor reads the configuration file, creates a control queue and creates a flowgraph according to the configuration. Then, the program's main method -calls the run() method of the instantiated object, an action that connects the flowgraph and starts running it. After that, and until a stop message is received, -it reads control messages sent by the receiver's modules through a safe-thread queue and processes them. Finally, when a stop message is received, the main +GNSS-SDR's main method initializes the logging library, processes the command line flags, if any, provided by the user and instantiates a ControlThread object. +Its constructor reads the configuration file, creates a control queue and creates a flowgraph according to the configuration. Then, the program's main method +calls the run() method of the instantiated object, an action that connects the flowgraph and starts running it. After that, and until a stop message is received, +it reads control messages sent by the receiver's modules through a safe-thread queue and processes them. Finally, when a stop message is received, the main method executes the destructor of the ControlThread object, which deallocates memory, does other cleanup and exits the program. -The GNSSFlowgraph class is responsible for preparing the graph of blocks according to the configuration, running it, modifying it during run-time and stopping it. -Blocks are identified by its role. This class knows which roles it has to instantiate and how to connect them. -It relies on the configuration to get the correct instances of the roles it needs and then it applies the connections between GNU Radio blocks to make the -graph ready to be started. The complexity related to managing the blocks and the data stream is handled by GNU Radio's gr::top_block class. GNSSFlowgraph wraps -the gr::top_block instance so we can take advantage of the \ref gnss_block_factory, the configuration system and the processing blocks. This class is also responsible -for applying changes to the configuration of the flowgraph during run-time, dynamically reconfiguring channels: it selects the strategy for selecting satellites. -This can range from a sequential search over all the satellites' ID to smarter approaches that determine what are the satellites most likely in-view based on rough +The GNSSFlowgraph class is responsible for preparing the graph of blocks according to the configuration, running it, modifying it during run-time and stopping it. +Blocks are identified by its role. This class knows which roles it has to instantiate and how to connect them. +It relies on the configuration to get the correct instances of the roles it needs and then it applies the connections between GNU Radio blocks to make the +graph ready to be started. The complexity related to managing the blocks and the data stream is handled by GNU Radio's gr::top_block class. GNSSFlowgraph wraps +the gr::top_block instance so we can take advantage of the \ref gnss_block_factory, the configuration system and the processing blocks. This class is also responsible +for applying changes to the configuration of the flowgraph during run-time, dynamically reconfiguring channels: it selects the strategy for selecting satellites. +This can range from a sequential search over all the satellites' ID to smarter approaches that determine what are the satellites most likely in-view based on rough estimations of the receiver position in order to avoid searching satellites in the other side of the Earth. The Control Plane is in charge of creating a flowgraph according to the configuration and then managing the modules. Configuration allows users to define in an easy way their own -custom receiver by specifying the flowgraph (type of signal source, number of channels, algorithms to be used for each channel and each module, strategies for -satellite selection, type of output format, etc.). Since it is difficult to foresee what future module implementations will be needed in terms of configuration, -we used a very simple approach that can be extended without a major impact in the code. This can be achieved by simply mapping the names of the variables in the +custom receiver by specifying the flowgraph (type of signal source, number of channels, algorithms to be used for each channel and each module, strategies for +satellite selection, type of output format, etc.). Since it is difficult to foresee what future module implementations will be needed in terms of configuration, +we used a very simple approach that can be extended without a major impact in the code. This can be achieved by simply mapping the names of the variables in the modules with the names of the parameters in the configuration. \subsection configuration Configuration -Properties are passed around within the program using the ConfigurationInterface class. There are two implementations of this interface: FileConfiguration and -InMemoryConfiguration. FileConfiguration reads the properties (pairs of property name and value) from a file and stores them internally. InMemoryConfiguration does -not read from a file; it remains empty after instantiation and property values and names are set using the set property method. FileConfiguration is intended to be -used in the actual GNSS-SDR application whereas InMemoryConfiguration is intended to be used in tests to avoid file-dependency in the file system. Classes that -need to read configuration parameters will receive instances of ConfigurationInterface from where they will fetch the values. For instance, parameters related +Properties are passed around within the program using the ConfigurationInterface class. There are two implementations of this interface: FileConfiguration and +InMemoryConfiguration. FileConfiguration reads the properties (pairs of property name and value) from a file and stores them internally. InMemoryConfiguration does +not read from a file; it remains empty after instantiation and property values and names are set using the set property method. FileConfiguration is intended to be +used in the actual GNSS-SDR application whereas InMemoryConfiguration is intended to be used in tests to avoid file-dependency in the file system. Classes that +need to read configuration parameters will receive instances of ConfigurationInterface from where they will fetch the values. For instance, parameters related to SignalSource should look like this: \verbatim @@ -266,80 +266,80 @@ SignalSource.parameter1=value1 SignalSource.parameter2=value2 \endverbatim -The name of these parameters can be anything but one reserved word: implementation. This parameter indicates in its value the name of the class that has to be instantiated -by the factory for that role. For instance, if our signal source is providing data already at baseband and thus we want to use the implementation Pass_Through for module SignalConditioner, the corresponding line in the +The name of these parameters can be anything but one reserved word: implementation. This parameter indicates in its value the name of the class that has to be instantiated +by the factory for that role. For instance, if our signal source is providing data already at baseband and thus we want to use the implementation Pass_Through for module SignalConditioner, the corresponding line in the configuration file would be \verbatim SignalConditioner.implementation=Pass_Through \endverbatim -Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new -properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked +Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new +properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in INI format). \subsection gnss_block_factory GNSS block factory -Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called GNSSBlockFactory. -This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory -encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block -class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration -enables extending the application capacities in a high degree. It also allows to produce fully customized receivers, for instance a testbed for acquisition +Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called GNSSBlockFactory. +This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory +encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block +class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration +enables extending the application capacities in a high degree. It also allows to produce fully customized receivers, for instance a testbed for acquisition algorithms, and to place observers at any point of the receiver chain. \section signal_processing Signal Processing plane -GNU Radio's class gr::basic_block is the abstract base class for all signal processing blocks, a bare abstraction of an entity that has a name and a set of -inputs and outputs. It is never instantiated directly; rather, this is the abstract parent class of both gr::hier_block2, which is a recursive container that -adds or removes processing or hierarchical blocks to the internal graph, and gr::block, which is the abstract base class for all the processing blocks. +GNU Radio's class gr::basic_block is the abstract base class for all signal processing blocks, a bare abstraction of an entity that has a name and a set of +inputs and outputs. It is never instantiated directly; rather, this is the abstract parent class of both gr::hier_block2, which is a recursive container that +adds or removes processing or hierarchical blocks to the internal graph, and gr::block, which is the abstract base class for all the processing blocks. \image html ClassHierarchy.png \image latex ClassHierarchy.png "Class hierarchy of signal processing blocks" width=12cm -A signal processing flow is constructed by creating a tree of hierarchical blocks, which at any level may also contain terminal nodes that actually implement signal +A signal processing flow is constructed by creating a tree of hierarchical blocks, which at any level may also contain terminal nodes that actually implement signal processing functions. -Class gr::top_block is the top-level hierarchical block representing a flowgraph. It defines GNU Radio runtime functions used during the execution of the -program: run(), start(), stop(), wait(), etc. A a subclass called GNSSBlockInterface is the common interface for all the GNSS-SDR modules. It defines pure virtual +Class gr::top_block is the top-level hierarchical block representing a flowgraph. It defines GNU Radio runtime functions used during the execution of the +program: run(), start(), stop(), wait(), etc. A a subclass called GNSSBlockInterface is the common interface for all the GNSS-SDR modules. It defines pure virtual methods, that are required to be implemented by a derived class. -Subclassing GNSSBlockInterface, we defined interfaces for the GNSS receiver blocks depicted in the figure above. This hierarchy provides the definition of different -algorithms and different implementations, which will be instantiated according to the configuration. This strategy allows -multiple implementations sharing a common interface, achieving the objective of decoupling interfaces from implementations: it defines a family of algorithms, encapsulates each one, +Subclassing GNSSBlockInterface, we defined interfaces for the GNSS receiver blocks depicted in the figure above. This hierarchy provides the definition of different +algorithms and different implementations, which will be instantiated according to the configuration. This strategy allows +multiple implementations sharing a common interface, achieving the objective of decoupling interfaces from implementations: it defines a family of algorithms, encapsulates each one, and makes them interchangeable. Hence, we let the algorithm vary independently from the program that uses it. \subsection signal_source Signal Source -The input of a software receiver are the raw bits that come out from the front-end's analog-to-digital converter (ADC). -Those bits can be read from a file stored in the hard disk or directly in real-time from a hardware device through USB or Ethernet buses. +The input of a software receiver are the raw bits that come out from the front-end's analog-to-digital converter (ADC). +Those bits can be read from a file stored in the hard disk or directly in real-time from a hardware device through USB or Ethernet buses. -The Signal Source module is in charge of implementing the hardware driver, that is, the portion of the code that communicates with the RF front-end and receives -the samples coming from the ADC. This communication is usually performed through USB or Ethernet buses. Since real-time processing requires a highly optimized -implementation of the whole receiver, this module also allows to read samples from a file stored in a hard disk, and thus processing without time constraints. -Relevant parameters of those samples are the intermediate frequency (or baseband I&Q components), the sampling rate and number of bits per sample, that must be +The Signal Source module is in charge of implementing the hardware driver, that is, the portion of the code that communicates with the RF front-end and receives +the samples coming from the ADC. This communication is usually performed through USB or Ethernet buses. Since real-time processing requires a highly optimized +implementation of the whole receiver, this module also allows to read samples from a file stored in a hard disk, and thus processing without time constraints. +Relevant parameters of those samples are the intermediate frequency (or baseband I&Q components), the sampling rate and number of bits per sample, that must be specified by the user in the configuration file. This module also performs bit-depth adaptation, since most of the existing RF front-ends provide samples quantized with 2 or 3 bits, while operations inside - the processor are performed on 32- or 64-bit words, depending on its architecture. Although there are implementations of the most intensive computational - processes (mainly correlation) that take advantage of specific data types and architectures for the sake of - efficiency, the approach is processor-specific and hardly portable. We suggest to keep signal samples in standard data types and letting the compiler + the processor are performed on 32- or 64-bit words, depending on its architecture. Although there are implementations of the most intensive computational + processes (mainly correlation) that take advantage of specific data types and architectures for the sake of + efficiency, the approach is processor-specific and hardly portable. We suggest to keep signal samples in standard data types and letting the compiler select the best library version (implemented using SIMD or any other processor-specific technology) of the required routines for a given processor. - + Example: FileSignalSource -The user can configure the receiver for reading from a file, setting in the configuration file the data file location, sample format, +The user can configure the receiver for reading from a file, setting in the configuration file the data file location, sample format, and the sampling frequency and intermediate frequency at what the signal was originally captured. - + \verbatim ;######### SIGNAL_SOURCE CONFIG ############ SignalSource.implementation=File_Signal_Source SignalSource.filename=/home/user/gnss-sdr/data/my_capture.dat SignalSource.item_type=gr_complex SignalSource.sampling_frequency=4000000 ; Sampling frequency in [Hz] -SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz] -\endverbatim +SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz] +\endverbatim Example: UhdSignalSource @@ -349,7 +349,7 @@ The user may prefer to use a UHD-compatible RF front-end and try real-time proce SignalSource.implementation=UHD_Signal_Source SignalSource.item_type=gr_complex SignalSource.sampling_frequency=4000000 ; Sampling frequency in [Hz] -SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz] +SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz] SignalSource.gain=60 ; Front-end gain in dB SignalSource.subdevice=B:0 ; UHD subdevice specification (for USRP1 use A:0 or B:0) \endverbatim @@ -358,8 +358,8 @@ Other examples are available at gnss-sdr/conf. \subsection signal_conditioner Signal Conditioner The signal conditioner is in charge of resampling the signal and delivering a reference sample rate to the downstream processing blocks, acting as - a facade between the signal source and the synchronization channels, providing a simplified interface to the input signal. - In case of multiband front-ends, this module would be in charge of providing a separated data stream for each band. + a facade between the signal source and the synchronization channels, providing a simplified interface to the input signal. + In case of multiband front-ends, this module would be in charge of providing a separated data stream for each band. \subsection channel Channel @@ -368,31 +368,31 @@ A channel encapsulates all signal processing devoted to a single satellite. Thus channels is selectable by the user in the configuration file, this approach helps improving the scalability and maintainability of the receiver. This module is also in charge of managing the interplay between acquisition and tracking. Acquisition can be initialized in several ways, depending on -the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when -a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver +the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when +a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver was tracking a satellite and the signal line of sight broke for a short period of time, but the ephemeris and almanac data is still valid, or this information -is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to +is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to confirm the presence of the satellite, or declaring the satellite present. In the latter case, acquisition process should stop and trigger the tracking module with coarse estimations of the synchronization parameters. The mathematical abstraction used to design this logic is known as finite state machine (FSM), that is -a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we used the -Boost.Statechart library, +a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we used the +Boost.Statechart library, which provides desirable features such as support for asynchronous state machines, multi-threading, type-safety, error handling and compile-time validation. - + The abstract class ChannelInterface represents an interface to a channel GNSS block. Check Channel for an actual implementation. - + \subsubsection acquisition Acquisition -The first task of a GNSS receiver is to detect the presence or absence of in-view satellites. This is done by the acquisition system process, which also provides a coarse estimation of two signal parameters: the frequency shift +The first task of a GNSS receiver is to detect the presence or absence of in-view satellites. This is done by the acquisition system process, which also provides a coarse estimation of two signal parameters: the frequency shift with respect to the nominal IF frequency, and a delay term which allows the receiver to create a local code aligned with the incoming code. -AcquisitionInterface is the common interface for all the acquisition algorithms and their corresponding implementations. Algorithms' interface, that may vary -depending on the use of information external to the receiver, such as in Assisted GNSS, is defined in classes referred to as adapters. -These adapters wrap the GNU Radio blocks interface into a compatible interface expected by AcquisitionInterface. This allows the use of existing GNU Radio blocks -derived from gr::block, and ensures that newly developed implementations will also be reusable in other GNU Radio-based applications. +AcquisitionInterface is the common interface for all the acquisition algorithms and their corresponding implementations. Algorithms' interface, that may vary +depending on the use of information external to the receiver, such as in Assisted GNSS, is defined in classes referred to as adapters. +These adapters wrap the GNU Radio blocks interface into a compatible interface expected by AcquisitionInterface. This allows the use of existing GNU Radio blocks +derived from gr::block, and ensures that newly developed implementations will also be reusable in other GNU Radio-based applications. Moreover, it adds still another layer of abstraction, since each given acquisition algorithm can have different implementations (for instance using different numerical libraries). In such a way, implementations can be continuously improved without having any impact neither on the algorithm interface nor the general acquisition interface. Check GpsL1CaPcpsAcquisition and GalileoE1PcpsAmbiguousAcquisition for examples of adapters from a Parallel Code Phase Search (PCPS) acquisition block, and pcps_acquisition_cc for an example of a block implementation. The source code of all the available acquisition algorithms is located at: - + \verbatim |-gnss-sdr |---src @@ -406,13 +406,13 @@ The user can select a given implementation for the algorithm to be used in each \verbatim ;######### ACQUISITION GLOBAL CONFIG ############ -;#dump: Enable or disable the acquisition internal data file logging [true] or [false] +;#dump: Enable or disable the acquisition internal data file logging [true] or [false] Acquisition.dump=false ;#filename: Log path and filename Acquisition.dump_filename=./acq_dump.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. Acquisition.item_type=gr_complex -;#if: Signal intermediate frequency in [Hz] +;#if: Signal intermediate frequency in [Hz] Acquisition.if=0 ;#sampled_ms: Signal block duration for the acquisition signal detection [ms] Acquisition.sampled_ms=1 @@ -420,8 +420,8 @@ Acquisition.sampled_ms=1 Acquisition.implementation=GPS_L1_CA_PCPS_Acquisition ;#threshold: Acquisition threshold Acquisition.threshold=0.005 -;#pfa: Acquisition false alarm probability. This option overrides the threshold option. -;Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition] +;#pfa: Acquisition false alarm probability. This option overrides the threshold option. +;Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition] Acquisition.pfa=0.0001 ;#doppler_max: Maximum expected Doppler shift [Hz] Acquisition.doppler_max=10000 @@ -429,7 +429,7 @@ Acquisition.doppler_max=10000 Acquisition.doppler_step=500 ;######### ACQUISITION CHANNELS CONFIG ###### -;#The following options are specific to each channel and overwrite the generic options +;#The following options are specific to each channel and overwrite the generic options ;######### ACQUISITION CH 0 CONFIG ############ @@ -455,12 +455,12 @@ Acquisition.doppler_step=500 \subsubsection tracking Tracking When a satellite is declared present, the parameters estimated by the acquisition module are then fed to the receiver tracking module, which represents the second stage of the signal processing unit, aiming to perform a local search for accurate estimates of code delay and carrier phase, and following their eventual - variations. + variations. -Again, a class hierarchy consisting of a TrackingInterface class and subclasses implementing algorithms provides a way of testing different approaches, -with full access to their parameters. Check GpsL1CaDllPllTracking or GalileoE1DllPllVemlTracking for examples of adapters, and Gps_L1_Ca_Dll_Pll_Tracking_cc for an example +Again, a class hierarchy consisting of a TrackingInterface class and subclasses implementing algorithms provides a way of testing different approaches, +with full access to their parameters. Check GpsL1CaDllPllTracking or GalileoE1DllPllVemlTracking for examples of adapters, and Gps_L1_Ca_Dll_Pll_Tracking_cc for an example of a signal processing block implementation. There are also available some useful classes and functions for signal tracking; take a look at Correlator, lock_detectors.h, tracking_discriminators.h or -tracking_2nd_DLL_filter.h. +tracking_2nd_DLL_filter.h. The source code of all the available tracking algorithms is located at: \verbatim @@ -482,10 +482,10 @@ Tracking.implementation=GPS_L1_CA_DLL_PLL_Tracking ;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version. Tracking.item_type=gr_complex -;#sampling_frequency: Signal Intermediate Frequency in [Hz] +;#sampling_frequency: Signal Intermediate Frequency in [Hz] Tracking.if=0 -;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false] +;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false] Tracking.dump=false ;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number. @@ -508,11 +508,11 @@ Tracking.early_late_space_chips=0.5; \endverbatim \subsubsection decoding Decoding of the navigation message -Most of GNSS signal links are modulated by a navigation message containing the time the message was transmitted, orbital parameters of satellites -(also known as ephemeris) and an almanac (information about the general system health, rough orbits of all satellites in the network as well as data related to -error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are -spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for -error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and +Most of GNSS signal links are modulated by a navigation message containing the time the message was transmitted, orbital parameters of satellites +(also known as ephemeris) and an almanac (information about the general system health, rough orbits of all satellites in the network as well as data related to +error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are +spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for +error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and interleaving, depending on the system. All this decoding complexity is managed by a finite state machine implemented with the Boost.Statechart library. The common interface is TelemetryDecoderInterface. Check GpsL1CaTelemetryDecoder for an example of the GPS L1 NAV message decoding adapter, and gps_l1_ca_telemetry_decoder_cc @@ -527,13 +527,13 @@ TelemetryDecoder.dump=false See the \ref reference_docs for more information about the signal format. \subsection observables Observables -GNSS systems provide different kinds of observations. The most commonly used are the code observations, also called pseudoranges. The pseudo comes from +GNSS systems provide different kinds of observations. The most commonly used are the code observations, also called pseudoranges. The pseudo comes from the fact that on the receiver side the clock error is unknown and thus the measurement is not a pure range observation. High accuracy applications also use the carrier phase observations, which are based on measuring the difference between the carrier phase transmitted by the GNSS satellites and the phase of the carrier generated in the receiver. Both observables are computed from the outputs of the tracking module and the decoding of the navigation message. This module collects all the data provided by every tracked channel, aligns all received data into a coherent set, and computes the observables. -The common interface is ObservablesInterface. +The common interface is ObservablesInterface. Configuration example: \verbatim @@ -541,7 +541,7 @@ Configuration example: ;#implementation: Use [GPS_L1_CA_Observables] for GPS L1 C/A. Observables.implementation=GPS_L1_CA_Observables -;#dump: Enable or disable the Observables internal binary data file logging [true] or [false] +;#dump: Enable or disable the Observables internal binary data file logging [true] or [false] Observables.dump=false ;#dump_filename: Log path and filename. @@ -567,24 +567,24 @@ PVT.flag_nmea_tty_port=true; ;#nmea_dump_devname: serial device descriptor for NMEA logging PVT.nmea_dump_devname=/dev/pts/4 -;#dump: Enable or disable the PVT internal binary data file logging [true] or [false] +;#dump: Enable or disable the PVT internal binary data file logging [true] or [false] PVT.dump=false \endverbatim This implementation allows tuning of the following parameters: \verbatim PVT.averaging_depth=10 ; Number of PVT observations in the moving average algorithm -PVT.flag_averaging=true ; Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false] +PVT.flag_averaging=true ; Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false] PVT.output_rate_ms=100 ; Period in [ms] between two PVT outputs PVT.display_rate_ms=500 ; Position console print (std::out) interval [ms]. -PVT.dump=false ; Enable or disable the PVT internal binary data file logging [true] or [false] +PVT.dump=false ; Enable or disable the PVT internal binary data file logging [true] or [false] PVT.dump_filename=./PVT ; Log path and filename without extension. \endverbatim \section license About the software license -GNSS-SDR is released under the General Public License (GPL) v3, thus securing practical usability, inspection, -and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. +GNSS-SDR is released under the General Public License (GPL) v3, thus securing practical usability, inspection, +and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. The GPL implies that: \li Copies may be distributed free of charge or for money, but the source code has to be shipped or provided free of charge (or at cost price) on demand. The receiver of the source code has the same rights meaning he can share copies free of charge or resell. @@ -600,8 +600,8 @@ If you use GNSS-SDR to produce a research paper or Thesis, we would appreciate i \li \anchor Navitec2012 C. Fernández-Prades, J. Arribas, L. Esteve, D. Pubill, P. Closas, An Open Source Galileo E1 Software Receiver, in Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC 2012), ESTEC, Noordwijk, The Netherlands, Dec. 2012. \li J. Arribas, GNSS Array-based Acquisition: Theory and Implementation, PhD Thesis, Universitat Politècnica de Catalunya, Barcelona, Spain, June 2012. -\li C. Fernández-Prades, J. Arribas, P. Closas, C. Avilés, and L. Esteve, GNSS-SDR: an open source tool for researchers and developers, in Proc. of the ION GNSS 2011 Conference, Portland, Oregon, Sept. 19-23, 2011. -\li C. Fernández-Prades, C. Avilés, L. Esteve, J. Arribas, and P. Closas, Design patterns for GNSS software receivers, in Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010), ESTEC, Noordwijk, The Netherlands, Dec. 2010. DOI:10.1109/NAVITEC.2010.5707981 +\li C. Fernández-Prades, J. Arribas, P. Closas, C. Avilés, and L. Esteve, GNSS-SDR: an open source tool for researchers and developers, in Proc. of the ION GNSS 2011 Conference, Portland, Oregon, Sept. 19-23, 2011. +\li C. Fernández-Prades, C. Avilés, L. Esteve, J. Arribas, and P. Closas, Design patterns for GNSS software receivers, in Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010), ESTEC, Noordwijk, The Netherlands, Dec. 2010. DOI:10.1109/NAVITEC.2010.5707981 For LaTeX users, these are the BibTeX cites for your convenience: @@ -609,12 +609,12 @@ For LaTeX users, these are the BibTeX cites for your convenience: @INPROCEEDINGS{GNSS-SDR12 author = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and L.~Esteve and D.~Pubill and P.~Closas}, title = {An Open Source {G}alileo {E1} Software Receiver}, - booktitle = {Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2012)}, - year = {2012}, - address = {ESTEC, Noordwijk, The Netherlands}, + booktitle = {Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2012)}, + year = {2012}, + address = {ESTEC, Noordwijk, The Netherlands}, month = {Dec.} } \endverbatim - + \verbatim @PHDTHESIS{Arribas12, author = {J.~Arribas}, @@ -624,48 +624,45 @@ For LaTeX users, these are the BibTeX cites for your convenience: address = {Barcelona, Spain}, month = {June} } \endverbatim - + \verbatim -@INPROCEEDINGS{GNSS-SDR11, - AUTHOR = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and P.~Closas and C.~Avil\'{e}s and L.~Esteve}, - TITLE = {{GNSS-SDR}: An Open Source Tool For Researchers and Developers}, - BOOKTITLE = {Proc. of the ION GNSS 2011 Conference}, - YEAR = {2011}, - address = {Portland, Oregon}, - month = {Sept.} } +@INPROCEEDINGS{GNSS-SDR11, + AUTHOR = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and P.~Closas and C.~Avil\'{e}s and L.~Esteve}, + TITLE = {{GNSS-SDR}: An Open Source Tool For Researchers and Developers}, + BOOKTITLE = {Proc. of the ION GNSS 2011 Conference}, + YEAR = {2011}, + address = {Portland, Oregon}, + month = {Sept.} } \endverbatim - + \verbatim -@INPROCEEDINGS{GNSS-SDR10, - AUTHOR = {C.~{Fern\'{a}ndez--Prades} and C.~Avil\'{e}s and L.~Esteve and J.~Arribas and P.~Closas}, - TITLE = {Design patterns for {GNSS} software receivers}, - BOOKTITLE = {Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010)}, - YEAR = {2010}, - address = {ESTEC, Noordwijk, The Netherlands}, - month = {Dec.}, - note = {DOI:10.1109/NAVITEC.2010.5707981} } +@INPROCEEDINGS{GNSS-SDR10, + AUTHOR = {C.~{Fern\'{a}ndez--Prades} and C.~Avil\'{e}s and L.~Esteve and J.~Arribas and P.~Closas}, + TITLE = {Design patterns for {GNSS} software receivers}, + BOOKTITLE = {Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010)}, + YEAR = {2010}, + address = {ESTEC, Noordwijk, The Netherlands}, + month = {Dec.}, + note = {DOI:10.1109/NAVITEC.2010.5707981} } \endverbatim \section now_what Ok, now what? -In order to start using GNSS-SDR, you may want to populate gnss-sdr/data folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output -of a Radio Frequency front-end's Analog-to_Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intemediate frequency (on the order of MHz). +In order to start using GNSS-SDR, you may want to populate gnss-sdr/data folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output +of a Radio Frequency front-end's Analog-to_Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intemediate frequency (on the order of MHz). Prepare your configuration file, and then you are ready for going to the gnss-sdr/install folder, running ./gnss-sdr, and see how the file is processed. Please ask the Developer Team for a signal sample if you need one, and they will do their best ;-) Another interesting option is working in real-time with a RF front-end. We provide drivers for UHD-compatible hardware (see \ref signal_source), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time. -You can find more information at the GNSS-SDR Documentation page or directly asking to the -GNSS-SDR Developers mailing list. - -You are also very welcome to contribute to the project, there are many ways to participate in GNSS-SDR. -If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. -Please do not hesitate to contact them. +You can find more information at the GNSS-SDR Documentation page or directly asking to the +GNSS-SDR Developers mailing list. -Enjoy GNSS-SDR! +You are also very welcome to contribute to the project, there are many ways to participate in GNSS-SDR. +If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. +Please do not hesitate to contact them. + +Enjoy GNSS-SDR! The Developer Team. */ - - - diff --git a/docs/manpage/front-end-cal-manpage b/docs/manpage/front-end-cal-manpage index 13d639c57..a79ac3699 100644 --- a/docs/manpage/front-end-cal-manpage +++ b/docs/manpage/front-end-cal-manpage @@ -17,9 +17,9 @@ The crystal oscillator that ships with the RTL2832U family devices exhibits limi \fBfront\-end\-cal\fR takes the following options: .TP \fB\-config_file=\fR\fI\fR Set the configuration file. -.TP +.TP \fB\-signal_source=\fR\fI\fR If defined, path to the file containing the signal samples (overrides the data file specified in the configuration file). -.TP +.TP \fB\-log_dir=\fR\fI\fR If defined, overrides the default directory where logs are saved. .TP \fB\-version\fR Print program version and exit. @@ -32,10 +32,10 @@ Example of configuration file available at: ${prefix}/share/gnss\-sdr/conf/front \.TP [1] C. Fernandez\-Prades, J. Arribas, P. Closas, \fITurning a Television into a GNSS Receiver\fR, in Proceedings of ION GNSS+, 15\-16 September 2013, Nashville, Tennessee (USA). A draft copy is freely available at http://www.cttc.es/publication/turning\-a\-television\-into\-a\-gnss\-receiver/ \.TP -Check http://gnss\\-sdr.org for more information. +Check https://gnss\\-sdr.org for more information. .SH BUGS No known bugs. .SH AUTHOR Javier Arribas (javier.arribas@cttc.es) \.TP -This software has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world. \ No newline at end of file +This software has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world. diff --git a/docs/manpage/gnss-sdr-manpage b/docs/manpage/gnss-sdr-manpage index 997df725d..5ca98ccb7 100644 --- a/docs/manpage/gnss-sdr-manpage +++ b/docs/manpage/gnss-sdr-manpage @@ -6,7 +6,7 @@ .SH SYNOPSIS \fBgnss\-sdr \-c=\fR\fI\fR [OPTION]... .SH DESCRIPTION -\fBgnss\-sdr\fR is a Global Navigation Satellite Systems Software Defined Receiver written in C++. It implements all the signal processing chain, taking as input raw samples coming from the output of an Analog\-to\-Digital Converter, and processing them up to the computation of the Position\-Velocity\-Time solution, including the generation of code and phase measurements. +\fBgnss\-sdr\fR is a Global Navigation Satellite Systems Software Defined Receiver written in C++. It implements all the signal processing chain, taking as input raw samples coming from the output of an Analog\-to\-Digital Converter, and processing them up to the computation of the Position\-Velocity\-Time solution, including the generation of code and phase measurements. \.TP \fBgnss\-sdr\fR is able to work with raw data files or, if there is computational power enough, in real time with suitable radio frequency front\-ends. The whole receiver is defined in a single configuration file, and therefore users can define theirs. \.TP @@ -26,10 +26,10 @@ gnss\-sdr \-\-c /home/user/rx.conf .TP \fB\-c=\fR\fI\fR or \fB\-config_file=\fR\fI\fR Set the configuration file. This flag is mandatory. -.TP -\fB\-s=\fR\fI\fR or \fB\-signal_source=\fR\fI\fR +.TP +\fB\-s=\fR\fI\fR or \fB\-signal_source=\fR\fI\fR If defined, path to the file containing the signal samples (overrides the data file specified in the configuration file). -.TP +.TP \fB\-log_dir=\fR\fI\fR If defined, overrides the default directory where logs are saved. .TP @@ -43,13 +43,13 @@ If defined, sets the frequency step in the search grid, in Hz (overrides the con Number of correlators outputs (one per integration time) used for CN0 estimation. It defaults to 20 outputs. .TP \fB\-cn0_min=\fR\fI\fR -Minimum valid CN0 (in dB-Hz). It defaults to 25 dB-Hz. +Minimum valid CN0 (in dB-Hz). It defaults to 25 dB-Hz. If set, it overrides the configuration file. .TP \fB\-max_lock_fail=\fR\fI\fR -Number of lock failures before dropping satellite. It defaults to 50 failures. +Maximum number of lock failures before dropping a satellite. It defaults to 50 failures. If set, it overrides the configuration file. .TP \fB\-carrier_lock_th=\fR\fI\fR -Carrier lock error threshold (in rad). It defaults to 0.85 rad (48.7 degrees). +Carrier lock error threshold (in rad). It defaults to 0.85 rad (48.7 degrees). If set, it overrides the configuration file. .TP \fB\-dll_bw_hz=\fR\fI\fR If defined, bandwidth of the DLL low pass filter, in Hz (overrides the configuration file). @@ -70,10 +70,10 @@ Print all the available commandline flags and exit. \.TP Examples of configuration files available at: ${prefix}/share/gnss\-sdr/conf, where ${prefix} uses to be /usr or /usr/local. \.TP -Check http://gnss\-sdr.org for more information. +Check https://gnss\-sdr.org for more information. .SH BUGS Please report bugs at https://github.com/gnss-sdr/gnss-sdr/issues .SH AUTHOR Carles Fernandez\-Prades (carles.fernandez@cttc.es) \.TP -This software package has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world. \ No newline at end of file +This software package has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world. diff --git a/src/algorithms/PVT/libs/rinex_printer.cc b/src/algorithms/PVT/libs/rinex_printer.cc index fa6b1296c..e5dc5c65f 100644 --- a/src/algorithms/PVT/libs/rinex_printer.cc +++ b/src/algorithms/PVT/libs/rinex_printer.cc @@ -415,7 +415,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Glonass_Gnav_Utc_M // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -524,7 +524,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_Iono& gps_iono // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -648,7 +648,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_CNAV_Iono& gps // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -774,7 +774,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Galileo_Iono& gali // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -881,7 +881,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Galileo_Iono& iono // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -987,7 +987,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_CNAV_Iono& ion // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -1116,7 +1116,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_Iono& iono, co // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -1280,7 +1280,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_Iono& gps_iono // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -1463,7 +1463,7 @@ void Rinex_Printer::rinex_sbs_header(std::fstream& out) // -------- Line COMMENT 2 line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -3277,7 +3277,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Glonass_Gnav_Ephem // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -3599,7 +3599,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& gps // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -3952,7 +3952,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -4270,7 +4270,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris& // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -4590,7 +4590,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& eph // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -4844,7 +4844,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_CNAV_Ephemeris // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -5056,7 +5056,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& eph // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -5282,7 +5282,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris& // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; @@ -5546,7 +5546,7 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Gps_Ephemeris& gps // -------- Line COMMENT line.clear(); - line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60); + line += Rinex_Printer::leftJustify("See https://gnss-sdr.org", 60); line += Rinex_Printer::leftJustify("COMMENT", 20); Rinex_Printer::lengthCheck(line); out << line << std::endl; diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md index 3b5e14513..f37cc5b35 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/README.md @@ -20,10 +20,10 @@ sets. Then, the application ```volk_gnsssdr_profile``` runs some iterations of all versions that your machine can execute and annotates which is the fastest, which will then be selected at runtime when executing GNSS-SDR. In this way, we can address at the same time -[portability](http://gnss-sdr.org/design-forces/portability/) (by +[portability](https://gnss-sdr.org/design-forces/portability/) (by creating executables that will run in nearly all processor architectures) and -[efficiency](http://gnss-sdr.org/design-forces/efficiency/) (by +[efficiency](https://gnss-sdr.org/design-forces/efficiency/) (by providing custom implementations specially designed to take advantage of the specific processor that is running the code). @@ -44,21 +44,21 @@ independently of GNSS-SDR. First, make sure that the required dependencies are installed in your machine: -~~~~~~ +~~~~~~ $ sudo apt-get install cmake python-mako python-six libboost-dev \ libboost-filesystem-dev libboost-system-dev -~~~~~~ +~~~~~~ In order to build and install the library, go to the base folder of the source code and do: -~~~~~~ +~~~~~~ $ mkdir build $ cd build $ cmake .. $ make $ sudo make install -~~~~~~ +~~~~~~ That's it! @@ -66,7 +66,7 @@ Before its first use, please execute ```volk_gnsssdr_profile``` to let your system know which is the fastest available implementation. This only has to be done once: -~~~~~~ +~~~~~~ $ volk_gnsssdr_profile ~~~~~~ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr-config-info-manpage b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr-config-info-manpage index be69e4aba..48de3376a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr-config-info-manpage +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr-config-info-manpage @@ -33,8 +33,8 @@ This program prints configuration information for the Vector-Optimized Library o .BR volk_gnsssdr_profile (1) .BR gnss-sdr (1) \.TP -Check http://gnss-sdr.org for more information. +Check https://gnss\-sdr.org for more information. .SH BUGS No known bugs. .SH AUTHOR -Carles Fernandez-Prades (carles.fernandez@cttc.es) \ No newline at end of file +Carles Fernandez-Prades (carles.fernandez@cttc.es) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr_profile-manpage b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr_profile-manpage index 159bbfee1..186bcb9c9 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr_profile-manpage +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Packaging/volk_gnsssdr_profile-manpage @@ -10,7 +10,7 @@ The Vector-Optimized Library of Kernels of GNSS-SDR (VOLK_GNSSSDR) is a software .TP Processors providing SIMD instruction sets compute with multiple processing elements that perform the same operation on multiple data points simultaneously, thus exploiting data-level parallelism, an can be found in most modern desktop and laptop personal computers. In a nutshell, VOLK_GNSSSDR implements in assembly language optimized versions of computationally-intensive operations for different processor architectures that are commonly found in modern computers. In order to use the most optimized version for the specific processor(s) of the host machine running the software receiver (that is, the implementation than runs the fastest). .TP -\fBvolk_gnsssdr_profile\fR is a program that tests all known VOLK_GNSSSDR kernels (that is, basic processing components like adders, multipliers, correlators, and much more) for each architecture supported by the host machine, measuring their performance. When finished, the profiler writes to $HOME/.volk_gnsssdr/volk_gnsssdr_config the best architecture for each VOLK_GSSSDR function. This file is read when using a function to know the best version to execute. +\fBvolk_gnsssdr_profile\fR is a program that tests all known VOLK_GNSSSDR kernels (that is, basic processing components like adders, multipliers, correlators, and much more) for each architecture supported by the host machine, measuring their performance. When finished, the profiler writes to $HOME/.volk_gnsssdr/volk_gnsssdr_config the best architecture for each VOLK_GSSSDR function. This file is read when using a function to know the best version to execute. .SH OPTIONS \fBvolk_gnsssdr_profile\fR takes the following options: .TP @@ -34,7 +34,7 @@ Processors providing SIMD instruction sets compute with multiple processing elem .SH SEE ALSO .BR gnss-sdr (1) \.TP -Check http://gnss-sdr.org for more information. +Check https://gnss\-sdr.org for more information. .SH HISTORY This library was originally developed by Andres Cecilia Luque in the framework of the Summer of Code in Space program (SOCIS 2014) by the European Space Agency (ESA), and then integrated into \fBgnss-sdr\fR. This software is based on the VOLK library http://libvolk.org/ .SH BUGS @@ -42,4 +42,4 @@ No known bugs. .SH AUTHOR Andres Cecilia Luque (a.cecilia.luque@gmail.com) \.TP -Carles Fernandez-Prades (carles.fernandez@cttc.es) \ No newline at end of file +Carles Fernandez-Prades (carles.fernandez@cttc.es) From bde6bd6cee7ae3d97724247c74fdfb110f35f9f1 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Fri, 11 May 2018 13:21:53 +0200 Subject: [PATCH 057/108] Replacing GNURadio udp packet source with custom libpcap-based ethernet packet source --- CMakeLists.txt | 28 ++ cmake/Modules/FindPCAP.cmake | 122 ++++++++ conf/gnss-sdr_GPS_L1_2ch_udp.conf | 11 +- .../adapters/udp_signal_source.cc | 14 +- .../adapters/udp_signal_source.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 9 +- .../gnuradio_blocks/raw_ip_packet_source.cc | 289 ++++++++++++++++++ .../gnuradio_blocks/raw_ip_packet_source.h | 99 ++++++ .../gnuradio_blocks/udp_gnss_rx_source.cc | 215 ------------- .../gnuradio_blocks/udp_gnss_rx_source.h | 91 ------ 10 files changed, 561 insertions(+), 321 deletions(-) create mode 100644 cmake/Modules/FindPCAP.cmake create mode 100644 src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc create mode 100644 src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.h delete mode 100644 src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc delete mode 100644 src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 22ad70e01..5bd42db6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1455,6 +1455,34 @@ if(ENABLE_GPROF) endif(ENABLE_GPROF) +# - Try to find libpcap include dirs and libraries +# +# Usage of this module as follows: +# +# find_package(PCAP) +# +# Variables used by this module, they can change the default behaviour and need +# to be set before calling find_package: +# +# PCAP_ROOT_DIR Set this variable to the root installation of +# libpcap if the module has problems finding the +# proper installation path. +# +# Variables defined by this module: +# +# PCAP_FOUND System has libpcap, include and library dirs found +# PCAP_INCLUDE_DIR The libpcap include directories. +# PCAP_LIBRARY The libpcap library (possibly includes a thread +# library e.g. required by pf_ring's libpcap) +# HAVE_PF_RING If a found version of libpcap supports PF_RING +find_package(PCAP) +if(NOT PCAP_FOUND) + message(FATAL_ERROR "PCAP required to compile dbfcttc") +endif() +get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) + + + ######################################################################## # Set compiler flags diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake new file mode 100644 index 000000000..7e0ea6995 --- /dev/null +++ b/cmake/Modules/FindPCAP.cmake @@ -0,0 +1,122 @@ + +################################################################### +# +# Copyright (c) 2006 Frederic Heem, +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# * Neither the name of the Telsey nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +################################################################### +# - Find pcap +# Find the PCAP includes and library +# http://www.tcpdump.org/ +# +# The environment variable PCAPDIR allows to specficy where to find +# libpcap in non standard location. +# +# PCAP_INCLUDE_DIRS - where to find pcap.h, etc. +# PCAP_LIBRARIES - List of libraries when using pcap. +# PCAP_FOUND - True if pcap found. + + +IF(EXISTS $ENV{PCAPDIR}) + FIND_PATH(PCAP_INCLUDE_DIR + NAMES + pcap/pcap.h + pcap.h + PATHS + $ENV{PCAPDIR} + NO_DEFAULT_PATH + ) + + FIND_LIBRARY(PCAP_LIBRARY + NAMES + pcap + PATHS + $ENV{PCAPDIR} + NO_DEFAULT_PATH + ) + + +ELSE(EXISTS $ENV{PCAPDIR}) + FIND_PATH(PCAP_INCLUDE_DIR + NAMES + pcap/pcap.h + pcap.h + ) + + FIND_LIBRARY(PCAP_LIBRARY + NAMES + pcap + ) + +ENDIF(EXISTS $ENV{PCAPDIR}) + +SET(PCAP_INCLUDE_DIRS ${PCAP_INCLUDE_DIR}) +SET(PCAP_LIBRARIES ${PCAP_LIBRARY}) + +IF(PCAP_INCLUDE_DIRS) + MESSAGE(STATUS "Pcap include dirs set to ${PCAP_INCLUDE_DIRS}") +ELSE(PCAP_INCLUDE_DIRS) + MESSAGE(FATAL " Pcap include dirs cannot be found") +ENDIF(PCAP_INCLUDE_DIRS) + +IF(PCAP_LIBRARIES) + MESSAGE(STATUS "Pcap library set to ${PCAP_LIBRARIES}") +ELSE(PCAP_LIBRARIES) + MESSAGE(FATAL "Pcap library cannot be found") +ENDIF(PCAP_LIBRARIES) + +#Functions +INCLUDE(CheckFunctionExists) +SET(CMAKE_REQUIRED_INCLUDES ${PCAP_INCLUDE_DIRS}) +SET(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARIES}) +CHECK_FUNCTION_EXISTS("pcap_breakloop" HAVE_PCAP_BREAKLOOP) +CHECK_FUNCTION_EXISTS("pcap_datalink_name_to_val" HAVE_PCAP_DATALINK_NAME_TO_VAL) +CHECK_FUNCTION_EXISTS("pcap_datalink_val_to_name" HAVE_PCAP_DATALINK_VAL_TO_NAME) +CHECK_FUNCTION_EXISTS("pcap_findalldevs" HAVE_PCAP_FINDALLDEVS) +CHECK_FUNCTION_EXISTS("pcap_freecode" HAVE_PCAP_FREECODE) +CHECK_FUNCTION_EXISTS("pcap_get_selectable_fd" HAVE_PCAP_GET_SELECTABLE_FD) +CHECK_FUNCTION_EXISTS("pcap_lib_version" HAVE_PCAP_LIB_VERSION) +CHECK_FUNCTION_EXISTS("pcap_list_datalinks" HAVE_PCAP_LIST_DATALINKS) +CHECK_FUNCTION_EXISTS("pcap_open_dead" HAVE_PCAP_OPEN_DEAD) +CHECK_FUNCTION_EXISTS("pcap_set_datalink" HAVE_PCAP_SET_DATALINK) + + +#Is pcap found ? +IF(PCAP_INCLUDE_DIRS AND PCAP_LIBRARIES) + SET( PCAP_FOUND "YES" ) +ENDIF(PCAP_INCLUDE_DIRS AND PCAP_LIBRARIES) + + +MARK_AS_ADVANCED( + PCAP_LIBRARIES + PCAP_INCLUDE_DIRS +) \ No newline at end of file diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf index 25334e569..d80ffda68 100644 --- a/conf/gnss-sdr_GPS_L1_2ch_udp.conf +++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf @@ -14,9 +14,10 @@ SignalSource.implementation=UDP_Signal_Source ;SignalSource.implementation=File_Signal_Source SignalSource.filename=/home/javier/gnss/gnss-simulator/build/signal_out.bin ; <- PUT YOUR FILE HERE SignalSource.item_type=gr_complex -SignalSource.address=0.0.0.0 +SignalSource.origin_address=0.0.0.0 +SignalSource.capture_device=eth0 SignalSource.port=1234 -SignalSource.payload_bytes=1024 +SignalSource.payload_bytes=1472 SignalSource.sample_type=cbyte SignalSource.RF_channels=1 SignalSource.select_single_channel=0 @@ -32,7 +33,7 @@ SignalConditioner.implementation=Pass_Through ;SignalConditioner1.implementation=Pass_Through ;######### CHANNELS GLOBAL CONFIG ############ -Channels_1C.count=8 +Channels_1C.count=1 Channels.in_acquisition=1 ;# CHANNEL CONNECTION @@ -49,7 +50,7 @@ Acquisition_1C.threshold=60 Acquisition_1C.use_CFAR_algorithm=false Acquisition_1C.blocking=false Acquisition_1C.doppler_max=5000 -Acquisition_1C.doppler_step=250 +Acquisition_1C.doppler_step=500 Acquisition_1C.dump=false Acquisition_1C.dump_filename=./acq_dump.dat @@ -57,7 +58,7 @@ Acquisition_1C.dump_filename=./acq_dump.dat ;######### TRACKING GLOBAL CONFIG ############ Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking Tracking_1C.item_type=gr_complex -Tracking_1C.dump=true +Tracking_1C.dump=false Tracking_1C.dump_filename=./tracking_ch_ Tracking_1C.pll_bw_hz=35.0; Tracking_1C.dll_bw_hz=2.0; diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.cc b/src/algorithms/signal_source/adapters/udp_signal_source.cc index f24345293..ed79ff97f 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/udp_signal_source.cc @@ -54,8 +54,14 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, default_dump_file); // network PARAMETERS + std::string default_capture_device = "eth0"; std::string default_address = "127.0.0.1"; int default_port = 1234; + std::string address = configuration->property(role + ".origin_address", default_address); + std::string capture_device = configuration->property(role + ".capture_device", default_capture_device); + int port = configuration->property(role + ".port", default_port); + int payload_bytes = configuration->property(role + ".payload_bytes", 1024); + RF_channels_ = configuration->property(role + ".RF_channels", 1); select_single_channel_ = configuration->property(role + ".select_single_channel", 0); @@ -64,19 +70,15 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, std::string default_sample_type = "cbyte"; std::string sample_type = configuration->property(role + ".sample_type", default_sample_type); - item_type_ = configuration->property(role + ".item_type", default_item_type); - std::string address = configuration->property(role + ".address", default_address); - int port = configuration->property(role + ".port", default_port); - int payload_bytes = configuration->property(role + ".payload_bytes", 1024); if (sample_type.compare("cbyte")==0) { - udp_gnss_rx_source_ = make_udp_gnss_rx_source(sizeof(char), address, port, payload_bytes, true); + udp_gnss_rx_source_ = raw_ip_packet_source::make(capture_device, address, port, payload_bytes); demux_=gr::blocks::deinterleave::make(sizeof(char),1); }else{ std::cout<<"WARNING: Requested UDP sample type unsuported, setting sample type to cbyte\n"; - udp_gnss_rx_source_ = make_udp_gnss_rx_source(sizeof(char), address, port, payload_bytes, true); + udp_gnss_rx_source_ = raw_ip_packet_source::make(capture_device, address, port, payload_bytes); demux_=gr::blocks::deinterleave::make(sizeof(char),1); } diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.h b/src/algorithms/signal_source/adapters/udp_signal_source.h index ebb8636af..b3b43289b 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.h +++ b/src/algorithms/signal_source/adapters/udp_signal_source.h @@ -33,7 +33,7 @@ #define GNSS_SDR_UDP_SIGNAL_SOURCE_H #include "gnss_block_interface.h" -#include "udp_gnss_rx_source.h" +#include "raw_ip_packet_source.h" #include #include #include @@ -103,7 +103,7 @@ private: std::vector> float_to_complex_; std::vector> null_sinks_; - udp_gnss_rx_source_sptr udp_gnss_rx_source_; + raw_ip_packet_source::sptr udp_gnss_rx_source_; gr::blocks::deinterleave::sptr demux_; std::vector> file_sink_; boost::shared_ptr queue_; diff --git a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt index 863a90390..83a7ee7b2 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt @@ -25,7 +25,7 @@ set(SIGNAL_SOURCE_GR_BLOCKS_SOURCES unpack_2bit_samples.cc unpack_spir_gss6450_samples.cc labsat23_source.cc - udp_gnss_rx_source.cc + raw_ip_packet_source.cc ) include_directories( @@ -41,5 +41,10 @@ file(GLOB SIGNAL_SOURCE_GR_BLOCKS_HEADERS "*.h") list(SORT SIGNAL_SOURCE_GR_BLOCKS_HEADERS) add_library(signal_source_gr_blocks ${SIGNAL_SOURCE_GR_BLOCKS_SOURCES} ${SIGNAL_SOURCE_GR_BLOCKS_HEADERS}) source_group(Headers FILES ${SIGNAL_SOURCE_GR_BLOCKS_HEADERS}) -target_link_libraries(signal_source_gr_blocks signal_source_lib ${GNURADIO_RUNTIME_LIBRARIES} ${Boost_LIBRARIES}) +target_link_libraries(signal_source_gr_blocks + signal_source_lib + ${GNURADIO_RUNTIME_LIBRARIES} + ${Boost_LIBRARIES} + ${PCAP_LIBRARIES} +) add_dependencies(signal_source_gr_blocks glog-${glog_RELEASE}) diff --git a/src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc b/src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc new file mode 100644 index 000000000..5ec4c4a2c --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc @@ -0,0 +1,289 @@ +/*! + * \file raw_ip_packet_source.cc + * + * \brief Receives ip frames containing samples in UDP frame encapsulation + * using a high performance packet capture library (libpcap) + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * GNSS-SDR is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GNSS-SDR is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNSS-SDR. If not, see . + * + * ------------------------------------------------------------------------- + */ + + +#include +#include "raw_ip_packet_source.h" + +#include +#include + + +#define FIFO_SIZE 1000000 + + +/* 4 bytes IP address */ +typedef struct gr_ip_address{ + u_char byte1; + u_char byte2; + u_char byte3; + u_char byte4; +}gr_ip_address; + +/* IPv4 header */ +typedef struct gr_ip_header{ + u_char ver_ihl; // Version (4 bits) + Internet header length (4 bits) + u_char tos; // Type of service + u_short tlen; // Total length + u_short identification; // Identification + u_short flags_fo; // Flags (3 bits) + Fragment offset (13 bits) + u_char ttl; // Time to live + u_char proto; // Protocol + u_short crc; // Header checksum + gr_ip_address saddr; // Source address + gr_ip_address daddr; // Destination address + u_int op_pad; // Option + Padding +}gr_ip_header; + +/* UDP header*/ +typedef struct gr_udp_header{ + u_short sport; // Source port + u_short dport; // Destination port + u_short len; // Datagram length + u_short crc; // Checksum +}gr_udp_header; + +raw_ip_packet_source::sptr +raw_ip_packet_source::make(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size) +{ + return gnuradio::get_initial_sptr + (new raw_ip_packet_source(src_device, origin_address, udp_port, udp_packet_size)); +} + +/* + * The private constructor + */ +raw_ip_packet_source::raw_ip_packet_source(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size) +: gr::sync_block("raw_ip_packet_source", + gr::io_signature::make(0, 0, 0), + gr::io_signature::make(1, 1, sizeof(char))) +{ + + // constructor code here + std::cout<<"Start Ethernet packet capture\n"; + + d_src_device=src_device; + d_udp_port=udp_port; + d_udp_payload_size=udp_packet_size; + d_fifo_full=false; + d_last_frame_counter=0; + d_num_rx_errors=0; + + //allocate signal samples buffer + fifo_buff=new char[FIFO_SIZE]; + fifo_read_ptr=0; + fifo_write_ptr=0; + fifo_items=0; + + //open the ethernet device + if (open()==true) + { + // start pcap capture thread + d_pcap_thread=new boost::thread(boost::bind(&raw_ip_packet_source::my_pcap_loop_thread,this,descr)); + }else{ + exit(1); //ethernet error! + } +} + +bool raw_ip_packet_source::open() +{ + char errbuf[PCAP_ERRBUF_SIZE]; + boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function + /* open device for reading */ + descr = pcap_open_live(d_src_device.c_str(),1500,1,1000,errbuf); + if(descr == NULL) + { + std::cout<<"Error openning Ethernet device "<join(); + pcap_close(descr); + } + + delete fifo_buff; + std::cout<<"Stop Ethernet packet capture\n"; + +} + +void raw_ip_packet_source::static_pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, + const u_char* packet) +{ + raw_ip_packet_source *bridge=(raw_ip_packet_source*) args; + bridge->pcap_callback(args, pkthdr, packet); +} + +void raw_ip_packet_source::pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, + const u_char* packet) +{ + boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function + + gr_ip_header *ih; + gr_udp_header *uh; + + // eth frame parameters + // **** UDP RAW PACKET DECODER **** + if ((packet[12]==0x08) & (packet[13]==0x00)) //IP FRAME + { + + /* retireve the position of the ip header */ + ih = (gr_ip_header *) (packet + + 14); //length of ethernet header + + /* retireve the position of the udp header */ + u_int ip_len; + ip_len = (ih->ver_ihl & 0xf) * 4; + uh = (gr_udp_header *) ((u_char*)ih + ip_len); + + /* convert from network byte order to host byte order */ + u_short sport,dport; + dport = ntohs( uh->dport ); + sport = ntohs( uh->sport ); + if (dport==d_udp_port) + { + // print ip addresses and udp ports +// printf("%d.%d.%d.%d.%d -> %d.%d.%d.%d.%d\n", +// ih->saddr.byte1, +// ih->saddr.byte2, +// ih->saddr.byte3, +// ih->saddr.byte4, +// sport, +// ih->daddr.byte1, +// ih->daddr.byte2, +// ih->daddr.byte3, +// ih->daddr.byte4, +// dport); +// std::cout<<"d_udp_port:"<=d_udp_payload_size) + { + //write all in a single memcpy + memcpy(&fifo_buff[fifo_write_ptr],&udp_payload[0],d_udp_payload_size); //size in bytes + fifo_write_ptr+=d_udp_payload_size; + if (fifo_write_ptr==FIFO_SIZE) fifo_write_ptr=0; + fifo_items+=d_udp_payload_size; + }else{ + //two step wrap write + memcpy(&fifo_buff[fifo_write_ptr],&udp_payload[0],aligned_write_items); //size in bytes + fifo_write_ptr=d_udp_payload_size-aligned_write_items; + memcpy(&fifo_buff[0],&udp_payload[aligned_write_items],fifo_write_ptr); //size in bytes + fifo_items+=d_udp_payload_size; + } + }else{ + std::cout<<"Ou"<=num_samples_readed) + { + //read all in a single memcpy + memcpy(&((char*)output_items[0])[0],&fifo_buff[fifo_read_ptr],num_samples_readed); + fifo_read_ptr=fifo_read_ptr+num_samples_readed; //increase the fifo pointer + if (fifo_read_ptr==FIFO_SIZE) fifo_read_ptr=0; + }else{ + //two step wrap read + memcpy(&((char*)output_items[0])[0],&fifo_buff[fifo_read_ptr],aligned_read_items); + fifo_read_ptr=num_samples_readed-aligned_read_items;//increase the fifo pointer considering the rollover + memcpy(&((char*)output_items[0])[aligned_read_items],&fifo_buff[0],fifo_read_ptr); + } + + fifo_items=fifo_items-num_samples_readed; + + // Tell runtime system how many output items we produced. + //std::cout<<"fifo_items:"<. + * + * ------------------------------------------------------------------------- + */ + + +#ifndef INCLUDED_RAW_IP_PACKET_SOURCE_H +#define INCLUDED_RAW_IP_PACKET_SOURCE_H + +#include +#include +#include +#include +#include +#include +#include +#include + +class raw_ip_packet_source : virtual public gr::sync_block +{ +private: + boost::mutex d_mutex; + + pcap_t* descr; //ethernet pcap device descriptor + int fifo_pipe[2]; + + char *fifo_buff; + + int fifo_read_ptr; + int fifo_write_ptr; + int fifo_items; + int d_sock_raw; + int d_udp_port; + struct sockaddr_in si_me; + std::string d_src_device; + std::string d_origin_address; + int d_udp_payload_size; + bool d_fifo_full; + + int d_last_frame_counter; + int d_num_rx_errors; + + + boost::thread *d_pcap_thread; + /*! + * \brief + * Opens the ethernet device using libpcap raw capture mode + * If any of these fail, the fuction retuns the error and exits. + */ + bool open(); + + void my_pcap_loop_thread(pcap_t *pcap_handle); + + void pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* packet); + + static void static_pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* packet); + + +public: + + typedef boost::shared_ptr sptr; + static sptr make(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size); + raw_ip_packet_source(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size); + ~raw_ip_packet_source(); + + // Where all the action really happens + int work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); +}; + +#endif /* INCLUDED_RAW_IP_PACKET_SOURCE_H */ + diff --git a/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc b/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc deleted file mode 100644 index ef24c829b..000000000 --- a/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.cc +++ /dev/null @@ -1,215 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2007-2010,2013 Free Software Foundation, Inc. - * - * This file is part of GNU Radio - * - * GNU Radio 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. - * - * GNU Radio 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. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "udp_gnss_rx_source.h" -#include -#include -#include -#include -#include -#include -#include - -const int udp_gnss_rx_source::BUF_SIZE_PAYLOADS = - gr::prefs::singleton()->get_long("udp_blocks", "buf_size_payloads", 50); - -udp_gnss_rx_source_sptr -make_udp_gnss_rx_source(size_t itemsize, - const std::string &ipaddr, int port, - int payload_size, bool eof) -{ - return gnuradio::get_initial_sptr - (new udp_gnss_rx_source(itemsize, ipaddr, port, - payload_size, eof)); -} - -udp_gnss_rx_source::udp_gnss_rx_source(size_t itemsize, - const std::string &host, int port, - int payload_size, bool eof) -: sync_block("udp_gnss_rx_source", - gr::io_signature::make(0, 0, 0), - gr::io_signature::make(1, 1, itemsize)), - d_itemsize(itemsize), d_payload_size(payload_size), - d_eof(eof), d_connected(false), d_residual(0), d_sent(0), d_offset(0) -{ - // Give us some more room to play. - d_rxbuf = new char[4*d_payload_size]; - d_residbuf = new char[BUF_SIZE_PAYLOADS*d_payload_size]; - - connect(host, port); -} - -udp_gnss_rx_source::~udp_gnss_rx_source() -{ - if(d_connected) - disconnect(); - - delete [] d_rxbuf; - delete [] d_residbuf; -} - -void -udp_gnss_rx_source::connect(const std::string &host, int port) -{ - if(d_connected) - disconnect(); - - d_host = host; - d_port = static_cast(port); - - std::string s_port; - s_port = (boost::format("%d")%d_port).str(); - - if(host.size() > 0) { - boost::asio::ip::udp::resolver resolver(d_io_service); - boost::asio::ip::udp::resolver::query query(d_host, s_port, - boost::asio::ip::resolver_query_base::passive); - d_endpoint = *resolver.resolve(query); - - d_socket = new boost::asio::ip::udp::socket(d_io_service); - d_socket->open(d_endpoint.protocol()); - - boost::asio::socket_base::reuse_address roption(true); - d_socket->set_option(roption); - - d_socket->bind(d_endpoint); - - start_receive(); - d_udp_thread = gr::thread::thread(boost::bind(&udp_gnss_rx_source::run_io_service, this)); - d_connected = true; - } -} - -void -udp_gnss_rx_source::disconnect() -{ - gr::thread::scoped_lock lock(d_setlock); - - if(!d_connected) - return; - - d_io_service.reset(); - d_io_service.stop(); - d_udp_thread.join(); - - d_socket->close(); - delete d_socket; - - d_connected = false; -} - -// Return port number of d_socket -int -udp_gnss_rx_source::get_port(void) -{ - //return d_endpoint.port(); - return d_socket->local_endpoint().port(); -} - -void -udp_gnss_rx_source::start_receive() -{ - d_socket->async_receive_from(boost::asio::buffer((void*)d_rxbuf, d_payload_size), d_endpoint_rcvd, - boost::bind(&udp_gnss_rx_source::handle_read, this, - boost::asio::placeholders::error, - boost::asio::placeholders::bytes_transferred)); -} - -void -udp_gnss_rx_source::handle_read(const boost::system::error_code& error, - size_t bytes_transferred) -{ - if(!error) { - { - boost::lock_guard lock(d_udp_mutex); - if(d_eof && (bytes_transferred == 0)) { - // If we are using EOF notification, test for it and don't - // add anything to the output. - d_residual = WORK_DONE; - d_cond_wait.notify_one(); - return; - } - else { - // Make sure we never go beyond the boundary of the - // residual buffer. This will just drop the last bit of - // data in the buffer if we've run out of room. - if((int)(d_residual + bytes_transferred) >= (BUF_SIZE_PAYLOADS*d_payload_size)) { - GR_LOG_WARN(d_logger, "Too much data; dropping packet."); - } - else { - // otherwise, copy received data into local buffer for - // copying later. - memcpy(d_residbuf+d_residual, d_rxbuf, bytes_transferred); - d_residual += bytes_transferred; - } - } - d_cond_wait.notify_one(); - } - } - start_receive(); -} - -int -udp_gnss_rx_source::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) -{ - gr::thread::scoped_lock l(d_setlock); - - char *out = (char*)output_items[0]; - - // Use async receive_from to get data from UDP buffer and wait - // on a conditional signal before proceeding. We use this - // because the conditional wait is interruptable while a - // synchronous receive_from is not. - boost::unique_lock lock(d_udp_mutex); - - //use timed_wait to avoid permanent blocking in the work function - d_cond_wait.timed_wait(lock, boost::posix_time::milliseconds(10)); - - if (d_residual < 0) { - return d_residual; - } - - int bytes_left_in_buffer = (int)(d_residual - d_sent); - int bytes_to_send = std::min(d_itemsize * noutput_items, bytes_left_in_buffer); - - // Copy the received data in the residual buffer to the output stream - memcpy(out, d_residbuf+d_sent, bytes_to_send); - int nitems = bytes_to_send/d_itemsize; - - // Keep track of where we are if we don't have enough output - // space to send all the data in the residbuf. - if (bytes_to_send == bytes_left_in_buffer) { - d_residual = 0; - d_sent = 0; - } - else { - d_sent += bytes_to_send; - } - - return nitems; -} diff --git a/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h b/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h deleted file mode 100644 index 5bab10b4a..000000000 --- a/src/algorithms/signal_source/gnuradio_blocks/udp_gnss_rx_source.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2007-2010,2013 Free Software Foundation, Inc. - * - * This file is part of GNU Radio - * - * GNU Radio 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. - * - * GNU Radio 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. - */ - -#ifndef INCLUDED_GR_UDP_GNSS_RX_SOURCE_IMPL_H -#define INCLUDED_GR_UDP_GNSS_RX_SOURCE_IMPL_H - -#include -#include -#include -#include - -class udp_gnss_rx_source; - -typedef boost::shared_ptr udp_gnss_rx_source_sptr; - -udp_gnss_rx_source_sptr make_udp_gnss_rx_source(size_t itemsize, - const std::string &ipaddr, int port, - int payload_size, bool eof); - - - - class udp_gnss_rx_source : public gr::blocks::udp_source - { - private: - size_t d_itemsize; - int d_payload_size; // maximum transmission unit (packet length) - bool d_eof; // look for an EOF signal - bool d_connected; // are we connected? - char *d_rxbuf; // get UDP buffer items - char *d_residbuf; // hold buffer between calls - ssize_t d_residual; // hold information about number of bytes stored in residbuf - ssize_t d_sent; // track how much of d_residbuf we've outputted - size_t d_offset; // point to residbuf location offset - - static const int BUF_SIZE_PAYLOADS; //!< The d_residbuf size in multiples of d_payload_size - - std::string d_host; - unsigned short d_port; - - boost::asio::ip::udp::socket *d_socket; - boost::asio::ip::udp::endpoint d_endpoint; - boost::asio::ip::udp::endpoint d_endpoint_rcvd; - boost::asio::io_service d_io_service; - - gr::thread::condition_variable d_cond_wait; - gr::thread::mutex d_udp_mutex; - gr::thread::thread d_udp_thread; - - void start_receive(); - void handle_read(const boost::system::error_code& error, - size_t bytes_transferred); - void run_io_service() { d_io_service.run(); } - - public: - udp_gnss_rx_source(size_t itemsize, - const std::string &host, int port, - int payload_size, bool eof); - ~udp_gnss_rx_source(); - - void connect(const std::string &host, int port); - void disconnect(); - - int payload_size() { return d_payload_size; } - int get_port(); - - int work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items); - }; - - -#endif /* INCLUDED_GR_UDP_GNSS_RX_SOURCE_H */ From eb6b17edf835a85e1257819bd9664a8b1f676c6b Mon Sep 17 00:00:00 2001 From: Mustafa Abaas Date: Sat, 12 May 2018 11:50:23 +0200 Subject: [PATCH 058/108] Just correcting typos in docs --- docs/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/changelog b/docs/changelog index 3d27ab215..32a3d9db2 100644 --- a/docs/changelog +++ b/docs/changelog @@ -59,7 +59,7 @@ This release has several improvements, addition of new features and bug fixes in - Now GNSS-SDR can be run in virtual environments through snap packages (see https://github.com/carlesfernandez/snapcraft-sandbox) and docker images (see https://github.com/carlesfernandez/docker-gnsssdr). - Now GNSS-SDR is adapted to cross-compiling environments for embedded devices (see https://github.com/carlesfernandez/oe-gnss-sdr-manifest). -- BLAS and LAPACK libraries are not longer mandatory on ARM devices. +- BLAS and LAPACK libraries are no longer mandatory on ARM devices. ### Improvements in Scalability: @@ -198,7 +198,7 @@ This release has several improvements and bug fixes: - Added volk_gnsssdr library, a volk-like library implementing some specific kernels and ensuring portable executables. It comes with a ‘volk_gnsssdr_profile’ executable, in the fashion of volk_profile. Volk and volk_gnsssdr are compatible and can be mixed together. This is expected to enable faster execution of the software receiver in upcoming versions. - The former ‘rtlsdr_signal_source’ has been replaced by a more general ‘osmosdr_signal_source’ compatible with all those front-ends accessible by the OsmoSDR driver (bladeRF, hackRF, etc.) in addition to RTL-based dongles. - Added manpages when binaries gnss-sdr, volk_gnsssdr_profile and front-end-cal are installed. -- Now GNSS-SDR can be build on i386, amd64, armhf, armel and arm64 architectures. +- Now GNSS-SDR can be built on i386, amd64, armhf, armel and arm64 architectures. - Now GNSS-SDR builds on Ubuntu 14.04 and 14.10, Debian jessie/sid and Mac OS X 10.9 and 10.10. - Improved detection of dependencies, specially when installed as .deb packages. - Added a ‘check' target with some minimal tests. From d5ab9124c49658226027d6d30b0858bfd12404f1 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 13 May 2018 21:12:22 +0200 Subject: [PATCH 059/108] Update changelog --- docs/changelog | 140 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 130 insertions(+), 10 deletions(-) diff --git a/docs/changelog b/docs/changelog index 32a3d9db2..3770a2ef0 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,3 +1,122 @@ +## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next) + +Next release will have several improvements, addition of new features and bug fixes in many dimensions: + +### Improvements in Accuracy: + +- Part of the RTKLIB core libraries has been integrated into GNSS-SDR. There is now a single PVT block implementation which makes use of RTKLIB to deliver PVT solutions, including Single and PPP navigation modes. +- Fixed CN0 estimation for other correlation times than 1 ms. + + +### Improvements in Availability: + +- Internal Finite State Machines rewritten for improved continuity in delivering position fixes. This fixes a bug that was stalling the receiver after about six hours of continuous operation. +- Redesign of the time counter for enhanced continuity. + + +### Improvements in Efficiency: + +- Added the possibility of non-blocking acquisition, which works well when using real-time data from a RF front-end. +- Complex codes have been replaced by real codes, alleviating the computational burden. +- New kernels: volk_gnsssdr_16i_xn_resampler_16i_xn.h, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h, volk_gnsssdr_32f_xn_resampler_32f_xn.h, volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h +- Some AVX2 kernels added to the volk_gnsssdr library. +- Several performance improvements. + + +### Improvements in Flexibility: + +- A number of new parameters have been exposed in the configuration. +- Possibility to choose Pilot or Data tracking where available. +- Enabled extended coherent integration times. +- Some configuration parameters can now be overridden by commandline flags for easier use in scripts. + + +### Improvements in Interoperability: + +- Added the GPS L5 receiver chain. +- Added the GLONASS L1 SP receiver chain. +- Added the GLONASS L2 SP receiver chain. +- Improvements in the Galileo E5a and GPS L2C receiver chains. +- Added four more signal sources: "Fmcomms2_Signal_Source", "Plutosdr_Signal Source", "Spir_GSS6450_File_Signal_Source" and "Labsat_Signal_Source". +- Improved support for BladeRF, HackRF and RTL-SDR front-ends. +- Added tools for the interaction with front-ends based on the AD9361 chipset. +- Intermediate results are now saved in .mat binary format, readable from Matlab/Octave and from Python via h5py. +- Added the GPX output format. +- Fixed a bug in the format of NMEA sentences when latitude or longitude minutes were >10 +- Improvements in the RTCM server. +- Improvements in the generation of RINEX files. + + +### Improvements in Maintainability: + +- C-style casts have been replaced by C++ casts. C-style casts are difficult to search for. C++ casts provide compile time checking ability and express programmers' intent better, so they are safer and clearer. +- The override special identifier is now used when overriding a virtual function. This helps the compiler to check for type changes in the base class. +- Use of const container calls when result is immediately converted to a const iterator. Using these members removes an implicit conversion from iterator to const_iterator. +- Improved control over minimum required versions for core dependencies. +- Automated code formating with clang-format. +- Application of the coding style guide in several source files, improving readability. +- The software builds with C++11, C++14 and C++17 standards. +- Setup of a Continuous Integration system that checks building in a wide range of Linux distributions. + + +### Improvements in Portability: + +- The library has been replaced by the more modern and portable . +- The library has been replaced by the more modern and portable for file handling. +- C++ libraries preferred over C libraries (e.g., instead of ). +- A number of unused includes have been removed. +- The software can now be built using GCC or LLVM/Clang compilers on GNU/Linux. +- The Ninja build system can be used in replacement of make. +- The volk_gnsssdr library can be built using Python 2.7 or Python 3.6. +- Several CMake scripts improvements. +- BLAS and LAPACK libraries are mandatory on ARM devices. + + +### Improvements in Reliability: + +- Introduced 3 new Input Filter implementations for pulsed and narrowband interference mitigation: `Pulse_Blanking_Filter`, `Notch_Filter` and `Notch_Filter_Lite`. +- Enhanced const correctness. +- rand() function replaced by library. +- strlen and strncpy have been replaced by safer C++ counterparts. +- Fixed a number of defects detected by Coverity Scan. +- Some destructors have been fixed, avoiding a segmentation fault when exiting the program. +- Introduction of high-integrity C++ practices into the coding style guide. +- Website switched from http to https. + + +### Improvements in Reproducibility: + +- Setup of a Continuous Reproducibility system at GitLab for the automatic reproduction of experiments. The concept was introduced in https://ieeexplore.ieee.org/document/8331069/ +- Fixes of Lintian warnings related to build reproducibility. + + +### Improvements in Scalability: + +- Improvements in multi-system, multi-band receiver configurations. The receiver now accepts any number of channels in the three available bands. + + +### Improvements in Testability: + +- Several Unit Tests added. +- Receiver channels can now be fixed to a given satellite. +- Improved CTest support in volk_gnsssdr. + + +### Improvements in Usability: + +- All Observables block implementations have been collapsed in a universal implementation for all kinds of GNSS signals, making it easier to configure. +- All PVT block implementations have been collapsed in a universal implementation for all kinds of GNSS signals, making it easier to configure. +- Misleading parameter name GNSS-SDR.internal_fs_hz has been replaced by GNSS-SDR.internal_fs_sps. The old parameter name is still read. If found, a warning is provided to the user. +- Updated and improved documentation. +- Added colors to the commandline user interface. + + +See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/ + + + + + ## [0.0.9](https://github.com/gnss-sdr/gnss-sdr/releases/tag/v0.0.9) DOI: https://doi.org/10.5281/zenodo.291371 @@ -74,17 +193,18 @@ This release has several improvements, addition of new features and bug fixes in - Unit tests added: GpsL1CADllPllTracking and GpsL1CATelemetryDecoderTest. - System test added: ttff_gps_l1 performs a set of cold / assisted runs of the software receiver and computes statistics about the obtained Time To First Fix. - System test added: obs_gps_l1_system_test uses an external software-defined signal generator to produce raw digital GNSS signal from a RINEX navigation file and a position (static or dynamic), processes it with GNSS-SDR, and then compares the RINEX observation file produced by the software receiver to that produced by the signal generator. -- Software Development Kit provided for embedded devices (see http://gnss-sdr.org/docs/tutorials/cross-compiling/). +- Software Development Kit provided for embedded devices (see https://gnss-sdr.org/docs/tutorials/cross-compiling/). ### Improvements in Usability: - Now the block factory automatically detects Channel input data type, so it is no longer required to specify Channel.input_type in the configuration. An error raises if Acquisition and Tracking Blocks are not configured with the same input data type. - Block names changed from L2_M to L2C. -- Documentation available at http://gnss-sdr.org/docs/ +- Documentation available at https://gnss-sdr.org/docs/ - Improved tools for compilation, execution and testing in embedded devices. -See the definitions of concepts and metrics at http://gnss-sdr.org/design-forces/ + +See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/ @@ -122,12 +242,12 @@ This release has several improvements, addition of new features and bug fixes: - Improvements in receiver design: Internal block communication has been redesigned to accommodate the addition of new signals, and now upstream and downstream communication within blocks is implemented through the GNU Radio block’s asynchronous message passing system, leading to a more scalable, more robust and cleaner design. - Improvements in receiver design: Correlators have been rewritten to take full advantage of VOLK and VOLK_GNSSSDR, and they are of general use for any tracking block. Their API now admit an arbitrary number of correlators, spaced in an arbitrary manner, in 16ic and 32fc versions. -- Improvements in receiver design: Block adapters are now all managed by smart pointers, ensuring better memory management. +- Improvements in receiver design: Block adapters are now all managed by smart pointers, ensuring better memory management. - Improvements in processing speed: The VOLK_GNSSSDR library has been rewritten, following current VOLK standards and adding a number of new kernels. This approach addresses both efficiency and portability. Now the library provides the key kernels for GNSS signal processing in 16ic and 32fc versions, including SSE2, SSE3, SSE4.1, AVX, AV2 and NEON implementations. Please execute volk_gnsssdr_profile and volk_profile to use the fastest implementation for your host machine. - New source block: Two_Bit_Packed_File_Signal_Source. This block takes 2 bit samples that have been packed into bytes or shorts as input and generates a byte for each sample. - Fixes in SUPL assistance (supl.nokia.com removed). - Improvements in acquisition: Added a non CFAR PCPS acquisition algorithm based on the estimation of the post correlation noise floor. If enabled as an option in the acquisition configuration, it allows setting more stable thresholds in the presence of non-gaussian front-end noise (which is the usual behavior of front-ends.) -- Fixes in acquisition: Fixed mismatch between the config files and the acquisition code in the specification of the IF. Fixed a bug in the length of the FFT of local codes. +- Fixes in acquisition: Fixed mismatch between the config files and the acquisition code in the specification of the IF. Fixed a bug in the length of the FFT of local codes. - Improvements in tracking sensitivity: Added configuration option to customize the extension of the GPS L1 CA correlation length after bit synchronization (options are: [1,2,4,5,10,20] ms). Only available in the GPS_L1_CA_DLL_PLL_C_Aid_Tracking implementation. - New tracking block introduced: GPS_L1_CA_DLL_PLL_C_Aid_Tracking is a GPS L1 C/A carrier PLL and code DLL with optional carrier-aid feedback. It is available in both 32 bits gr_complex input samples and in 16 bits short int complex samples. The gr_complex version has also the capability to extend the coherent correlation period from 1ms to 20ms using telemetry symbol synchronization. - Increased resolution in CN0 estimator internal variables. @@ -136,18 +256,18 @@ This release has several improvements, addition of new features and bug fixes: - New tracking block introduced: GPS_L1_CA_DLL_PLL_Tracking_GPU is a GPS L1 C/A carrier PLL and code DLL that uses the CUDA-compatible GPU to compute carrier wipe off and correlation operations, alleviating the CPU load. - Obsolete/buggy blocks removed: GPS_L1_CA_DLL_FLL_PLL_Tracking, GPS_L1_CA_DLL_PLL_Optim_Tracking. - Added a RTCM printer and TCP server in PVT blocks (still experimental). The receiver is now able to stream data in real time, serving RTCM 3.2 messages to multiple clients. For instance, it can act as a Ntrip Source feeding a Ntrip Server, or to be used as data input in RTKLIB, obtaining Precise Point Positioning fixes in real-time. The TCP port, Station ID, and rate of MT1019/MT1045 and MSM can be configured. GPS_L1_CA_PVT serves MT1019 (GPS Ephemeris) and MSM7 (MT1077, full GPS pseudoranges, phase ranges, phase range rates and CNR - high resolution) messages, while GALILEO_E1_PVT serves MT1045 (Galileo ephemeris) and MSM7 (MT1097, full Galileo pseudoranges, phase ranges, phase range rates and CNR - high resolution). -- Added a GeoJSON printer. Basic (least-squares) position fixes can be now also stored in this format, in addition to KML. +- Added a GeoJSON printer. Basic (least-squares) position fixes can be now also stored in this format, in addition to KML. - Obsolete block removed: output filter. - QA code migrated to the new asynchronous message passing system. - Improvements in documentation: update of README.md file, addition of documentation for the VOLK_GNSSSDR library, updated links to new ICDs. -- Improvements in documentation: Satellite identification updated to current constellation status. +- Improvements in documentation: Satellite identification updated to current constellation status. - Updated and cleaner console output. Now Galileo satellites have the ‘E’ identifier in their PRN number. - Several improvements in CMake scripts allow to build GNSS-SDR in Linux Debian (Jessie, Stretch and Sid), Ubuntu (from 12.04 to 16.04), including amd64, i386, armhf and arm64 architectures, and possibly in other GNU/Linux distributions, as well as in Mac OS X 10.9 to 10.11. It also works well with CMake 3.5 (some problems solved with VOLK_GNSSSDR as a sub-project). - The software can link either against OpenSSL or against GnuTLS with openssl extensions, whatever it is available. This allows buildings in distributions such as Fedora or ArchLinux, while being compatible with binary distribution through Debian packages. - Fixed a number of defects detected by Coverity Scan. - Some fixes required by Debian licensing and packaging system. - Added a CGRAN (http://www.cgran.org/) manifest -- Lots of code cleaning and fixes of typos and small bugs. +- Lots of code cleaning and fixes of typos and small bugs. @@ -214,14 +334,14 @@ This release has several improvements and bug fixes: - Added hybrid processing GPS L1 C/A and Galileo E1B, providing position fixes make use of observables for both constellations. - Added implementations of the QuickSync algorithm for GPS L1 C/A and Galileo E1 acquisition. -- Added processing blocks for Galileo E5a: Acquisition, Tracking, Telemetry_Decoder (experimental) +- Added processing blocks for Galileo E5a: Acquisition, Tracking, Telemetry_Decoder (experimental) - New configuration files allow to configure GPS and Galileo channels in the same receiver. - Added tropospheric corrections to GPS and Galileo PVT solution. - Improved precision obtained by changing some variables from float to double. - New building options: ENABLE_GN3S, ENABLE_RTLSDR and ENABLE_ARRAY and ENABLE_OPENCL. - Improved documentation on how to enable optional drivers. - Fixed bug in memory alignment that caused problems with high data rates. -- Added ENABLE_GENERIC_ARCH, an option to build the binary without detecting the SIMD instruction set present in the compiling machine, so it can be executed in other machines without those specific sets. +- Added ENABLE_GENERIC_ARCH, an option to build the binary without detecting the SIMD instruction set present in the compiling machine, so it can be executed in other machines without those specific sets. - Added ENABLE_GPERFTOOLS, which links the executable to tcmalloc and profiler if Gperftools is available on the system. - Added carrier phase, Doppler shift and signal strength observables to the RINEX files. Static PPP solutions are available for GPS with RTKLIB via RINEX files. - The executable now produces RINEX files version 3.02 of Galileo Observables, Navigation data, and mixed (GPS/Galileo) observables and nav data. RINEX 3.02 is the default version of RINEX files. From 4bef320c6717e75020bb333a5d3f1270a58a6bb5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 13 May 2018 21:16:09 +0200 Subject: [PATCH 060/108] Use https instead of http in links when available --- CMakeLists.txt | 18 +++++++++--------- CODE_OF_CONDUCT.md | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 22ad70e01..22b0eb57a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,7 +354,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") message(STATUS "Your GCC version is too old and does not support some C++ features required by GNSS-SDR. GCC version must be at least ${GNSSSDR_GCC_MIN_VERSION}") if(${LINUX_DISTRIBUTION} MATCHES "Ubuntu") if(${LINUX_VER} MATCHES "12.04") - message(STATUS "For instructions on how to upgrade GCC, check http://askubuntu.com/a/271561") + message(STATUS "For instructions on how to upgrade GCC, check https://askubuntu.com/a/271561") endif(${LINUX_VER} MATCHES "12.04") endif(${LINUX_DISTRIBUTION} MATCHES "Ubuntu") message(FATAL_ERROR "Fatal error: GCC >= ${GNSSSDR_GCC_MIN_VERSION} required.") @@ -466,7 +466,7 @@ endif(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING) ################################################################################ -# Boost - http://www.boost.org +# Boost - https://www.boost.org ################################################################################ if(UNIX AND EXISTS "/usr/lib64") list(APPEND BOOST_LIBRARYDIR "/usr/lib64") # Fedora 64-bit fix @@ -490,7 +490,7 @@ endif(NOT Boost_FOUND) ################################################################################ -# GNU Radio - http://gnuradio.org +# GNU Radio - https://gnuradio.org ################################################################################ set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS FFT FILTER PMT) find_package(Gnuradio) @@ -1032,7 +1032,7 @@ endif(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) ################################################################################ -# GnuTLS - http://www.gnutls.org/ +# GnuTLS - https://www.gnutls.org/ ################################################################################ find_package(GnuTLS) find_library(GNUTLS_OPENSSL_LIBRARY NAMES gnutls-openssl libgnutls-openssl.so.27 @@ -1203,7 +1203,7 @@ if(ENABLE_UHD) set(ENABLE_UHD OFF) message(STATUS " The USRP Hardware Driver (UHD) signal source will not be built,") message(STATUS " so all USRP-based front-ends will not be usable.") - message(STATUS " Please check http://files.ettus.com/manual/") + message(STATUS " Please check https://files.ettus.com/manual/") else(NOT UHD_FOUND) set(GR_REQUIRED_COMPONENTS UHD) find_package(Gnuradio) @@ -1430,7 +1430,7 @@ if(ENABLE_GPERFTOOLS) endif(ENABLE_GPERFTOOLS) if(ENABLE_GPERFTOOLS) # Set GPerftools related flags if it is available - # See http://gperftools.googlecode.com/svn/trunk/README + # See https://github.com/gperftools/gperftools/blob/master/README if(GPERFTOOLS_FOUND) if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free") @@ -1472,7 +1472,7 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) # set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++17") # endif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0") endif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1.1") - set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -Wall -Wextra") #Add warning flags: For "-Wall" see http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html + set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -Wall -Wextra") #Add warning flags: For "-Wall" see https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) # Support of C++17 is still not possible due to pm_remez.h (solved in GNU Radio 3.8) @@ -1515,7 +1515,7 @@ if(NOT (CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) AND NOT (CMAKE_CXX_COMPILER_ID M endif(NOT (CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) # Processor-architecture related flags -# See http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options +# See https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html if (NOT ARCH_COMPILER_FLAGS) if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) if(OS_IS_MACOSX) @@ -1543,7 +1543,7 @@ set(MY_CXX_FLAGS "${MY_CXX_FLAGS} ${ARCH_COMPILER_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_CXX_FLAGS}") if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) - #http://gcc.gnu.org/wiki/Visibility + # https://gcc.gnu.org/wiki/Visibility add_definitions(-fvisibility=hidden) endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 33e45b9d5..8db189904 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -68,7 +68,7 @@ members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at [http://contributor-covenant.org/version/1/4][version] +available at [https://contributor-covenant.org/version/1/4][version] -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ From a176276a8d37478b3c809e0f80e79c39847baa6b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 13 May 2018 21:16:48 +0200 Subject: [PATCH 061/108] Fix typo --- docs/manpage/front-end-cal-manpage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manpage/front-end-cal-manpage b/docs/manpage/front-end-cal-manpage index a79ac3699..940a4b0ee 100644 --- a/docs/manpage/front-end-cal-manpage +++ b/docs/manpage/front-end-cal-manpage @@ -32,7 +32,7 @@ Example of configuration file available at: ${prefix}/share/gnss\-sdr/conf/front \.TP [1] C. Fernandez\-Prades, J. Arribas, P. Closas, \fITurning a Television into a GNSS Receiver\fR, in Proceedings of ION GNSS+, 15\-16 September 2013, Nashville, Tennessee (USA). A draft copy is freely available at http://www.cttc.es/publication/turning\-a\-television\-into\-a\-gnss\-receiver/ \.TP -Check https://gnss\\-sdr.org for more information. +Check https://gnss\-sdr.org for more information. .SH BUGS No known bugs. .SH AUTHOR From 0d60d97c240f9d4a19852b876cce6a57741d638d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 13 May 2018 22:49:11 +0200 Subject: [PATCH 062/108] Use https instead of http in links when available Update copyright year in headers --- AUTHORS | 2 +- CMakeLists.txt | 4 +- COPYING | 8 +- README.md | 2 +- cmake/Modules/FindGFORTRAN.cmake | 2 +- cmake/Modules/FindGFlags.cmake | 2 +- cmake/Modules/FindGLOG.cmake | 2 +- cmake/Modules/FindGPSTK.cmake | 2 +- cmake/Modules/FindGnuradio.cmake | 2 +- cmake/Modules/FindGperftools.cmake | 2 +- cmake/Modules/FindGrDbfcttc.cmake | 2 +- cmake/Modules/FindGrGN3S.cmake | 2 +- cmake/Modules/FindGrOsmoSDR.cmake | 2 +- cmake/Modules/FindLibOsmoSDR.cmake | 2 +- cmake/Modules/FindLog4cpp.cmake | 2 +- cmake/Modules/FindMATIO.cmake | 2 +- cmake/Modules/FindORC.cmake | 2 +- cmake/Modules/FindOpenBLAS.cmake | 2 +- cmake/Modules/FindOpenCL.cmake | 2 +- cmake/Modules/FindTeleorbit.cmake | 2 +- cmake/Modules/FindUHD.cmake | 2 +- cmake/Modules/FindVolk.cmake | 2 +- cmake/Modules/FindVolkGnssSdr.cmake | 2 +- cmake/Modules/Findiio.cmake | 2 +- cmake/Modules/Findlibiio.cmake | 2 +- cmake/Modules/SetupPython.cmake | 2 +- cmake/Modules/TestForARM.cmake | 2 +- cmake/Modules/TestForSSE.cmake | 2 +- cmake/Toolchains/oe-sdk_cross.cmake | 2 +- cmake/Toolchains/zynq-7000.cmake | 2 +- cmake/cmake_uninstall.cmake.in | 2 +- docs/doxygen/other/main_page.dox | 45 +++--- docs/doxygen/other/reference_docs.dox | 74 +++++----- docs/doxygen/other/signal_model.dox | 136 +++++++++--------- src/CMakeLists.txt | 4 +- src/algorithms/CMakeLists.txt | 4 +- src/algorithms/PVT/CMakeLists.txt | 4 +- src/algorithms/PVT/adapters/CMakeLists.txt | 4 +- src/algorithms/PVT/adapters/rtklib_pvt.cc | 4 +- src/algorithms/PVT/adapters/rtklib_pvt.h | 4 +- .../PVT/gnuradio_blocks/CMakeLists.txt | 4 +- .../PVT/gnuradio_blocks/rtklib_pvt_cc.cc | 4 +- .../PVT/gnuradio_blocks/rtklib_pvt_cc.h | 4 +- src/algorithms/PVT/libs/CMakeLists.txt | 4 +- src/algorithms/PVT/libs/geojson_printer.cc | 4 +- src/algorithms/PVT/libs/geojson_printer.h | 4 +- src/algorithms/PVT/libs/gpx_printer.cc | 2 +- src/algorithms/PVT/libs/gpx_printer.h | 2 +- src/algorithms/PVT/libs/hybrid_ls_pvt.cc | 4 +- src/algorithms/PVT/libs/hybrid_ls_pvt.h | 4 +- src/algorithms/PVT/libs/kml_printer.cc | 4 +- src/algorithms/PVT/libs/kml_printer.h | 4 +- src/algorithms/PVT/libs/ls_pvt.cc | 4 +- src/algorithms/PVT/libs/ls_pvt.h | 4 +- src/algorithms/PVT/libs/nmea_printer.cc | 4 +- src/algorithms/PVT/libs/nmea_printer.h | 4 +- src/algorithms/PVT/libs/pvt_solution.cc | 4 +- src/algorithms/PVT/libs/pvt_solution.h | 4 +- src/algorithms/PVT/libs/rinex_printer.cc | 4 +- src/algorithms/PVT/libs/rinex_printer.h | 4 +- src/algorithms/PVT/libs/rtcm_printer.cc | 4 +- src/algorithms/PVT/libs/rtcm_printer.h | 4 +- src/algorithms/acquisition/CMakeLists.txt | 4 +- .../acquisition/adapters/CMakeLists.txt | 9 +- ...lileo_e1_pcps_8ms_ambiguous_acquisition.cc | 4 +- ...alileo_e1_pcps_8ms_ambiguous_acquisition.h | 4 +- .../galileo_e1_pcps_ambiguous_acquisition.cc | 4 +- .../galileo_e1_pcps_ambiguous_acquisition.h | 4 +- ...eo_e1_pcps_cccwsr_ambiguous_acquisition.cc | 4 +- ...leo_e1_pcps_cccwsr_ambiguous_acquisition.h | 4 +- ...e1_pcps_quicksync_ambiguous_acquisition.cc | 4 +- ..._e1_pcps_quicksync_ambiguous_acquisition.h | 4 +- ...ileo_e1_pcps_tong_ambiguous_acquisition.cc | 4 +- ...lileo_e1_pcps_tong_ambiguous_acquisition.h | 4 +- ...ileo_e5a_noncoherent_iq_acquisition_caf.cc | 4 +- ...lileo_e5a_noncoherent_iq_acquisition_caf.h | 4 +- .../adapters/galileo_e5a_pcps_acquisition.cc | 2 +- .../adapters/galileo_e5a_pcps_acquisition.h | 2 +- .../glonass_l1_ca_pcps_acquisition.cc | 4 +- .../adapters/glonass_l1_ca_pcps_acquisition.h | 4 +- .../glonass_l2_ca_pcps_acquisition.cc | 4 +- .../adapters/glonass_l2_ca_pcps_acquisition.h | 4 +- .../adapters/gps_l1_ca_pcps_acquisition.cc | 4 +- .../adapters/gps_l1_ca_pcps_acquisition.h | 4 +- ...gps_l1_ca_pcps_acquisition_fine_doppler.cc | 4 +- .../gps_l1_ca_pcps_acquisition_fine_doppler.h | 4 +- .../gps_l1_ca_pcps_acquisition_fpga.cc | 4 +- .../gps_l1_ca_pcps_acquisition_fpga.h | 4 +- .../gps_l1_ca_pcps_assisted_acquisition.cc | 4 +- .../gps_l1_ca_pcps_assisted_acquisition.h | 4 +- .../gps_l1_ca_pcps_opencl_acquisition.cc | 4 +- .../gps_l1_ca_pcps_opencl_acquisition.h | 4 +- .../gps_l1_ca_pcps_quicksync_acquisition.cc | 4 +- .../gps_l1_ca_pcps_quicksync_acquisition.h | 4 +- .../gps_l1_ca_pcps_tong_acquisition.cc | 4 +- .../gps_l1_ca_pcps_tong_acquisition.h | 4 +- .../adapters/gps_l2_m_pcps_acquisition.cc | 4 +- .../adapters/gps_l2_m_pcps_acquisition.h | 4 +- .../adapters/gps_l5i_pcps_acquisition.cc | 4 +- .../adapters/gps_l5i_pcps_acquisition.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- ...o_e5a_noncoherent_iq_acquisition_caf_cc.cc | 4 +- ...eo_e5a_noncoherent_iq_acquisition_caf_cc.h | 4 +- .../galileo_pcps_8ms_acquisition_cc.cc | 4 +- .../galileo_pcps_8ms_acquisition_cc.h | 4 +- .../gnuradio_blocks/pcps_acquisition.cc | 4 +- .../gnuradio_blocks/pcps_acquisition.h | 4 +- .../pcps_acquisition_fine_doppler_cc.cc | 4 +- .../pcps_acquisition_fine_doppler_cc.h | 4 +- .../gnuradio_blocks/pcps_acquisition_fpga.cc | 4 +- .../gnuradio_blocks/pcps_acquisition_fpga.h | 4 +- .../pcps_assisted_acquisition_cc.cc | 4 +- .../pcps_assisted_acquisition_cc.h | 4 +- .../pcps_cccwsr_acquisition_cc.cc | 4 +- .../pcps_cccwsr_acquisition_cc.h | 4 +- .../pcps_opencl_acquisition_cc.cc | 4 +- .../pcps_opencl_acquisition_cc.h | 4 +- .../pcps_quicksync_acquisition_cc.cc | 4 +- .../pcps_quicksync_acquisition_cc.h | 4 +- .../pcps_tong_acquisition_cc.cc | 4 +- .../pcps_tong_acquisition_cc.h | 4 +- .../acquisition/libs/CMakeLists.txt | 4 +- .../acquisition/libs/fpga_acquisition.cc | 4 +- .../acquisition/libs/fpga_acquisition.h | 4 +- src/algorithms/channel/CMakeLists.txt | 4 +- .../channel/adapters/CMakeLists.txt | 4 +- src/algorithms/channel/adapters/channel.cc | 4 +- src/algorithms/channel/adapters/channel.h | 4 +- src/algorithms/channel/libs/CMakeLists.txt | 4 +- src/algorithms/channel/libs/channel_fsm.cc | 4 +- src/algorithms/channel/libs/channel_fsm.h | 4 +- .../channel/libs/channel_msg_receiver_cc.cc | 4 +- .../channel/libs/channel_msg_receiver_cc.h | 4 +- src/algorithms/conditioner/CMakeLists.txt | 4 +- .../conditioner/adapters/CMakeLists.txt | 4 +- .../adapters/array_signal_conditioner.cc | 4 +- .../adapters/array_signal_conditioner.h | 4 +- .../adapters/signal_conditioner.cc | 4 +- .../conditioner/adapters/signal_conditioner.h | 4 +- .../data_type_adapter/CMakeLists.txt | 4 +- .../data_type_adapter/adapters/CMakeLists.txt | 4 +- .../adapters/byte_to_short.cc | 4 +- .../adapters/byte_to_short.h | 4 +- .../adapters/ibyte_to_cbyte.cc | 4 +- .../adapters/ibyte_to_cbyte.h | 4 +- .../adapters/ibyte_to_complex.cc | 4 +- .../adapters/ibyte_to_complex.h | 4 +- .../adapters/ibyte_to_cshort.cc | 4 +- .../adapters/ibyte_to_cshort.h | 4 +- .../adapters/ishort_to_complex.cc | 4 +- .../adapters/ishort_to_complex.h | 4 +- .../adapters/ishort_to_cshort.cc | 4 +- .../adapters/ishort_to_cshort.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- .../interleaved_byte_to_complex_byte.cc | 4 +- .../interleaved_byte_to_complex_byte.h | 4 +- .../interleaved_byte_to_complex_short.cc | 4 +- .../interleaved_byte_to_complex_short.h | 4 +- .../interleaved_short_to_complex_short.cc | 4 +- .../interleaved_short_to_complex_short.h | 4 +- src/algorithms/input_filter/CMakeLists.txt | 4 +- .../input_filter/adapters/CMakeLists.txt | 4 +- .../adapters/beamformer_filter.cc | 4 +- .../input_filter/adapters/beamformer_filter.h | 4 +- .../input_filter/adapters/fir_filter.cc | 4 +- .../input_filter/adapters/fir_filter.h | 4 +- .../adapters/freq_xlating_fir_filter.cc | 4 +- .../adapters/freq_xlating_fir_filter.h | 4 +- .../input_filter/adapters/notch_filter.cc | 4 +- .../input_filter/adapters/notch_filter.h | 4 +- .../adapters/notch_filter_lite.cc | 4 +- .../input_filter/adapters/notch_filter_lite.h | 4 +- .../adapters/pulse_blanking_filter.cc | 4 +- .../adapters/pulse_blanking_filter.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- .../gnuradio_blocks/beamformer.cc | 4 +- .../input_filter/gnuradio_blocks/beamformer.h | 4 +- .../input_filter/gnuradio_blocks/notch_cc.cc | 4 +- .../input_filter/gnuradio_blocks/notch_cc.h | 4 +- .../gnuradio_blocks/notch_lite_cc.cc | 4 +- .../gnuradio_blocks/notch_lite_cc.h | 4 +- .../gnuradio_blocks/pulse_blanking_cc.cc | 4 +- .../gnuradio_blocks/pulse_blanking_cc.h | 4 +- src/algorithms/libs/CMakeLists.txt | 4 +- .../libs/byte_x2_to_complex_byte.cc | 4 +- src/algorithms/libs/byte_x2_to_complex_byte.h | 4 +- .../libs/complex_byte_to_float_x2.cc | 4 +- .../libs/complex_byte_to_float_x2.h | 4 +- .../libs/complex_float_to_complex_byte.cc | 4 +- .../libs/complex_float_to_complex_byte.h | 4 +- src/algorithms/libs/conjugate_cc.cc | 4 +- src/algorithms/libs/conjugate_cc.h | 4 +- src/algorithms/libs/conjugate_ic.cc | 4 +- src/algorithms/libs/conjugate_ic.h | 4 +- src/algorithms/libs/conjugate_sc.cc | 4 +- src/algorithms/libs/conjugate_sc.h | 4 +- src/algorithms/libs/cshort_to_float_x2.cc | 4 +- src/algorithms/libs/cshort_to_float_x2.h | 4 +- .../libs/galileo_e1_signal_processing.cc | 4 +- .../libs/galileo_e1_signal_processing.h | 4 +- .../libs/galileo_e5_signal_processing.cc | 4 +- .../libs/galileo_e5_signal_processing.h | 4 +- .../libs/glonass_l1_signal_processing.cc | 4 +- .../libs/glonass_l1_signal_processing.h | 4 +- .../libs/glonass_l2_signal_processing.cc | 4 +- .../libs/glonass_l2_signal_processing.h | 4 +- src/algorithms/libs/gnss_circular_deque.h | 2 +- src/algorithms/libs/gnss_sdr_flags.cc | 2 +- src/algorithms/libs/gnss_sdr_flags.h | 2 +- .../libs/gnss_sdr_sample_counter.cc | 2 +- src/algorithms/libs/gnss_sdr_sample_counter.h | 2 +- src/algorithms/libs/gnss_sdr_time_counter.cc | 2 +- src/algorithms/libs/gnss_sdr_time_counter.h | 2 +- src/algorithms/libs/gnss_sdr_valve.cc | 4 +- src/algorithms/libs/gnss_sdr_valve.h | 4 +- src/algorithms/libs/gnss_signal_processing.cc | 4 +- src/algorithms/libs/gnss_signal_processing.h | 4 +- src/algorithms/libs/gps_l2c_signal.cc | 4 +- src/algorithms/libs/gps_l2c_signal.h | 4 +- src/algorithms/libs/gps_l5_signal.cc | 4 +- src/algorithms/libs/gps_l5_signal.h | 4 +- .../libs/gps_sdr_signal_processing.cc | 4 +- .../libs/gps_sdr_signal_processing.h | 4 +- src/algorithms/libs/pass_through.cc | 4 +- src/algorithms/libs/pass_through.h | 4 +- src/algorithms/libs/rtklib/CMakeLists.txt | 4 +- .../libs/rtklib/rtklib_conversions.cc | 4 +- .../libs/rtklib/rtklib_conversions.h | 4 +- src/algorithms/libs/short_x2_to_cshort.cc | 4 +- src/algorithms/libs/short_x2_to_cshort.h | 4 +- .../volk_gnsssdr/CMakeLists.txt | 4 +- .../volk_gnsssdr_module/volk_gnsssdr/COPYING | 8 +- .../volk_gnsssdr/apps/CMakeLists.txt | 4 +- .../apps/volk_gnsssdr-config-info.cc | 2 +- .../apps/volk_gnsssdr_option_helpers.cc | 2 +- .../apps/volk_gnsssdr_option_helpers.h | 2 +- .../volk_gnsssdr/apps/volk_gnsssdr_profile.cc | 2 +- .../volk_gnsssdr/apps/volk_gnsssdr_profile.h | 4 +- .../volk_gnsssdr/cmake/Modules/FindORC.cmake | 2 +- .../cmake/Modules/VolkAddTest.cmake | 2 +- .../cmake/Modules/VolkBoost.cmake | 2 +- .../cmake/Modules/VolkBuildTypes.cmake | 2 +- .../cmake/Modules/VolkGnsssdrConfig.cmake.in | 2 +- .../Modules/VolkGnsssdrConfigVersion.cmake.in | 2 +- .../cmake/Modules/VolkPython.cmake | 2 +- .../cmake/Modules/VolkVersion.cmake | 2 +- .../arm_cortex_a15_hardfp_native.cmake | 2 +- .../arm_cortex_a9_hardfp_native.cmake | 2 +- .../cmake/cmake_uninstall.cmake.in | 2 +- .../volk_gnsssdr/cmake/msvc/config.h | 4 +- .../gen/volk_gnsssdr_arch_defs.py | 4 +- .../gen/volk_gnsssdr_compile_utils.py | 4 +- .../gen/volk_gnsssdr_kernel_defs.py | 4 +- .../gen/volk_gnsssdr_machine_defs.py | 4 +- .../gen/volk_gnsssdr_tmpl_utils.py | 4 +- .../include/volk_gnsssdr/constants.h | 4 +- .../volk_gnsssdr/saturation_arithmetic.h | 4 +- .../volk_gnsssdr_avx_intrinsics.h | 4 +- .../volk_gnsssdr/volk_gnsssdr_common.h | 4 +- .../volk_gnsssdr/volk_gnsssdr_complex.h | 4 +- .../volk_gnsssdr/volk_gnsssdr_malloc.h | 4 +- .../volk_gnsssdr_neon_intrinsics.h | 4 +- .../include/volk_gnsssdr/volk_gnsssdr_prefs.h | 4 +- .../volk_gnsssdr/volk_gnsssdr_sine_table.h | 4 +- .../volk_gnsssdr_sse3_intrinsics.h | 4 +- .../volk_gnsssdr_sse_intrinsics.h | 4 +- ..._16sc_magnitude_32f_aligned16_orc_impl.orc | 4 +- .../asm/orc/volk_gnsssdr_32f_x2_add_32f.orc | 4 +- .../volk_gnsssdr_32fc_s32fc_multiply_32fc.orc | 4 +- .../volk_gnsssdr_32fc_x2_multiply_32fc.orc | 4 +- .../orc/volk_gnsssdr_8i_accumulator_s8i.orc | 4 +- .../asm/orc/volk_gnsssdr_8i_x2_add_8i.orc | 4 +- .../orc/volk_gnsssdr_8ic_conjugate_8ic.orc | 4 +- .../volk_gnsssdr_8ic_magnitude_squared_8i.orc | 4 +- .../volk_gnsssdr_8ic_s8ic_multiply_8ic.orc | 4 +- .../orc/volk_gnsssdr_8ic_x2_dot_prod_8ic.orc | 4 +- .../orc/volk_gnsssdr_8ic_x2_multiply_8ic.orc | 4 +- ...volk_gnsssdr_8ic_x5_cw_epl_corr_8ic_x3.orc | 4 +- .../orc/volk_gnsssdr_8u_x2_multiply_8u.orc | 4 +- .../volk_gnsssdr_16i_resamplerxnpuppet_16i.h | 4 +- .../volk_gnsssdr_16i_xn_resampler_16i_xn.h | 4 +- ...nsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h | 4 +- ...dr_16ic_16i_rotator_dotprodxnpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_conjugate_16ic.h | 4 +- .../volk_gnsssdr_16ic_convert_32fc.h | 4 +- .../volk_gnsssdr_16ic_resampler_fast_16ic.h | 4 +- ...lk_gnsssdr_16ic_resamplerfastpuppet_16ic.h | 4 +- ..._gnsssdr_16ic_resamplerfastxnpuppet_16ic.h | 4 +- ...volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_rotatorpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h | 4 +- .../volk_gnsssdr_16ic_x2_dot_prod_16ic.h | 4 +- .../volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h | 4 +- ...olk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_x2_multiply_16ic.h | 4 +- ...gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h | 4 +- ...sdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h | 4 +- .../volk_gnsssdr_16ic_xn_resampler_16ic_xn.h | 4 +- ...k_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h | 4 +- .../volk_gnsssdr_32f_index_max_32u.h | 4 +- .../volk_gnsssdr_32f_resamplerxnpuppet_32f.h | 4 +- .../volk_gnsssdr_32f_xn_resampler_32f_xn.h | 4 +- ...nsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h | 4 +- ...dr_32fc_32f_rotator_dotprodxnpuppet_32fc.h | 4 +- .../volk_gnsssdr_32fc_convert_16ic.h | 4 +- .../volk_gnsssdr_32fc_convert_8ic.h | 4 +- ...volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h | 4 +- ...gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h | 4 +- ...sdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h | 4 +- .../volk_gnsssdr_32fc_xn_resampler_32fc_xn.h | 4 +- .../volk_gnsssdr_64f_accumulator_64f.h | 4 +- .../volk_gnsssdr_8i_accumulator_s8i.h | 4 +- .../volk_gnsssdr_8i_index_max_16u.h | 4 +- .../volk_gnsssdr/volk_gnsssdr_8i_max_s8i.h | 4 +- .../volk_gnsssdr/volk_gnsssdr_8i_x2_add_8i.h | 4 +- .../volk_gnsssdr_8ic_conjugate_8ic.h | 4 +- .../volk_gnsssdr_8ic_magnitude_squared_8i.h | 4 +- .../volk_gnsssdr_8ic_s8ic_multiply_8ic.h | 4 +- .../volk_gnsssdr_8ic_x2_dot_prod_8ic.h | 4 +- .../volk_gnsssdr_8ic_x2_multiply_8ic.h | 4 +- .../volk_gnsssdr_8u_x2_multiply_8u.h | 4 +- .../volk_gnsssdr_s32f_sincospuppet_32fc.h | 4 +- .../volk_gnsssdr/lib/CMakeLists.txt | 4 +- .../volk_gnsssdr/lib/constants.c.in | 4 +- .../volk_gnsssdr/lib/kernel_tests.h | 4 +- .../volk_gnsssdr/lib/qa_utils.cc | 2 +- .../volk_gnsssdr/lib/qa_utils.h | 2 +- .../volk_gnsssdr/lib/testqa.cc | 2 +- .../volk_gnsssdr/lib/volk_gnsssdr_malloc.c | 4 +- .../volk_gnsssdr/lib/volk_gnsssdr_prefs.c | 4 +- .../lib/volk_gnsssdr_rank_archs.c | 4 +- .../lib/volk_gnsssdr_rank_archs.h | 4 +- .../volk_gnsssdr_modtool/CMakeLists.txt | 4 +- .../python/volk_gnsssdr_modtool/__init__.py | 4 +- .../python/volk_gnsssdr_modtool/cfg.py | 4 +- .../volk_gnsssdr_modtool/volk_gnsssdr_modtool | 4 +- .../volk_gnsssdr_modtool_generate.py | 2 +- .../volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c | 4 +- .../volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h | 4 +- .../tmpl/volk_gnsssdr_config_fixed.tmpl.h | 4 +- .../volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c | 4 +- .../volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h | 4 +- .../tmpl/volk_gnsssdr_machine_xxx.tmpl.c | 4 +- .../tmpl/volk_gnsssdr_machines.tmpl.c | 4 +- .../tmpl/volk_gnsssdr_machines.tmpl.h | 4 +- .../tmpl/volk_gnsssdr_typedefs.tmpl.h | 4 +- src/algorithms/observables/CMakeLists.txt | 4 +- .../observables/adapters/CMakeLists.txt | 4 +- .../adapters/hybrid_observables.cc | 4 +- .../observables/adapters/hybrid_observables.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- .../gnuradio_blocks/hybrid_observables_cc.cc | 2 +- .../gnuradio_blocks/hybrid_observables_cc.h | 2 +- src/algorithms/resampler/CMakeLists.txt | 4 +- .../resampler/adapters/CMakeLists.txt | 2 +- .../adapters/direct_resampler_conditioner.cc | 4 +- .../adapters/direct_resampler_conditioner.h | 4 +- .../adapters/mmse_resampler_conditioner.cc | 2 +- .../adapters/mmse_resampler_conditioner.h | 2 +- .../resampler/gnuradio_blocks/CMakeLists.txt | 4 +- .../direct_resampler_conditioner_cb.cc | 4 +- .../direct_resampler_conditioner_cb.h | 4 +- .../direct_resampler_conditioner_cc.cc | 4 +- .../direct_resampler_conditioner_cc.h | 4 +- .../direct_resampler_conditioner_cs.cc | 4 +- .../direct_resampler_conditioner_cs.h | 4 +- .../signal_generator/CMakeLists.txt | 4 +- .../signal_generator/adapters/CMakeLists.txt | 4 +- .../adapters/signal_generator.cc | 4 +- .../adapters/signal_generator.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- .../gnuradio_blocks/signal_generator_c.cc | 4 +- .../gnuradio_blocks/signal_generator_c.h | 4 +- src/algorithms/signal_source/CMakeLists.txt | 4 +- .../signal_source/adapters/CMakeLists.txt | 4 +- .../adapters/ad9361_fpga_signal_source.cc | 4 +- .../adapters/ad9361_fpga_signal_source.h | 4 +- .../adapters/file_signal_source.cc | 4 +- .../adapters/file_signal_source.h | 4 +- .../adapters/flexiband_signal_source.cc | 4 +- .../adapters/flexiband_signal_source.h | 4 +- .../adapters/fmcomms2_signal_source.cc | 4 +- .../adapters/fmcomms2_signal_source.h | 4 +- .../adapters/gen_signal_source.cc | 4 +- .../adapters/gen_signal_source.h | 4 +- .../adapters/gn3s_signal_source.cc | 4 +- .../adapters/gn3s_signal_source.h | 4 +- .../adapters/labsat_signal_source.cc | 2 +- .../adapters/labsat_signal_source.h | 2 +- .../adapters/nsr_file_signal_source.cc | 4 +- .../adapters/nsr_file_signal_source.h | 4 +- .../adapters/osmosdr_signal_source.cc | 4 +- .../adapters/osmosdr_signal_source.h | 4 +- .../adapters/plutosdr_signal_source.cc | 4 +- .../adapters/plutosdr_signal_source.h | 4 +- .../adapters/raw_array_signal_source.cc | 4 +- .../adapters/raw_array_signal_source.h | 4 +- .../adapters/rtl_tcp_signal_source.cc | 4 +- .../adapters/rtl_tcp_signal_source.h | 4 +- .../adapters/spir_file_signal_source.cc | 4 +- .../adapters/spir_file_signal_source.h | 4 +- .../spir_gss6450_file_signal_source.cc | 4 +- .../spir_gss6450_file_signal_source.h | 4 +- .../two_bit_cpx_file_signal_source.cc | 4 +- .../adapters/two_bit_cpx_file_signal_source.h | 4 +- .../two_bit_packed_file_signal_source.cc | 4 +- .../two_bit_packed_file_signal_source.h | 4 +- .../adapters/uhd_signal_source.cc | 4 +- .../adapters/uhd_signal_source.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- .../gnuradio_blocks/labsat23_source.cc | 2 +- .../gnuradio_blocks/labsat23_source.h | 2 +- .../rtl_tcp_signal_source_c.cc | 4 +- .../gnuradio_blocks/rtl_tcp_signal_source_c.h | 4 +- .../gnuradio_blocks/unpack_2bit_samples.cc | 4 +- .../gnuradio_blocks/unpack_2bit_samples.h | 4 +- .../unpack_byte_2bit_cpx_samples.cc | 4 +- .../unpack_byte_2bit_cpx_samples.h | 4 +- .../unpack_byte_2bit_samples.cc | 4 +- .../unpack_byte_2bit_samples.h | 4 +- .../unpack_intspir_1bit_samples.cc | 4 +- .../unpack_intspir_1bit_samples.h | 4 +- .../unpack_spir_gss6450_samples.cc | 4 +- .../unpack_spir_gss6450_samples.h | 4 +- .../signal_source/libs/CMakeLists.txt | 4 +- .../signal_source/libs/ad9361_manager.cc | 2 +- .../signal_source/libs/ad9361_manager.h | 2 +- .../signal_source/libs/fpga_switch.cc | 4 +- .../signal_source/libs/fpga_switch.h | 4 +- .../signal_source/libs/rtl_tcp_commands.cc | 4 +- .../signal_source/libs/rtl_tcp_commands.h | 4 +- .../signal_source/libs/rtl_tcp_dongle_info.cc | 4 +- .../signal_source/libs/rtl_tcp_dongle_info.h | 4 +- .../telemetry_decoder/CMakeLists.txt | 4 +- .../telemetry_decoder/adapters/CMakeLists.txt | 4 +- .../adapters/galileo_e1b_telemetry_decoder.cc | 4 +- .../adapters/galileo_e1b_telemetry_decoder.h | 4 +- .../adapters/galileo_e5a_telemetry_decoder.cc | 4 +- .../adapters/galileo_e5a_telemetry_decoder.h | 4 +- .../glonass_l1_ca_telemetry_decoder.cc | 4 +- .../glonass_l1_ca_telemetry_decoder.h | 4 +- .../glonass_l2_ca_telemetry_decoder.cc | 4 +- .../glonass_l2_ca_telemetry_decoder.h | 4 +- .../adapters/gps_l1_ca_telemetry_decoder.cc | 4 +- .../adapters/gps_l1_ca_telemetry_decoder.h | 4 +- .../adapters/gps_l2c_telemetry_decoder.cc | 4 +- .../adapters/gps_l2c_telemetry_decoder.h | 4 +- .../adapters/gps_l5_telemetry_decoder.cc | 4 +- .../adapters/gps_l5_telemetry_decoder.h | 4 +- .../adapters/sbas_l1_telemetry_decoder.cc | 4 +- .../adapters/sbas_l1_telemetry_decoder.h | 4 +- .../gnuradio_blocks/CMakeLists.txt | 4 +- .../galileo_e1b_telemetry_decoder_cc.cc | 4 +- .../galileo_e1b_telemetry_decoder_cc.h | 4 +- .../galileo_e5a_telemetry_decoder_cc.cc | 4 +- .../galileo_e5a_telemetry_decoder_cc.h | 4 +- .../glonass_l1_ca_telemetry_decoder_cc.cc | 4 +- .../glonass_l1_ca_telemetry_decoder_cc.h | 4 +- .../glonass_l2_ca_telemetry_decoder_cc.cc | 4 +- .../glonass_l2_ca_telemetry_decoder_cc.h | 4 +- .../gps_l1_ca_telemetry_decoder_cc.cc | 4 +- .../gps_l1_ca_telemetry_decoder_cc.h | 4 +- .../gps_l2c_telemetry_decoder_cc.cc | 4 +- .../gps_l2c_telemetry_decoder_cc.h | 4 +- .../gps_l5_telemetry_decoder_cc.cc | 4 +- .../gps_l5_telemetry_decoder_cc.h | 4 +- .../sbas_l1_telemetry_decoder_cc.cc | 4 +- .../sbas_l1_telemetry_decoder_cc.h | 4 +- .../telemetry_decoder/libs/CMakeLists.txt | 4 +- .../libs/gps_l1_ca_subframe_fsm.cc | 4 +- .../libs/gps_l1_ca_subframe_fsm.h | 4 +- .../libs/libswiftcnav/CMakeLists.txt | 4 +- .../libs/libswiftcnav/bits.c | 2 +- .../libs/libswiftcnav/bits.h | 2 +- .../libs/libswiftcnav/cnav_msg.c | 2 +- .../libs/libswiftcnav/cnav_msg.h | 2 +- .../telemetry_decoder/libs/libswiftcnav/edc.c | 2 +- .../telemetry_decoder/libs/libswiftcnav/edc.h | 2 +- .../telemetry_decoder/libs/libswiftcnav/fec.h | 2 +- .../libs/libswiftcnav/swift_common.h | 2 +- .../libs/libswiftcnav/viterbi27.c | 2 +- .../telemetry_decoder/libs/viterbi_decoder.cc | 4 +- .../telemetry_decoder/libs/viterbi_decoder.h | 4 +- src/algorithms/tracking/CMakeLists.txt | 4 +- .../tracking/adapters/CMakeLists.txt | 4 +- .../galileo_e1_dll_pll_veml_tracking.cc | 4 +- .../galileo_e1_dll_pll_veml_tracking.h | 4 +- .../galileo_e1_tcp_connector_tracking.cc | 4 +- .../galileo_e1_tcp_connector_tracking.h | 4 +- .../adapters/galileo_e5a_dll_pll_tracking.cc | 4 +- .../adapters/galileo_e5a_dll_pll_tracking.h | 4 +- .../glonass_l1_ca_dll_pll_c_aid_tracking.cc | 4 +- .../glonass_l1_ca_dll_pll_c_aid_tracking.h | 4 +- .../glonass_l1_ca_dll_pll_tracking.cc | 4 +- .../adapters/glonass_l1_ca_dll_pll_tracking.h | 4 +- .../glonass_l2_ca_dll_pll_c_aid_tracking.cc | 4 +- .../glonass_l2_ca_dll_pll_c_aid_tracking.h | 4 +- .../glonass_l2_ca_dll_pll_tracking.cc | 4 +- .../adapters/glonass_l2_ca_dll_pll_tracking.h | 4 +- .../gps_l1_ca_dll_pll_c_aid_tracking.cc | 4 +- .../gps_l1_ca_dll_pll_c_aid_tracking.h | 4 +- .../adapters/gps_l1_ca_dll_pll_tracking.cc | 4 +- .../adapters/gps_l1_ca_dll_pll_tracking.h | 4 +- .../gps_l1_ca_dll_pll_tracking_fpga.cc | 4 +- .../gps_l1_ca_dll_pll_tracking_fpga.h | 4 +- .../gps_l1_ca_dll_pll_tracking_gpu.cc | 4 +- .../adapters/gps_l1_ca_dll_pll_tracking_gpu.h | 4 +- .../gps_l1_ca_tcp_connector_tracking.cc | 4 +- .../gps_l1_ca_tcp_connector_tracking.h | 4 +- .../adapters/gps_l2_m_dll_pll_tracking.cc | 4 +- .../adapters/gps_l2_m_dll_pll_tracking.h | 4 +- .../adapters/gps_l5_dll_pll_tracking.cc | 4 +- .../adapters/gps_l5_dll_pll_tracking.h | 4 +- .../tracking/gnuradio_blocks/CMakeLists.txt | 4 +- .../gnuradio_blocks/dll_pll_veml_tracking.cc | 2 +- .../gnuradio_blocks/dll_pll_veml_tracking.h | 2 +- .../dll_pll_veml_tracking_fpga.cc | 2 +- .../dll_pll_veml_tracking_fpga.h | 4 +- .../galileo_e1_tcp_connector_tracking_cc.cc | 4 +- .../galileo_e1_tcp_connector_tracking_cc.h | 4 +- ...glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc | 4 +- .../glonass_l1_ca_dll_pll_c_aid_tracking_cc.h | 4 +- ...glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc | 4 +- .../glonass_l1_ca_dll_pll_c_aid_tracking_sc.h | 4 +- .../glonass_l1_ca_dll_pll_tracking_cc.cc | 4 +- .../glonass_l1_ca_dll_pll_tracking_cc.h | 4 +- ...glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc | 4 +- .../glonass_l2_ca_dll_pll_c_aid_tracking_cc.h | 4 +- ...glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc | 4 +- .../glonass_l2_ca_dll_pll_c_aid_tracking_sc.h | 4 +- .../glonass_l2_ca_dll_pll_tracking_cc.cc | 4 +- .../glonass_l2_ca_dll_pll_tracking_cc.h | 4 +- .../gps_l1_ca_dll_pll_c_aid_tracking_cc.cc | 4 +- .../gps_l1_ca_dll_pll_c_aid_tracking_cc.h | 4 +- .../gps_l1_ca_dll_pll_c_aid_tracking_sc.cc | 4 +- .../gps_l1_ca_dll_pll_c_aid_tracking_sc.h | 4 +- .../gps_l1_ca_dll_pll_tracking_gpu_cc.cc | 4 +- .../gps_l1_ca_dll_pll_tracking_gpu_cc.h | 4 +- .../gps_l1_ca_tcp_connector_tracking_cc.cc | 4 +- .../gps_l1_ca_tcp_connector_tracking_cc.h | 4 +- src/algorithms/tracking/libs/CMakeLists.txt | 4 +- .../tracking/libs/cpu_multicorrelator.cc | 4 +- .../tracking/libs/cpu_multicorrelator.h | 4 +- .../tracking/libs/cpu_multicorrelator_16sc.cc | 4 +- .../tracking/libs/cpu_multicorrelator_16sc.h | 4 +- .../libs/cpu_multicorrelator_real_codes.cc | 4 +- .../libs/cpu_multicorrelator_real_codes.h | 4 +- .../tracking/libs/cuda_multicorrelator.cu | 4 +- .../tracking/libs/cuda_multicorrelator.h | 4 +- .../tracking/libs/fpga_multicorrelator.cc | 4 +- .../tracking/libs/fpga_multicorrelator.h | 4 +- .../tracking/libs/lock_detectors.cc | 4 +- src/algorithms/tracking/libs/lock_detectors.h | 4 +- .../tracking/libs/tcp_communication.cc | 4 +- .../tracking/libs/tcp_communication.h | 4 +- .../tracking/libs/tcp_packet_data.cc | 4 +- .../tracking/libs/tcp_packet_data.h | 4 +- .../tracking/libs/tracking_2nd_DLL_filter.cc | 4 +- .../tracking/libs/tracking_2nd_DLL_filter.h | 4 +- .../tracking/libs/tracking_2nd_PLL_filter.cc | 4 +- .../tracking/libs/tracking_2nd_PLL_filter.h | 4 +- .../tracking/libs/tracking_FLL_PLL_filter.cc | 4 +- .../tracking/libs/tracking_FLL_PLL_filter.h | 4 +- .../tracking/libs/tracking_discriminators.cc | 4 +- .../tracking/libs/tracking_discriminators.h | 4 +- .../tracking/libs/tracking_loop_filter.cc | 4 +- .../tracking/libs/tracking_loop_filter.h | 4 +- src/core/CMakeLists.txt | 4 +- src/core/interfaces/acquisition_interface.h | 4 +- src/core/interfaces/channel_interface.h | 4 +- src/core/interfaces/configuration_interface.h | 4 +- src/core/interfaces/gnss_block_interface.h | 4 +- src/core/interfaces/observables_interface.h | 4 +- src/core/interfaces/pvt_interface.h | 4 +- .../interfaces/telemetry_decoder_interface.h | 4 +- src/core/interfaces/tracking_interface.h | 4 +- src/core/libs/CMakeLists.txt | 4 +- src/core/libs/gnss_sdr_supl_client.cc | 4 +- src/core/libs/gnss_sdr_supl_client.h | 4 +- src/core/libs/string_converter.cc | 4 +- src/core/libs/string_converter.h | 4 +- src/core/libs/supl/CMakeLists.txt | 4 +- src/core/receiver/CMakeLists.txt | 4 +- src/core/receiver/concurrent_map.h | 4 +- src/core/receiver/concurrent_queue.h | 4 +- src/core/receiver/control_message.h | 4 +- src/core/receiver/control_message_factory.cc | 4 +- src/core/receiver/control_message_factory.h | 4 +- src/core/receiver/control_thread.cc | 4 +- src/core/receiver/control_thread.h | 4 +- src/core/receiver/file_configuration.cc | 4 +- src/core/receiver/file_configuration.h | 4 +- src/core/receiver/gnss_block_factory.cc | 4 +- src/core/receiver/gnss_block_factory.h | 4 +- src/core/receiver/gnss_flowgraph.cc | 2 +- src/core/receiver/gnss_flowgraph.h | 4 +- src/core/receiver/in_memory_configuration.cc | 4 +- src/core/receiver/in_memory_configuration.h | 4 +- src/core/system_parameters/CMakeLists.txt | 4 +- src/core/system_parameters/GLONASS_L1_L2_CA.h | 4 +- src/core/system_parameters/GPS_CNAV.h | 4 +- src/core/system_parameters/GPS_L1_CA.h | 4 +- src/core/system_parameters/GPS_L2C.h | 4 +- src/core/system_parameters/GPS_L5.h | 4 +- src/core/system_parameters/Galileo_E1.h | 4 +- src/core/system_parameters/Galileo_E5a.h | 4 +- src/core/system_parameters/MATH_CONSTANTS.h | 4 +- src/core/system_parameters/display.h | 2 +- src/core/system_parameters/galileo_almanac.cc | 4 +- src/core/system_parameters/galileo_almanac.h | 4 +- .../system_parameters/galileo_ephemeris.cc | 4 +- .../system_parameters/galileo_ephemeris.h | 4 +- .../system_parameters/galileo_fnav_message.cc | 4 +- .../system_parameters/galileo_fnav_message.h | 4 +- src/core/system_parameters/galileo_iono.cc | 4 +- src/core/system_parameters/galileo_iono.h | 4 +- .../galileo_navigation_message.cc | 4 +- .../galileo_navigation_message.h | 4 +- .../system_parameters/galileo_utc_model.cc | 4 +- .../system_parameters/galileo_utc_model.h | 4 +- .../system_parameters/glonass_gnav_almanac.cc | 4 +- .../system_parameters/glonass_gnav_almanac.h | 4 +- .../glonass_gnav_ephemeris.cc | 4 +- .../glonass_gnav_ephemeris.h | 4 +- .../glonass_gnav_navigation_message.cc | 4 +- .../glonass_gnav_navigation_message.h | 4 +- .../glonass_gnav_utc_model.cc | 4 +- .../glonass_gnav_utc_model.h | 4 +- src/core/system_parameters/gnss_frequencies.h | 4 +- src/core/system_parameters/gnss_obs_codes.h | 4 +- src/core/system_parameters/gnss_satellite.cc | 4 +- src/core/system_parameters/gnss_satellite.h | 4 +- src/core/system_parameters/gnss_signal.cc | 4 +- src/core/system_parameters/gnss_signal.h | 4 +- src/core/system_parameters/gnss_synchro.h | 4 +- src/core/system_parameters/gps_acq_assist.cc | 4 +- src/core/system_parameters/gps_acq_assist.h | 4 +- src/core/system_parameters/gps_almanac.cc | 4 +- src/core/system_parameters/gps_almanac.h | 4 +- .../system_parameters/gps_cnav_ephemeris.cc | 4 +- .../system_parameters/gps_cnav_ephemeris.h | 4 +- src/core/system_parameters/gps_cnav_iono.cc | 4 +- src/core/system_parameters/gps_cnav_iono.h | 4 +- .../gps_cnav_navigation_message.cc | 4 +- .../gps_cnav_navigation_message.h | 4 +- .../system_parameters/gps_cnav_utc_model.cc | 4 +- .../system_parameters/gps_cnav_utc_model.h | 4 +- src/core/system_parameters/gps_ephemeris.cc | 4 +- src/core/system_parameters/gps_ephemeris.h | 4 +- src/core/system_parameters/gps_iono.cc | 4 +- src/core/system_parameters/gps_iono.h | 4 +- .../gps_navigation_message.cc | 4 +- .../gps_navigation_message.h | 4 +- .../system_parameters/gps_ref_location.cc | 4 +- src/core/system_parameters/gps_ref_location.h | 4 +- src/core/system_parameters/gps_ref_time.cc | 4 +- src/core/system_parameters/gps_ref_time.h | 4 +- src/core/system_parameters/gps_utc_model.cc | 4 +- src/core/system_parameters/gps_utc_model.h | 4 +- src/core/system_parameters/rtcm.cc | 4 +- src/core/system_parameters/rtcm.h | 4 +- src/core/system_parameters/sbas_ephemeris.cc | 4 +- src/core/system_parameters/sbas_ephemeris.h | 4 +- src/main/CMakeLists.txt | 4 +- src/main/main.cc | 2 +- src/tests/CMakeLists.txt | 4 +- src/tests/common-files/gnuplot_i.h | 4 +- .../common-files/signal_generator_flags.h | 4 +- src/tests/common-files/test_flags.h | 4 +- src/tests/single_test_main.cc | 4 +- .../system-tests/obs_gps_l1_system_test.cc | 4 +- src/tests/system-tests/obs_system_test.cc | 4 +- src/tests/system-tests/position_test.cc | 4 +- src/tests/system-tests/ttff_gps_l1.cc | 4 +- src/tests/test_main.cc | 4 +- .../arithmetic/code_generation_test.cc | 4 +- .../arithmetic/complex_carrier_test.cc | 4 +- .../unit-tests/arithmetic/conjugate_test.cc | 4 +- .../unit-tests/arithmetic/fft_length_test.cc | 4 +- .../unit-tests/arithmetic/fft_speed_test.cc | 4 +- .../arithmetic/magnitude_squared_test.cc | 4 +- src/tests/unit-tests/arithmetic/matio_test.cc | 4 +- .../unit-tests/arithmetic/multiply_test.cc | 4 +- .../control_message_factory_test.cc | 4 +- .../control-plane/control_thread_test.cc | 4 +- .../control-plane/file_configuration_test.cc | 4 +- .../control-plane/gnss_block_factory_test.cc | 4 +- .../control-plane/gnss_flowgraph_test.cc | 4 +- .../in_memory_configuration_test.cc | 4 +- .../control-plane/string_converter_test.cc | 4 +- ...8ms_ambiguous_acquisition_gsoc2013_test.cc | 4 +- ...cps_ambiguous_acquisition_gsoc2013_test.cc | 4 +- ...e1_pcps_ambiguous_acquisition_gsoc_test.cc | 4 +- ...ileo_e1_pcps_ambiguous_acquisition_test.cc | 4 +- ...wsr_ambiguous_acquisition_gsoc2013_test.cc | 4 +- ...ync_ambiguous_acquisition_gsoc2014_test.cc | 4 +- ...ong_ambiguous_acquisition_gsoc2013_test.cc | 4 +- ...cps_acquisition_gsoc2014_gensource_test.cc | 4 +- ...ss_l1_ca_pcps_acquisition_gsoc2017_test.cc | 4 +- .../glonass_l1_ca_pcps_acquisition_test.cc | 4 +- .../glonass_l2_ca_pcps_acquisition_test.cc | 4 +- ...ps_l1_ca_pcps_acquisition_gsoc2013_test.cc | 4 +- .../gps_l1_ca_pcps_acquisition_test.cc | 4 +- .../gps_l1_ca_pcps_acquisition_test_fpga.cc | 4 +- ...a_pcps_opencl_acquisition_gsoc2013_test.cc | 4 +- ...cps_quicksync_acquisition_gsoc2014_test.cc | 4 +- ..._ca_pcps_tong_acquisition_gsoc2013_test.cc | 4 +- .../gps_l2_m_pcps_acquisition_test.cc | 4 +- .../adapter/adapter_test.cc | 4 +- .../adapter/pass_through_test.cc | 4 +- .../filter/fir_filter_test.cc | 4 +- .../filter/notch_filter_lite_test.cc | 4 +- .../filter/notch_filter_test.cc | 4 +- .../filter/pulse_blanking_filter_test.cc | 4 +- .../libs/CMakeLists.txt | 4 +- .../libs/acquisition_dump_reader.cc | 2 +- .../libs/acquisition_dump_reader.h | 2 +- .../libs/observables_dump_reader.cc | 4 +- .../libs/observables_dump_reader.h | 4 +- .../libs/tlm_dump_reader.cc | 4 +- .../libs/tlm_dump_reader.h | 4 +- .../libs/tracking_dump_reader.cc | 4 +- .../libs/tracking_dump_reader.h | 4 +- .../libs/tracking_true_obs_reader.cc | 4 +- .../libs/tracking_true_obs_reader.h | 4 +- .../libs/true_observables_reader.cc | 4 +- .../libs/true_observables_reader.h | 4 +- .../observables/hybrid_observables_test.cc | 4 +- .../pvt/nmea_printer_test.cc | 4 +- .../pvt/rinex_printer_test.cc | 4 +- .../pvt/rtcm_printer_test.cc | 4 +- .../signal-processing-blocks/pvt/rtcm_test.cc | 4 +- .../direct_resampler_conditioner_cc_test.cc | 4 +- .../resampler/mmse_resampler_test.cc | 2 +- .../sources/file_signal_source_test.cc | 4 +- .../sources/gnss_sdr_valve_test.cc | 4 +- .../sources/unpack_2bit_samples_test.cc | 4 +- .../gps_l1_ca_telemetry_decoder_test.cc | 4 +- .../cpu_multicorrelator_real_codes_test.cc | 4 +- .../tracking/cpu_multicorrelator_test.cc | 4 +- .../galileo_e1_dll_pll_veml_tracking_test.cc | 4 +- .../tracking/galileo_e5a_tracking_test.cc | 4 +- ...onass_l1_ca_dll_pll_c_aid_tracking_test.cc | 4 +- .../glonass_l1_ca_dll_pll_tracking_test.cc | 4 +- .../gps_l1_ca_dll_pll_tracking_test.cc | 4 +- .../gps_l1_ca_dll_pll_tracking_test_fpga.cc | 4 +- .../gps_l2_m_dll_pll_tracking_test.cc | 4 +- .../tracking/gpu_multicorrelator_test.cc | 4 +- .../tracking/tracking_loop_filter_test.cc | 4 +- .../glonass_gnav_ephemeris_test.cc | 4 +- .../glonass_gnav_nav_message_test.cc | 4 +- src/utils/CMakeLists.txt | 4 +- src/utils/front-end-cal/CMakeLists.txt | 4 +- src/utils/front-end-cal/front_end_cal.cc | 4 +- src/utils/front-end-cal/front_end_cal.h | 4 +- src/utils/front-end-cal/main.cc | 6 +- src/utils/gpstk/gnsspvt/src/gnsspvt.cpp | 2 +- .../gpstk/gnsspvt/src/kml_printer_gpstk.cpp | 2 +- .../gpstk/gnsspvt/src/kml_printer_gpstk.h | 4 +- src/utils/matlab/dll_pll_veml_plot_sample.m | 2 +- .../galileo_e1_dll_pll_veml_plot_sample.m | 2 +- .../matlab/galileo_e5a_dll_pll_plot_sample.m | 2 +- .../matlab/glonass_ca_dll_pll_plot_sample.m | 2 +- .../matlab/gps_l1_ca_dll_pll_plot_sample.m | 2 +- .../gps_l1_ca_pvt_plot_sample_agilent_cap2.m | 2 +- .../matlab/gps_l1_ca_pvt_raw_plot_sample.m | 2 +- .../matlab/gps_l1_ca_telemetry_plot_sample.m | 2 +- src/utils/matlab/help_script1.m | 2 +- src/utils/matlab/help_script2.m | 2 +- .../matlab/hybrid_observables_plot_sample.m | 2 +- .../libs/dll_pll_veml_read_tracking_dump.m | 2 +- .../gps_l1_ca_dll_pll_read_tracking_dump.m | 2 +- .../matlab/libs/gps_l1_ca_pvt_read_pvt_dump.m | 2 +- .../matlab/libs/gps_l1_ca_read_pvt_raw_dump.m | 2 +- .../libs/gps_l1_ca_read_telemetry_dump.m | 2 +- src/utils/matlab/libs/plotNavigation.m | 2 +- src/utils/matlab/libs/read_complex_binary.m | 2 +- .../matlab/libs/read_complex_char_binary.m | 2 +- .../matlab/libs/read_complex_short_binary.m | 2 +- .../libs/read_hybrid_observables_dump.m | 2 +- .../libs/read_true_sim_observables_dump.m | 2 +- src/utils/matlab/plot_acq_grid.m | 2 +- src/utils/matlab/plot_acq_grid_gsoc.m | 2 +- src/utils/matlab/plot_acq_grid_gsoc_e5.m | 2 +- src/utils/matlab/plot_acq_grid_gsoc_glonass.m | 2 +- .../reproducibility/ieee-access18/plot_dump.m | 2 +- ...ss_sdr_tcp_connector_parallel_tracking.txt | 2 +- ...dr_tcp_connector_parallel_tracking_start.m | 2 +- .../gnss_sdr_tcp_connector_tracking_lib.mdl | 4 +- ..._sdr_galileo_e1_tcp_connector_tracking.txt | 2 +- ...README_gnss_sdr_tcp_connector_tracking.txt | 2 +- ..._galileo_e1_tcp_connector_tracking_lib.mdl | 4 +- ..._galileo_e1_tcp_connector_tracking_start.m | 2 +- .../gnss_sdr_tcp_connector_tracking_lib.mdl | 4 +- .../gnss_sdr_tcp_connector_tracking_start.m | 2 +- 795 files changed, 1594 insertions(+), 1598 deletions(-) diff --git a/AUTHORS b/AUTHORS index 20a6511a7..0416cfe97 100644 --- a/AUTHORS +++ b/AUTHORS @@ -23,7 +23,7 @@ Contact Information Mailing Lists ---------------------------- gnss-sdr-developers@lists.sourceforge.net - http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers + https://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers Email diff --git a/CMakeLists.txt b/CMakeLists.txt index 22b0eb57a..fbdd1fd67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # ######################################################################## diff --git a/COPYING b/COPYING index 818433ecc..8859f3d09 100644 --- a/COPYING +++ b/COPYING @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/README.md b/README.md index 98ae27efa..55eb8d21b 100644 --- a/README.md +++ b/README.md @@ -1360,7 +1360,7 @@ More documentation at the [PVT Blocks page](https://gnss-sdr.org/docs/sp-blocks/ About the software license ========================== -GNSS-SDR is released under the [General Public License (GPL) v3](http://www.gnu.org/licenses/gpl.html), thus securing practical usability, inspection, and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. The GPL implies that: +GNSS-SDR is released under the [General Public License (GPL) v3](https://www.gnu.org/licenses/gpl.html), thus securing practical usability, inspection, and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. The GPL implies that: 1. Copies may be distributed free of charge or for money, but the source code has to be shipped or provided free of charge (or at cost price) on demand. The receiver of the source code has the same rights meaning he can share copies free of charge or resell. 2. The licensed material may be analyzed or modified. diff --git a/cmake/Modules/FindGFORTRAN.cmake b/cmake/Modules/FindGFORTRAN.cmake index c9a7c2c6f..eec7a4265 100644 --- a/cmake/Modules/FindGFORTRAN.cmake +++ b/cmake/Modules/FindGFORTRAN.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . find_library(GFORTRAN NAMES gfortran PATHS /usr/lib diff --git a/cmake/Modules/FindGFlags.cmake b/cmake/Modules/FindGFlags.cmake index 61fa165db..a0ca5ac79 100644 --- a/cmake/Modules/FindGFlags.cmake +++ b/cmake/Modules/FindGFlags.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # - Try to find GFlags # diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake index 4ae4aa5d7..7c50d8805 100644 --- a/cmake/Modules/FindGLOG.cmake +++ b/cmake/Modules/FindGLOG.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # - Try to find the Google Glog library # diff --git a/cmake/Modules/FindGPSTK.cmake b/cmake/Modules/FindGPSTK.cmake index 7c3e79d96..515878d5a 100644 --- a/cmake/Modules/FindGPSTK.cmake +++ b/cmake/Modules/FindGPSTK.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # - Find gpstk library # Find the native gpstk includes and library diff --git a/cmake/Modules/FindGnuradio.cmake b/cmake/Modules/FindGnuradio.cmake index a0110b7a3..0205d5d82 100644 --- a/cmake/Modules/FindGnuradio.cmake +++ b/cmake/Modules/FindGnuradio.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Find GNU Radio diff --git a/cmake/Modules/FindGperftools.cmake b/cmake/Modules/FindGperftools.cmake index 5ad0ec303..6e4d955b7 100644 --- a/cmake/Modules/FindGperftools.cmake +++ b/cmake/Modules/FindGperftools.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # Tries to find Gperftools. # diff --git a/cmake/Modules/FindGrDbfcttc.cmake b/cmake/Modules/FindGrDbfcttc.cmake index d68813480..0245514d8 100644 --- a/cmake/Modules/FindGrDbfcttc.cmake +++ b/cmake/Modules/FindGrDbfcttc.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Find GR-DBFCTTC Module diff --git a/cmake/Modules/FindGrGN3S.cmake b/cmake/Modules/FindGrGN3S.cmake index 7147bf65c..a1340d4a7 100644 --- a/cmake/Modules/FindGrGN3S.cmake +++ b/cmake/Modules/FindGrGN3S.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Find GR-GN3S Module diff --git a/cmake/Modules/FindGrOsmoSDR.cmake b/cmake/Modules/FindGrOsmoSDR.cmake index c9d4199c8..254fecef1 100644 --- a/cmake/Modules/FindGrOsmoSDR.cmake +++ b/cmake/Modules/FindGrOsmoSDR.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # Tries to find gr-osmosdr. # diff --git a/cmake/Modules/FindLibOsmoSDR.cmake b/cmake/Modules/FindLibOsmoSDR.cmake index 5e52fa0b0..fc7a28b06 100644 --- a/cmake/Modules/FindLibOsmoSDR.cmake +++ b/cmake/Modules/FindLibOsmoSDR.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # Tries to find libosmosdr. # diff --git a/cmake/Modules/FindLog4cpp.cmake b/cmake/Modules/FindLog4cpp.cmake index 8f1254561..3b1e7560e 100644 --- a/cmake/Modules/FindLog4cpp.cmake +++ b/cmake/Modules/FindLog4cpp.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # - Find Log4cpp # Find the native LOG4CPP includes and library diff --git a/cmake/Modules/FindMATIO.cmake b/cmake/Modules/FindMATIO.cmake index 78ce0f14d..2bac55ede 100644 --- a/cmake/Modules/FindMATIO.cmake +++ b/cmake/Modules/FindMATIO.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # FindMATIO # diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake index ea580334c..2751494ba 100644 --- a/cmake/Modules/FindORC.cmake +++ b/cmake/Modules/FindORC.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . 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 360f1c781..133de9b63 100644 --- a/cmake/Modules/FindOpenBLAS.cmake +++ b/cmake/Modules/FindOpenBLAS.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # - Try to find OpenBLAS library (not headers!) # diff --git a/cmake/Modules/FindOpenCL.cmake b/cmake/Modules/FindOpenCL.cmake index 4ae5d6aca..7b2d3f1dd 100644 --- a/cmake/Modules/FindOpenCL.cmake +++ b/cmake/Modules/FindOpenCL.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # This file taken from FindOpenCL project @ http://gitorious.com/findopencl diff --git a/cmake/Modules/FindTeleorbit.cmake b/cmake/Modules/FindTeleorbit.cmake index 0e46255df..e7fdbf5fc 100644 --- a/cmake/Modules/FindTeleorbit.cmake +++ b/cmake/Modules/FindTeleorbit.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(PC_TELEORBIT teleorbit) diff --git a/cmake/Modules/FindUHD.cmake b/cmake/Modules/FindUHD.cmake index 5a359cece..3a245f8a2 100644 --- a/cmake/Modules/FindUHD.cmake +++ b/cmake/Modules/FindUHD.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Find the library for the USRP Hardware Driver diff --git a/cmake/Modules/FindVolk.cmake b/cmake/Modules/FindVolk.cmake index 37906c8ef..994ce6e7d 100644 --- a/cmake/Modules/FindVolk.cmake +++ b/cmake/Modules/FindVolk.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Find VOLK (Vector-Optimized Library of Kernels) diff --git a/cmake/Modules/FindVolkGnssSdr.cmake b/cmake/Modules/FindVolkGnssSdr.cmake index a41584481..6225f38a0 100644 --- a/cmake/Modules/FindVolkGnssSdr.cmake +++ b/cmake/Modules/FindVolkGnssSdr.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Find VOLK (Vector-Optimized Library of Kernels) GNSS-SDR library diff --git a/cmake/Modules/Findiio.cmake b/cmake/Modules/Findiio.cmake index ac3e4b1c3..69ee780ec 100644 --- a/cmake/Modules/Findiio.cmake +++ b/cmake/Modules/Findiio.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(PC_IIO gnuradio-iio) diff --git a/cmake/Modules/Findlibiio.cmake b/cmake/Modules/Findlibiio.cmake index 9b39f82e3..e96d420ce 100644 --- a/cmake/Modules/Findlibiio.cmake +++ b/cmake/Modules/Findlibiio.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(PC_LIBIIO libiio) diff --git a/cmake/Modules/SetupPython.cmake b/cmake/Modules/SetupPython.cmake index c876d7bc5..eb4e7a55d 100644 --- a/cmake/Modules/SetupPython.cmake +++ b/cmake/Modules/SetupPython.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Setup the python interpreter: diff --git a/cmake/Modules/TestForARM.cmake b/cmake/Modules/TestForARM.cmake index 0106690ae..26c0a1874 100644 --- a/cmake/Modules/TestForARM.cmake +++ b/cmake/Modules/TestForARM.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ############################################################################## # check if the compiler defines the architecture as ARM and set the diff --git a/cmake/Modules/TestForSSE.cmake b/cmake/Modules/TestForSSE.cmake index 868340c59..135a434ef 100644 --- a/cmake/Modules/TestForSSE.cmake +++ b/cmake/Modules/TestForSSE.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ############################################################################### diff --git a/cmake/Toolchains/oe-sdk_cross.cmake b/cmake/Toolchains/oe-sdk_cross.cmake index e0006d8fd..aac39094e 100644 --- a/cmake/Toolchains/oe-sdk_cross.cmake +++ b/cmake/Toolchains/oe-sdk_cross.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ########################################################## # Toolchain file for Open Embedded diff --git a/cmake/Toolchains/zynq-7000.cmake b/cmake/Toolchains/zynq-7000.cmake index b804fb943..18cb416fa 100644 --- a/cmake/Toolchains/zynq-7000.cmake +++ b/cmake/Toolchains/zynq-7000.cmake @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ########################################################## # Toolchain file for Zynq-7000 devices diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index bb9201eb6..5d4ab76f7 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox index 10d95dbcc..324a98fac 100644 --- a/docs/doxygen/other/main_page.dox +++ b/docs/doxygen/other/main_page.dox @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # /*! \mainpage @@ -23,12 +23,12 @@ Welcome to GNSS-SDR! -GNSS-SDR is an open-source GNSS software receiver freely available to the research community. This project provides a common framework for GNSS signal processing which can operate in a variety of computer platforms. This tool is intended to foster collaboration, increase awareness, and reduce development costs in the field of GNSS receiver design and customized use of GNSS signals. +GNSS-SDR is an open-source GNSS software receiver freely available to the research community. This project provides a common framework for GNSS signal processing which can operate in a variety of computer platforms. This tool is intended to foster collaboration, increase awareness, and reduce development costs in the field of GNSS receiver design and customized use of GNSS signals. For details about GNSS-SDR and using it, please see the main project page or browse the code at the Sourceforge project page. You could be also interested in -subscribing to the mailing list. +href="https://sourceforge.net/p/gnss-sdr/cttc/ci/master/tree/" target="_blank">Sourceforge project page. You could be also interested in +subscribing to the mailing list. \section toc Contents \li \ref overview @@ -71,8 +71,8 @@ buses to a variety of either commercially available or custom-made RF front-ends As signal inputs, it accepts: \li Raw data file captured with a data grabber (digitized at some intermediate frequency or directly at baseband). -\li Any suitable RF configuration that can be driven by the Universal Software Radio Peripheral Hardware Driver (UHD). -This includes all current and future Ettus Research products. The USRP1 + DBSRX 2.2 daughterboard is an example of working configuration for GPS L1 C/A and Galileo E1B and E1C signals. +\li Any suitable RF configuration that can be driven by the Universal Software Radio Peripheral Hardware Driver (UHD). +This includes all current and future Ettus Research products. The USRP1 + DBSRX 2.2 daughterboard is an example of working configuration for GPS L1 C/A and Galileo E1B and E1C signals. \li The GN3S v2 USB dongle (GN3S v3 might work with small modifications). \li Experimentally, with some USB DVB-T dongles based on the Realtek RTL2832U chipset. \li For mathematical representations of the targeted signals, check out the \ref the_signal_model page. @@ -88,19 +88,19 @@ As outputs, it provides: \section build Building GNSS-SDR In principle, GNSS-SDR can be built in any Unix-like system. In practice, it depends on being able to install all the required dependencies. See the building guide page for details about the project's -dependencies and build process. Mainly, it consists on installing GNU Radio plus some few more libraries: +dependencies and build process. Mainly, it consists on installing GNU Radio plus some few more libraries: -\li Gflags, a library that implements commandline flags processing, -\li Glog, a library that implements application-level logging, +\li Gflags, a library that implements commandline flags processing, +\li Glog, a library that implements application-level logging, \li Armadillo, a C++ linear algebra library, -\li Googletest, Google's framework for writing C++ tests (requires definition of the GTEST_DIR variable), +\li Googletest, Google's framework for writing C++ tests (requires definition of the GTEST_DIR variable), and, optionally, -\li Gperftools, which provides fast, multi-threaded malloc() and performance analysis tools. +\li Gperftools, which provides fast, multi-threaded malloc() and performance analysis tools. After all dependencies are installed, clone the GNSS-SDR repository: \verbatim -$ git clone git://git.code.sf.net/p/gnss-sdr/cttc gnss-sdr +$ git clone https://github.com/gnss-sdr/gnss-sdr \endverbatim This will create a folder named gnss-sdr with the following structure: @@ -136,7 +136,7 @@ This will create a folder named gnss-sdr with the following structure: |-----utils <- some utilities (e.g. Matlab scripts) \endverbatim -You are now ready to build GNSS-SDR by using CMake as building tool: +You are now ready to build GNSS-SDR by using CMake as building tool: \verbatim $ cd gnss-sdr/build $ cmake ../ @@ -201,7 +201,7 @@ $ sudo make uninstall $ rm -rf * \endverbatim -You can also check The Git Book for more information about Git usage. +You can also check The Git Book for more information about Git usage. \section using_gnss-sdr Using GNSS-SDR @@ -214,7 +214,7 @@ $ gnss-sdr --config_file=../conf/my_receiver.conf \endverbatim You can see a guide of available implementations at gnss-sdr/conf/master.conf. That folder contains other working examples as well. If you have a working -configuration and want to share it will others, please email it to the GNSS-SDR developers mailing list +configuration and want to share it will others, please email it to the GNSS-SDR developers mailing list and we will be happy to upload it to the server. You can use a single configuration file for processing @@ -228,7 +228,7 @@ You can get a complete list of available commandline flags by doing: \verbatim $ gnss-sdr --help \endverbatim -For general usage of commandline flags, see how to use Google Commandline Flags. + \section control_plane Control plane GNSS-SDR's main method initializes the logging library, processes the command line flags, if any, provided by the user and instantiates a ControlThread object. @@ -276,7 +276,7 @@ SignalConditioner.implementation=Pass_Through Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked -against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in INI format). +against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in INI format). \subsection gnss_block_factory GNSS block factory Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called GNSSBlockFactory. @@ -373,10 +373,7 @@ a rough location and the approximate time of day are available, and the receiver was tracking a satellite and the signal line of sight broke for a short period of time, but the ephemeris and almanac data is still valid, or this information is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to confirm the presence of the satellite, or declaring the satellite present. In the latter case, acquisition process should stop and trigger the tracking module -with coarse estimations of the synchronization parameters. The mathematical abstraction used to design this logic is known as finite state machine (FSM), that is -a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we used the -Boost.Statechart library, -which provides desirable features such as support for asynchronous state machines, multi-threading, type-safety, error handling and compile-time validation. +with coarse estimations of the synchronization parameters. The abstract class ChannelInterface represents an interface to a channel GNSS block. Check Channel for an actual implementation. @@ -513,7 +510,7 @@ Most of GNSS signal links are modulated by a navigation message containing the t error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and -interleaving, depending on the system. All this decoding complexity is managed by a finite state machine implemented with the Boost.Statechart library. +interleaving, depending on the system. The common interface is TelemetryDecoderInterface. Check GpsL1CaTelemetryDecoder for an example of the GPS L1 NAV message decoding adapter, and gps_l1_ca_telemetry_decoder_cc for an actual implementation of a signal processing block. Configuration example: @@ -583,7 +580,7 @@ PVT.dump_filename=./PVT ; Log path and filename without extension. \section license About the software license -GNSS-SDR is released under the General Public License (GPL) v3, thus securing practical usability, inspection, +GNSS-SDR is released under the General Public License (GPL) v3, thus securing practical usability, inspection, and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. The GPL implies that: @@ -656,7 +653,7 @@ Another interesting option is working in real-time with a RF front-end. We provi and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time. You can find more information at the GNSS-SDR Documentation page or directly asking to the -GNSS-SDR Developers mailing list. +GNSS-SDR Developers mailing list. You are also very welcome to contribute to the project, there are many ways to participate in GNSS-SDR. If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. diff --git a/docs/doxygen/other/reference_docs.dox b/docs/doxygen/other/reference_docs.dox index 3759c876a..8b3f8564d 100644 --- a/docs/doxygen/other/reference_docs.dox +++ b/docs/doxygen/other/reference_docs.dox @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # /*! \page reference_docs Reference Documents @@ -21,32 +21,32 @@ \section icd Interface Control Documents \subsection gps GPS -All the current GPS Interface Control Documents can be downloaded from GPS.gov, the official U.S. Government webpage for GPS. +All the current GPS Interface Control Documents can be downloaded from GPS.gov, the official U.S. Government webpage for GPS. -\li GPS L1 and L2C: Global Positioning System Directorate, Interface Specification IS-GPS-200 Revision H. September, 2013. -\li GPS L1C (available with first Block III launch): Global Positioning System Directorate, Interface Specification IS-GPS-800 Revision D. September, 2013. -\li GPS L5 (first Block IIF satellite launched on May, 2010): Global Positioning System Directorate, Interface Specification IS-GPS-705 Revision D. September, 2013. +\li GPS L1 and L2C: Global Positioning System Directorate, Interface Specification IS-GPS-200 Revision H. September, 2013. +\li GPS L1C (available with first Block III launch): Global Positioning System Directorate, Interface Specification IS-GPS-800 Revision D. September, 2013. +\li GPS L5 (first Block IIF satellite launched on May, 2010): Global Positioning System Directorate, Interface Specification IS-GPS-705 Revision D. September, 2013. \subsection glonass GLONASS -Official GLONASS webpage: Information-analytical centre official website. +Official GLONASS webpage: Information-analytical centre official website. \li Standard Accuracy (ST) signals at L1 and L2: Russian Institute of Space Device Engineering, Global Navigation Satellite System GLONASS. Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1, Moscow, Russia, 2008 \subsection galileo Galileo -Check the Galileo website of the European Commission and the -Galileo website of the European Space Agency. +Check the Galileo website of the European Commission and the +Galileo website of the European Space Agency. There is a website with Galileo constellation status information from the International GNSS Service. -\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.2, European Commission, Nov. 2015. +\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.2, European Commission, Nov. 2015. \li European GNSS (Galileo) Open Service Signal-In-Space Operational Status Definition, European Commission, Sept. 2015. -The European Commission is granting free access to the technical information on the future Galileo open service signal, i.e. the specifications manufacturers -and developers need to process data received from satellites. This document informs receiver manufacturers, application developers and service providers on how +The European Commission is granting free access to the technical information on the future Galileo open service signal, i.e. the specifications manufacturers +and developers need to process data received from satellites. This document informs receiver manufacturers, application developers and service providers on how to use the future Galileo system and what they can expect in terms of performance. \subsection beidou BeiDou @@ -65,20 +65,20 @@ Open Service Signal (Version 2.0). China Satellite Navigation Office, December 2 \li EGNOS Open Service (OS) Service Definition Document. Ref: EGN-SDD OS, Revision 2.2, European GNSS Agency (GSA), Feb. 12, 2015. This is a complementary document to the RTCA DO229D, mentioned above. It describes the scope of services provided by the EGNOS Open Service to be used by end-users or Application Specific Service Providers. It details the general conditions relating to the use of the EGNOS service, a technical description of the Signal-in-Space (SIS), the reference receiver, environmental conditions, the service performance achieved and aspects relating to service provision. -\li EGNOS Safety of Life Service Definition Document. Ref: EGN-SDD SoL, Revision 3.0, European GNSS Agency (GSA), Sep. 22, 2015. The EGNOS Safety of Life (SoL) Service is provided openly and is freely accessible without any direct charge and is tailored to safety-critical transport applications in various domains, in particular for aviation applications. The service is thus compliant with the aviation APV-I (Approach with Vertical Guidance) requirements, as defined by ICAO in Annex 10, but may support also applications in other SoL domains. +\li EGNOS Safety of Life Service Definition Document. Ref: EGN-SDD SoL, Revision 3.0, European GNSS Agency (GSA), Sep. 22, 2015. The EGNOS Safety of Life (SoL) Service is provided openly and is freely accessible without any direct charge and is tailored to safety-critical transport applications in various domains, in particular for aviation applications. The service is thus compliant with the aviation APV-I (Approach with Vertical Guidance) requirements, as defined by ICAO in Annex 10, but may support also applications in other SoL domains. \li EGNOS Data Access Service (EDAS) Service Definition Document, Rf: EGN-SDD EDAS, V2.1, European GNSS Agency (GSA), Dec. 19, 2014. -More information about EGNOS can be found through the EGNOS Portal. +More information about EGNOS can be found through the EGNOS Portal. \section standards Other Standards \subsection rinex RINEX -The final output of a navigation receiver is usually its position, speed or other related physical quantities. However, the calculation of those quantities -are based on a series of measurements from one or more satellite constellations. Although receivers calculate positions in real time, in many cases it is -interesting to store intermediate measures for later post-processing. RINEX is the standard format that allows the management and disposal of the measures +The final output of a navigation receiver is usually its position, speed or other related physical quantities. However, the calculation of those quantities +are based on a series of measurements from one or more satellite constellations. Although receivers calculate positions in real time, in many cases it is +interesting to store intermediate measures for later post-processing. RINEX is the standard format that allows the management and disposal of the measures generated by a receiver, as well as their off-line processing by a multitude of applications. -\li The most common version at present is RINEX: The Receiver Independent Exchange Format Version 2.11, which enables storage of measurements from pseudorange, carrier-phase and Doppler systems for GPS or GLONASS, +\li The most common version at present is RINEX: The Receiver Independent Exchange Format Version 2.11, which enables storage of measurements from pseudorange, carrier-phase and Doppler systems for GPS or GLONASS, along with data from EGNOS and WAAS satellite based augmentation systems (SBAS). \li The most recent version is RINEX: The Receiver Independent Exchange Format Version 3.01 published in June, 2009. @@ -88,11 +88,11 @@ It includes Galileo and improves the handling of multi-constellation data files. \subsection nmea NMEA -The National Marine Electronics Association released the NMEA 0183 Interface Standard, which defines electrical signal requirements, data transmission protocol and time, +The National Marine Electronics Association released the NMEA 0183 Interface Standard, which defines electrical signal requirements, data transmission protocol and time, and specific sentence formats for a 4800-baud serial data bus. The standard is available for purchase. \subsection kml KML -KML is an XML language focused on geographic visualization, including annotation of maps and images. Geographic visualization includes not only the presentation of graphical data on the globe, but also the control of the user's navigation in the sense of where to go and where to look. +KML is an XML language focused on geographic visualization, including annotation of maps and images. Geographic visualization includes not only the presentation of graphical data on the globe, but also the control of the user's navigation in the sense of where to go and where to look. Google submitted KML (formerly Keyhole Markup Language) to the Open Geospatial Consortium (OGC) to be evolved within the OGC consensus process with the following goal: KML Version 2.2 has been adopted as an OGC implementation standard. \li Open Geospatial Consortium, Inc., OGC KML Version 2.2.0, April 2008. @@ -100,33 +100,33 @@ Google submitted KML (formerly Keyhole Markup Language) to the Open Geospatial C \subsection cxx C++ Standards -In 1998, the C++ standards committee (the ISO/IEC JTC1/SC22/WG21 working group) -standardized C++ and published the international standard ISO/IEC 14882:1998 (informally known as C++98). A technical corrigendum was approved in 2003, +In 1998, the C++ standards committee (the ISO/IEC JTC1/SC22/WG21 working group) +standardized C++ and published the international standard ISO/IEC 14882:1998 (informally known as C++98). A technical corrigendum was approved in 2003, and the standard was published again as the ISO/IEC 14882:2003. -Published ISO and IEC standards can be purchased from a member body of ISO or IEC. Free copies of the C++ standard Committee Drafts -were made public before the official standard was released. +Published ISO and IEC standards can be purchased from a member body of ISO or IEC. Free copies of the C++ standard Committee Drafts +were made public before the official standard was released. -In 2005, a technical report, called the Library Technical Report 1 -(often known as TR1 for short), was released. While not an official part of the standard, it specified a number of extensions to the standard library, -which were expected to be included in the next version of C++. The linked document is officially a draft, but that is due only to procedural issues; +In 2005, a technical report, called the Library Technical Report 1 +(often known as TR1 for short), was released. While not an official part of the standard, it specified a number of extensions to the standard library, +which were expected to be included in the next version of C++. The linked document is officially a draft, but that is due only to procedural issues; the content did not change. Scott Meyers provides more TR1 information. Some ISO/IEC standards are publicly available, for instance: ISO/IEC TR 18015:2006 Technical Report on C++ Performance. -The standard for the next version of the language (previously known as C++0x) was finally -published with the name of C++11 in September, 2011, as the ISO/IEC 14882:2011 Standard. GCC, the GNU Compiler Collection, -provides partial C++11 support. Bjarne Stroustrup maintains a C++11 FAQ. +The standard for the next version of the language (previously known as C++0x) was finally +published with the name of C++11 in September, 2011, as the ISO/IEC 14882:2011 Standard. GCC, the GNU Compiler Collection, +provides partial C++11 support. Bjarne Stroustrup maintains a C++11 FAQ. \li The most recent public draft of the Standard for Programming Language C++ was published in Feb. 2011. \subsection protocols Positioning protocols in wireless communication networks -Cellular industry location standards first appeared in the late 1990s, with the 3rd generation partnership project (3GPP) radio resource location services protocol (RRLP) technical specification 44.031 positioning protocol for GSM networks. -Today, RRLP is the de facto standardized protocol to carry GNSS assistance data to GNSS-enabled mobile devices, and the term "3GPP specification" now covers all GSM (including GPRS and EDGE), -W-CDMA and LTE (including LTE-A) specifications. Precisely, the label "LTE-A" is applied to networks compliant with LTE Release 10 and beyond, which fulfill the requirements issued by -the International Telecommunication Union Radiocommunication Sector (ITU-R) in the global standard for international mobile telecommunications (IMT Advanced, also referred to as 4G) +Cellular industry location standards first appeared in the late 1990s, with the 3rd generation partnership project (3GPP) radio resource location services protocol (RRLP) technical specification 44.031 positioning protocol for GSM networks. +Today, RRLP is the de facto standardized protocol to carry GNSS assistance data to GNSS-enabled mobile devices, and the term "3GPP specification" now covers all GSM (including GPRS and EDGE), +W-CDMA and LTE (including LTE-A) specifications. Precisely, the label "LTE-A" is applied to networks compliant with LTE Release 10 and beyond, which fulfill the requirements issued by +the International Telecommunication Union Radiocommunication Sector (ITU-R) in the global standard for international mobile telecommunications (IMT Advanced, also referred to as 4G) access technologies. Control plane protocols: @@ -139,12 +139,12 @@ User plane protocols: \li Open Mobile Alliance (OMA), Secure User Plane Location Architecture Version 1 (SUPL 1.0), June 2007. \li Open Mobile Alliance (OMA), Secure User Plane Location Architecture Version 2 (SUPL 2.0), April 2012. -LTE Release 9 introduced extension hooks in LPP messages, so that the bodies external to 3GPP could extend the LPP feature set. OMA LPP extensions (LPPe), supported in SUPL 3.0, build on top of the 3GPP LPP reusing its procedures and data types. +LTE Release 9 introduced extension hooks in LPP messages, so that the bodies external to 3GPP could extend the LPP feature set. OMA LPP extensions (LPPe), supported in SUPL 3.0, build on top of the 3GPP LPP reusing its procedures and data types. Check the OMA Location Working Group (WG) webpage for updated information about LPP Extensions (LPPe) Specification. -\li The OMA Mobile Location Protocol (MLP) V3.1 is an application-level protocol for getting the position of mobile stations (mobile phones, wireless personal digital assistants, etc.) independent -of underlying network technology. The MLP serves as the interface between a Location Server and a Location Services (LCS) Client. +\li The OMA Mobile Location Protocol (MLP) V3.1 is an application-level protocol for getting the position of mobile stations (mobile phones, wireless personal digital assistants, etc.) independent +of underlying network technology. The MLP serves as the interface between a Location Server and a Location Services (LCS) Client. This specification defines the core set of operations that a Location Server should be able to perform. -*/ \ No newline at end of file +*/ diff --git a/docs/doxygen/other/signal_model.dox b/docs/doxygen/other/signal_model.dox index 5d40b7f65..de02c8e19 100644 --- a/docs/doxygen/other/signal_model.dox +++ b/docs/doxygen/other/signal_model.dox @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # /*! \page the_signal_model Signal model @@ -21,46 +21,46 @@ \section gnss_signal_model GNSS signal model This page describes signals transmitted by GNSS space vehicles. Signal models are mathematical representations -of the electromagnetic waves that are exciting the receiver's antenna. The current induced by those waves is then amplified, filtered and downconverted to a suitable frequency (can be at some intermediate frequency or +of the electromagnetic waves that are exciting the receiver's antenna. The current induced by those waves is then amplified, filtered and downconverted to a suitable frequency (can be at some intermediate frequency or directly to baseband), and then converted to 0s and 1s by the Analog-to-Digital Converter (ADC). That is the job of the Radio Frequency front-end, which at its output delivers a stream of -digital samples. Those samples constitute the input of a software receiver, so for GNSS-SDR the signal models described below can be seen as the rules of the game. +digital samples. Those samples constitute the input of a software receiver, so for GNSS-SDR the signal models described below can be seen as the rules of the game. -GNSS' space vehicles are modern versions of lighthouses, but with better visibility. Each satellite is a reference point, and if we know our distance to several reference points, +GNSS' space vehicles are modern versions of lighthouses, but with better visibility. Each satellite is a reference point, and if we know our distance to several reference points, we can compute our location, just as mariners do when they see a couple of lighthouses. For each in-view satellite \f$i\f$ of system \f$s\f$, we can write: \f{equation}{\label{eq:pseudorange} \rho_i = \sqrt{ \left(x^{\text{Tx}}_i - x \right)^2 + \left(y^{\text{Tx}}_i - y \right)^2 + \left(z^{\text{Tx}}_i - z \right)^2}+c\Delta t^{(s)}+\sigma_{e}, \f} - where \f$\left(x^{\text{Tx}}_i, y^{\text{Tx}}_i, z^{\text{Tx}}_i\right)\f$ is the satellite's position (known from the navigation message), \f$(x,y,z)\f$ the receiver's position, - and \f$\sigma_e\f$ gathers other sources of error. Since the receiver needs to estimate its own 3D position (three spatial unknowns) and its clock deviation with respect to - the satellites' time basis, at least \f$3+N_s\f$ satellites must be seen by the receiver at the same time, where \f$N_s\f$ is the number of different navigation systems available - (in-view) at a given time. Each received satellite signal, once synchronized and demodulated at the receiver, defines one equation such as the one defined above, - forming a set of nonlinear equations that can be solved algebraically by means of the Bancroft algorithm or - numerically, resorting to multidimensional Newton-Raphson and weighted least square methods. When a priori information is added we resort to Bayesian estimation, a problem - that can be solved recursively by a Kalman filter or any of its variants. The problem can be further expanded by adding other unknowns (for instance, parameters of ionospheric and - tropospheric models), sources of information from other systems, mapping information, and even motion models of the receiver. In the design of multi-constellation GNSS receivers, - the vector of unknowns can also include the receiver clock offset with respect to each system in order to take advantage of a higher number of in-view satellites and using them + where \f$\left(x^{\text{Tx}}_i, y^{\text{Tx}}_i, z^{\text{Tx}}_i\right)\f$ is the satellite's position (known from the navigation message), \f$(x,y,z)\f$ the receiver's position, + and \f$\sigma_e\f$ gathers other sources of error. Since the receiver needs to estimate its own 3D position (three spatial unknowns) and its clock deviation with respect to + the satellites' time basis, at least \f$3+N_s\f$ satellites must be seen by the receiver at the same time, where \f$N_s\f$ is the number of different navigation systems available + (in-view) at a given time. Each received satellite signal, once synchronized and demodulated at the receiver, defines one equation such as the one defined above, + forming a set of nonlinear equations that can be solved algebraically by means of the Bancroft algorithm or + numerically, resorting to multidimensional Newton-Raphson and weighted least square methods. When a priori information is added we resort to Bayesian estimation, a problem + that can be solved recursively by a Kalman filter or any of its variants. The problem can be further expanded by adding other unknowns (for instance, parameters of ionospheric and + tropospheric models), sources of information from other systems, mapping information, and even motion models of the receiver. In the design of multi-constellation GNSS receivers, + the vector of unknowns can also include the receiver clock offset with respect to each system in order to take advantage of a higher number of in-view satellites and using them jointly in the navigation solution, therefore increasing accuracy. -The analytic representation of a signal received from a GNSS satellite can be generically expressed as +The analytic representation of a signal received from a GNSS satellite can be generically expressed as \f{equation}{\label{eq:analytic} r(t)=\alpha(t) s_{T} \left(t-\tau(t)\right)e^{-j2 \pi f_d(t) }e^{j 2 \pi f_c t}+n(t)~, \f} - where \f$\alpha(t)\f$ is the amplitude, \f$s_{T}(t)\f$ is the complex baseband transmitted signal, \f$\tau(t)\f$ is the time-varying delay, \f$f_d(t)=f_c \tau(t)\f$ is the Doppler shift, \f$f_c\f$ is - the carrier frequency, and \f$n(t)\f$ is a noise term. These signals arrive to the Earth's surface at extremely low power (e.g. \f$-158.5\f$ dBW for GPS L1 C/A-code, \f$-157\f$ dBW - for Galileo E1), well below the noise floor. In order to estimate its distances to satellites, the receiver must correlate time-aligned replicas of the corresponding pseudorandom - code with the incoming signal, in a process called despreading that provides processing gain only to the signal of interest. After a coarse and fine estimation stages of the - synchronization parameters (usually known as acquisition and tracking, respectively), signal processing output is in form of observables: - - i) the pseudorange (code) measurement, + where \f$\alpha(t)\f$ is the amplitude, \f$s_{T}(t)\f$ is the complex baseband transmitted signal, \f$\tau(t)\f$ is the time-varying delay, \f$f_d(t)=f_c \tau(t)\f$ is the Doppler shift, \f$f_c\f$ is + the carrier frequency, and \f$n(t)\f$ is a noise term. These signals arrive to the Earth's surface at extremely low power (e.g. \f$-158.5\f$ dBW for GPS L1 C/A-code, \f$-157\f$ dBW + for Galileo E1), well below the noise floor. In order to estimate its distances to satellites, the receiver must correlate time-aligned replicas of the corresponding pseudorandom + code with the incoming signal, in a process called despreading that provides processing gain only to the signal of interest. After a coarse and fine estimation stages of the + synchronization parameters (usually known as acquisition and tracking, respectively), signal processing output is in form of observables: + + i) the pseudorange (code) measurement, equivalent to the difference of the time of reception (expressed -in the time frame of the receiver) and the time of transmission (expressed in the time frame of the satellite) of a distinct satellite signal; and optionally +in the time frame of the receiver) and the time of transmission (expressed in the time frame of the satellite) of a distinct satellite signal; and optionally -ii) the carrier-phase measurement, actually being a measurement on the beat frequency between the received carrier of the satellite signal and a receiver-generated reference frequency. -Carrier phase measurements are ambiguous, in the sense that the integer number of carrier wavelengths between satellite and the receiver's antenna is unknown. -Techniques such as Least-square AMBiguity Decorrelation Approach (LAMBDA) or -Multi Carrier Ambiguity Resolution (MCAR) can be applied to resolve such ambiguity and provide an accurate estimation of the distance between the satellite and the receiver. +ii) the carrier-phase measurement, actually being a measurement on the beat frequency between the received carrier of the satellite signal and a receiver-generated reference frequency. +Carrier phase measurements are ambiguous, in the sense that the integer number of carrier wavelengths between satellite and the receiver's antenna is unknown. +Techniques such as Least-square AMBiguity Decorrelation Approach (LAMBDA) or +Multi Carrier Ambiguity Resolution (MCAR) can be applied to resolve such ambiguity and provide an accurate estimation of the distance between the satellite and the receiver. -Then, depending on the required accuracy, the navigation solution can range from pseudorange-only, computationally low demanding, and limited accuracy least squares methods to sophisticated combinations of code and +Then, depending on the required accuracy, the navigation solution can range from pseudorange-only, computationally low demanding, and limited accuracy least squares methods to sophisticated combinations of code and phase observables at different frequencies for high demanding applications such as surveying, geodesy, and geophysics. @@ -74,7 +74,7 @@ and civilian users on a continuous, worldwide basis. Two GPS services are provid the Precise Positioning Service (PPS), available primarily to the military of the United States and its allies, and the Standard Positioning Service (SPS) open to civilian users. -\li GPS L1. Defined at Interface Specification IS-GPS-200 Revision F, this band is centered at \f$f_{\text{GPS L1}}=1575.42\f$ MHz. The complex baseband transmitted signal can be written as +\li GPS L1. Defined at Interface Specification IS-GPS-200 Revision F, this band is centered at \f$f_{\text{GPS L1}}=1575.42\f$ MHz. The complex baseband transmitted signal can be written as \f{equation}{ s^{\text{(GPS L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~, \f} @@ -83,30 +83,30 @@ s^{\text{(GPS L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~, e_{L1I}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{NAV}}\Big[ [l]_{204600}\Big] \oplus C_{\text{P(Y)}}\Big[ |l|_{L_{\text{P(Y)}}} \Big] p(t - lT_{c,\text{P(Y)}})~,\label{eq:L1CAI}\\ e_{L1Q}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{NAV}}\Big[ [l]_{20460} \Big] \oplus C_{\text{C/A}} \Big[ |l|_{1023} \Big] p(t - lT_{c,\text{C/A}})~,\label{eq:L1CA} \f} - where \f$\oplus\f$ is the exclusive-or operation (modulo-2 addition), \f$|l|_{L}\f$ means \f$l\f$ modulo \f$L\f$, \f$[l]_{L}\f$ means the integer part of \f$\frac{l}{L}\f$, - \f$D_{\text{NAV}}\f$ is the GPS navigation message bit sequence, transmitted at \f$50\f$ bps, \f$T_{c,\text{P(Y)}}=\frac{1}{10.23}\f$ \f$\mu\f$s, \f$T_{c,\text{C/A}}=\frac{1}{1.023}\f$ \f$\mu\f$s, - \f$L_{\text{P(Y)}}=6.1871 \cdot 10^{12}\f$, and \f$p(t)\f$ is a rectangular pulse of a chip-period duration centered at \f$t=0\f$ and filtered at the transmitter. - According to the chip rate, the binary phase-shift keying modulations in the equations above are denoted as BPSK(10) and BPSK(1), respectively. The precision P codes (named Y codes whenever - the anti-spoofing mode is activated, encrypting the code and thus denying non-U.S. military users) are sequences of \f$7\f$ days in length. Regarding the modernization plans for GPS, it - is worthwhile to mention that there is a new civilian-use signal planned, called L1C and defined at Interface Specification IS-GPS-800 Revision B, - to be broadcast on the same L1 frequency that currently contains the C/A signal. The L1C will be available with first Block III launch, currently scheduled for 2013. The implementation will + where \f$\oplus\f$ is the exclusive-or operation (modulo-2 addition), \f$|l|_{L}\f$ means \f$l\f$ modulo \f$L\f$, \f$[l]_{L}\f$ means the integer part of \f$\frac{l}{L}\f$, + \f$D_{\text{NAV}}\f$ is the GPS navigation message bit sequence, transmitted at \f$50\f$ bps, \f$T_{c,\text{P(Y)}}=\frac{1}{10.23}\f$ \f$\mu\f$s, \f$T_{c,\text{C/A}}=\frac{1}{1.023}\f$ \f$\mu\f$s, + \f$L_{\text{P(Y)}}=6.1871 \cdot 10^{12}\f$, and \f$p(t)\f$ is a rectangular pulse of a chip-period duration centered at \f$t=0\f$ and filtered at the transmitter. + According to the chip rate, the binary phase-shift keying modulations in the equations above are denoted as BPSK(10) and BPSK(1), respectively. The precision P codes (named Y codes whenever + the anti-spoofing mode is activated, encrypting the code and thus denying non-U.S. military users) are sequences of \f$7\f$ days in length. Regarding the modernization plans for GPS, it + is worthwhile to mention that there is a new civilian-use signal planned, called L1C and defined at Interface Specification IS-GPS-800 Revision B, + to be broadcast on the same L1 frequency that currently contains the C/A signal. The L1C will be available with first Block III launch, currently scheduled for 2013. The implementation will provide C/A code to ensure backward compatibility. -\li GPS L2C. Defined at Interface Specification IS-GPS-200 Revision F, is only available on -Block IIR-M and subsequent satellite blocks. Centered at \f$f_{\text{GPS L2}}=1227.60\f$ MHz, the signal structure is the same than in (\ref{eq:GPSL1}), with the precision code in the In-phase +\li GPS L2C. Defined at Interface Specification IS-GPS-200 Revision F, is only available on +Block IIR-M and subsequent satellite blocks. Centered at \f$f_{\text{GPS L2}}=1227.60\f$ MHz, the signal structure is the same than in (\ref{eq:GPSL1}), with the precision code in the In-phase component, just as in (\ref{eq:L1CAI}) but with an optional presence of the navigation message \f$D_{\text{NAV}}\f$. For the Quadrature-phase component, three options are defined: \f{align}{ e_{L2CQ}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{CNAV}} \Big[ [l]_{10230} \Big] \oplus \left( C_{\text{CL}} \Big[ |l|_{L_{\text{CL}}} \Big] p_{\text{\tiny{1/2}}} \left( t - lT_{c,L2C} \right) + \right.\\ {} &+ \left. C_{\text{CM}} \Big[ |l|_{L_{\text{CM}}} \Big] p_{\text{\tiny{1/2}}}\left(t - \left(l+\frac{3}{4}\right)T_{c,L2C}\right) \right),\\ e_{L2CQ}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{NAV}} \Big[ [l]_{20460} \Big] \oplus C_{\text{C/A}} \Big[ |l|_{1023} \Big] p \left(t - lT_{c,\text{C/A}}\right) \text{, or}\\ e_{L2CQ}(t)=& \sum_{l=-\infty}^{\infty}C_{\text{C/A}} \Big[ |l|_{1023} \Big] p(t - lT_{c,\text{C/A}})~, \f} - where \f$T_{c,L2C}=\frac{1}{511.5}\f$ ms and \f$p_{\text{\tiny{1/2}}}(t)\f$ is a rectangular pulse of half chip-period duration, thus time-multiplexing both codes. The civilian long - code \f$C_{\text{CL}}\f$ is \f$L_{\text{CL}}=767250\f$ chips long, repeating every \f$1.5\f$ s, while the civilian moderate code \f$C_{\text{CM}}\f$ is \f$L_{\text{CL}}=10230\f$ chips - long and its repeats every \f$20\f$ ms. The CNAV data is an upgraded version of the original NAV navigation message, containing higher precision representation and nominally more accurate + where \f$T_{c,L2C}=\frac{1}{511.5}\f$ ms and \f$p_{\text{\tiny{1/2}}}(t)\f$ is a rectangular pulse of half chip-period duration, thus time-multiplexing both codes. The civilian long + code \f$C_{\text{CL}}\f$ is \f$L_{\text{CL}}=767250\f$ chips long, repeating every \f$1.5\f$ s, while the civilian moderate code \f$C_{\text{CM}}\f$ is \f$L_{\text{CL}}=10230\f$ chips + long and its repeats every \f$20\f$ ms. The CNAV data is an upgraded version of the original NAV navigation message, containing higher precision representation and nominally more accurate data than the NAV data. It is transmitted at \f$25\f$ bps with forward error correction (FEC) encoding, resulting in \f$50\f$ sps. -\li GPS L5. The GPS L5 link, defined at Interface Specification IS-GPS-705 Revision B, is only available +\li GPS L5. The GPS L5 link, defined at Interface Specification IS-GPS-705 Revision B, is only available in Block IIF (first satellite launched on May, 2010) and subsequent satellite blocks. Centered at \f$f_{\text{GPS L5}}=1176.45\f$ MHz, this signal in space can be written as: \f{equation}{ s^{\text{(GPS L5)}}_{T}(t)=e_{L5I}(t) +j e_{L5Q}(t)~, @@ -129,9 +129,9 @@ Eight satellites are equally spaced in each plane with \f$45^o\f$ argument of la the orbital planes have an argument of latitude displacement of \f$15^o\f$ relative to each other. -GLONASS civil signal-in-space is defined at Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1. -This system makes use of a frequency-division multiple access (FDMA) signal structure, transmitting in two bands: \f$f^{(k)}_{GLO L1}=1602+k \cdot 0.5625\f$ MHz and \f$f^{(k)}_{GLO L2}=1246+k \cdot 0.4375\f$ MHz, -where \f$k\in \left\{ -7,-6,\cdots,5,6\right\}\f$ is the channel number. Satellites in opposite points of an orbit plane transmit signals on equal frequencies, as these satellites will never be +GLONASS civil signal-in-space is defined at Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1. +This system makes use of a frequency-division multiple access (FDMA) signal structure, transmitting in two bands: \f$f^{(k)}_{GLO L1}=1602+k \cdot 0.5625\f$ MHz and \f$f^{(k)}_{GLO L2}=1246+k \cdot 0.4375\f$ MHz, +where \f$k\in \left\{ -7,-6,\cdots,5,6\right\}\f$ is the channel number. Satellites in opposite points of an orbit plane transmit signals on equal frequencies, as these satellites will never be in view simultaneously by a ground-based user. @@ -144,18 +144,18 @@ s^{\text{(GLO L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~, e_{L1I}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{GNAV}}\Big[ [l]_{102200}\Big] \oplus C_{\text{HP}} \Big[ |l|_{L_{\text{HP}}} \Big] p(t - lT_{c,\text{HP}})~,\\ e_{L1Q}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{GNAV}}\Big[ [l]_{10220} \Big] \oplus C_{\text{SP}} \Big[ |l|_{511} \Big] p(t - lT_{c,\text{SP}})~, \f} - where \f$T_{c,\text{HP}}=\frac{1}{5.11}\f$ \f$\mu\f$s, \f$T_{c,\text{SP}}=\frac{1}{0.511}\f$ \f$\mu\f$s, and \f$L_{\text{HP}}=3.3554\cdot 10^7\f$. The navigation - message \f$D_{\text{GNAV}}\f$ is transmitted at \f$50\f$ bps. Details of its content and structure, as well as the generation of the \f$C_{\text{SP}}\f$ code, can be found at - the ICD. The usage of the HP signal should be agreed with the Russian Federation Defense + where \f$T_{c,\text{HP}}=\frac{1}{5.11}\f$ \f$\mu\f$s, \f$T_{c,\text{SP}}=\frac{1}{0.511}\f$ \f$\mu\f$s, and \f$L_{\text{HP}}=3.3554\cdot 10^7\f$. The navigation + message \f$D_{\text{GNAV}}\f$ is transmitted at \f$50\f$ bps. Details of its content and structure, as well as the generation of the \f$C_{\text{SP}}\f$ code, can be found at + the ICD. The usage of the HP signal should be agreed with the Russian Federation Defense Ministry, and no more details have been disclosed. \li GLONASS L2. Beginning with the second generation of satellites, called GLONASS-M and first launched in 2001, a second civil signal is available using the same SP code than the one in the L1 band. -The use of FDMA techniques, in which the same code is used to broadcast navigation signals on different frequencies, and the placement of civil GLONASS transmissions on frequencies close to \f$1600\f$ MHz, -well above the GPS L1 band, have complicated the design of combined GLONASS/GPS receivers, particularly low-cost equipment for mass-market applications. Future plans of modernization are -intended to increase compatibility and interoperability with other GNSS, and include the addition of a code-division multiple access (CDMA) structure, and possibly binary offset carrier (BOC) -modulation, beginning with the third civil signal in the L3 band (\f$1197.648 - 1212.255\f$ MHz). Russia is implementing the new signals on the next-generation GLONASS-K satellites, with a +The use of FDMA techniques, in which the same code is used to broadcast navigation signals on different frequencies, and the placement of civil GLONASS transmissions on frequencies close to \f$1600\f$ MHz, +well above the GPS L1 band, have complicated the design of combined GLONASS/GPS receivers, particularly low-cost equipment for mass-market applications. Future plans of modernization are +intended to increase compatibility and interoperability with other GNSS, and include the addition of a code-division multiple access (CDMA) structure, and possibly binary offset carrier (BOC) +modulation, beginning with the third civil signal in the L3 band (\f$1197.648 - 1212.255\f$ MHz). Russia is implementing the new signals on the next-generation GLONASS-K satellites, with a first prototype successfully launched into orbit on February 26, 2011. @@ -173,9 +173,9 @@ period of \f$14\f$ hours. The Control segment full infrastructure will be compos Galileo's Open Service is defined at Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.1, where the following signal structures are specified: -\li Galileo E1. This band, centered at \f$f_{\text{Gal E1}}=1575.420\f$ MHz and with a reference bandwidth of \f$24.5520\f$ MHz, uses the so-called composite binary offset carrier +\li Galileo E1. This band, centered at \f$f_{\text{Gal E1}}=1575.420\f$ MHz and with a reference bandwidth of \f$24.5520\f$ MHz, uses the so-called composite binary offset carrier CBOC(6,1,\f$\frac{1}{11}\f$) modulation, defined in baseband as: -\f{align}{ +\f{align}{ s^{\text{(Gal E1)}}_{T}(t)=&\frac{1}{\sqrt{2}} \Big( e_{E1B}(t)\left( \alpha sc_A(t)+ \beta sc_B(t) \right)+ \\ {}& - e_{E1C}(t) \left( \alpha sc_A(t)- \beta sc_B(t) \right) \Big)~,\label{eq:CBOC} \f} @@ -192,8 +192,8 @@ In case of channel \f$C\f$, it is a pilot (dataless) channel with a secondary co \f{align}{ \nonumber e_{E1C}(t)&= \sum_{m=-\infty}^{+\infty}C_{E1Cs}\Big[|m|_{25}\Big] \oplus \sum_{l=1}^{4092}C_{E1Cp}\Big[ l \Big] \cdot \\ {}& \; \; \cdot p(t-mT_{c,E1Cs}-lT_{c,E1Cp})~,\label{eq:E1C} \f} - with \f$T_{c,E1B}=T_{c,E1Cp}=\frac{1}{1.023}\f$ \f$\mu\f$s and \f$T_{c,E1Cs}=4\f$ ms. The \f$C_{E1B}\f$ and \f$C_{E1Cp}\f$ primary codes are pseudorandom memory code sequences defined at - Annex C.7 and C.8 of OS SIS ICD. The binary + with \f$T_{c,E1B}=T_{c,E1Cp}=\frac{1}{1.023}\f$ \f$\mu\f$s and \f$T_{c,E1Cs}=4\f$ ms. The \f$C_{E1B}\f$ and \f$C_{E1Cp}\f$ primary codes are pseudorandom memory code sequences defined at + Annex C.7 and C.8 of OS SIS ICD. The binary sequence of the secondary code \f$C_{E1Cs}\f$ is 0011100000001010110110010. This band also contains another component, Galileo E1A, intended for the Public Regulated Service (PRS). It uses a BOC(15,2.5) modulation with cosine-shaped subcarrier \f$f_{s,E1A}=15.345\f$ MHz and \f$T_{c, E1A}=\frac{1}{2.5575}\f$ \f$\mu\f$s. The PRS spreading codes and the structure of the navigation message have not been made public. @@ -207,19 +207,19 @@ s_{T}^{\text{(Gal E6)}}(t) = \frac{1}{\sqrt{2}}\left(e_{E6B}(t)-e_{E6C}(t)\right \nonumber e_{E6B}(t) =& \sum_{m=-\infty}^{+\infty} D_{\text{C/NAV}} \Big[ [l]_{5115}\Big] \oplus C_{E6B}\Big[|l|_{L_{E6B}}\Big] \cdot \\ {}& \cdot p(t - lT_{c,E6}),\\ \nonumber e_{E6C}(t) =& \sum_{m=-\infty}^{+\infty}C_{E6Cs}\Big[|m|_{100}\Big] \oplus \sum_{l=1}^{L_{E6C}}C_{E6Cp}\Big[ l \Big] \cdot \\ {}& \cdot p(t-mT_{c,E6s} -lT_{c,E6p}), \f} - where \f$D_{\text{C/NAV}}\f$ is the C/NAV navigation data stream, which is modulated with the encrypted ranging code \f$C_{E6B}\f$ with chip period \f$T_{c,E6}=\frac{1}{5.115}\f$ \f$\mu\f$s, thus - being a BPSK(5) modulation. Codes \f$C_{E6B}\f$ and primary codes \f$C_{E6Cs}\f$ and their respective lengths, \f$L_{E6B}\f$ and \f$L_{E6C}\f$, have not been published. The secondary codes - for the pilot component, \f$C_{E6Cs}\f$, are available at the OS SIS ICD. + where \f$D_{\text{C/NAV}}\f$ is the C/NAV navigation data stream, which is modulated with the encrypted ranging code \f$C_{E6B}\f$ with chip period \f$T_{c,E6}=\frac{1}{5.115}\f$ \f$\mu\f$s, thus + being a BPSK(5) modulation. Codes \f$C_{E6B}\f$ and primary codes \f$C_{E6Cs}\f$ and their respective lengths, \f$L_{E6B}\f$ and \f$L_{E6C}\f$, have not been published. The secondary codes + for the pilot component, \f$C_{E6Cs}\f$, are available at the OS SIS ICD. The receiver reference bandwidth for this signal is \f$40.920\f$ MHz. This band also contains another component, Galileo E6A, intended for PRS. \li Galileo E5. Centered at \f$f_{\text{Gal E5}}=1191.795\f$ MHz and with a total bandwidth of \f$51.150\f$ MHz, its signal structure deserves some analysis. The AltBOC modulation can be generically expressed as \f{equation}{\label{AltBOC} s^{\text{AltBOC}}(t)=x_1(t)v^{*}(t)+x_2(t)v(t)~, \f} - where \f$v(t)=\frac{1}{\sqrt{2}}\left( \text{sign}\left( \cos (2 \pi f_s t)\right)+j \text{sign}\left( \sin (2 \pi f_s t)\right)\right)\f$ is the single side-band - subcarrier, \f$f_s\f$ is the subcarrier frequency, \f$(\cdot)^{*}\f$ stands for the conjugate operation, and \f$x_1(t)\f$ and \f$x_2(t)\f$ are QPSK signals. - The resulting waveform does not exhibit constant envelope. In case of Galileo, the need for high efficiency of the satellites' onboard High Power Amplifier (HPA) has pushed - a modification on the signal in order to make it envelope-constant and thus use the HPA at saturation. This can be done by adding some inter-modulation products to the expression + where \f$v(t)=\frac{1}{\sqrt{2}}\left( \text{sign}\left( \cos (2 \pi f_s t)\right)+j \text{sign}\left( \sin (2 \pi f_s t)\right)\right)\f$ is the single side-band + subcarrier, \f$f_s\f$ is the subcarrier frequency, \f$(\cdot)^{*}\f$ stands for the conjugate operation, and \f$x_1(t)\f$ and \f$x_2(t)\f$ are QPSK signals. + The resulting waveform does not exhibit constant envelope. In case of Galileo, the need for high efficiency of the satellites' onboard High Power Amplifier (HPA) has pushed + a modification on the signal in order to make it envelope-constant and thus use the HPA at saturation. This can be done by adding some inter-modulation products to the expression above, coming up with the following definition: \f{align}{ @@ -260,9 +260,9 @@ receiver. The single subcarrier \f$sc_s(t)\f$ and the product subcarrier \f$sc_p sc_p(t)=& -\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t - \frac{\pi}{4}\right) \right)+\\ \nonumber {}&+ \frac{1}{2}\text{sign} \Big( \cos \left( 2 \pi f_s t \right) \Big)+\\ {} &-\frac{\sqrt{2}}{4}\text{sign} \left( \cos \left( 2 \pi f_s t + \frac{\pi}{4}\right) \right)~, \f} - with a subcarrier frequency of \f$f_s=15.345\f$ MHz, thus defining an AltBOC(15,10) modulation. The QPSK(10) signal \f$e_{E5a}(t)\f$ defined above is shifted + with a subcarrier frequency of \f$f_s=15.345\f$ MHz, thus defining an AltBOC(15,10) modulation. The QPSK(10) signal \f$e_{E5a}(t)\f$ defined above is shifted to \f$f_{\text{Gal E5a}}\doteq f_{\text{Gal E5}}-f_s=1176.450\f$ MHz, while \f$e_{E5b}(t)\f$ is shifted to \f$f_{\text{Gal E5b}}\doteq f_{\text{Gal E5}}+f_s=1207.140\f$ MHz. - Thus, we can bandpass filter around \f$f_{\text{Gal E5a}}\f$ and get a good approximation of a QPSK(10) signal, with very low energy components of \f$e_{E5b}(t)\f$, \f$ \bar{e}_{E5a}(t)\f$, + Thus, we can bandpass filter around \f$f_{\text{Gal E5a}}\f$ and get a good approximation of a QPSK(10) signal, with very low energy components of \f$e_{E5b}(t)\f$, \f$ \bar{e}_{E5a}(t)\f$, and \f$ \bar{e}_{E5b}(t)\f$: \f{equation}{ s_{T}^{\text{(Gal E5a)}}(t) \simeq e_{E5aI}(t)+je_{E5aQ}(t). @@ -273,9 +273,9 @@ The same applies to \f$e_{E5b}(t)\f$, allowing an independent reception of two Q This text is an except of the following paper: -\li C. Fernández-Prades, L. Lo Presti, E. Falleti, Satellite Radiolocalization From GPS to GNSS and Beyond: Novel Technologies and Applications for Civil Mass-Market. +\li C. Fernández-Prades, L. Lo Presti, E. Falleti, Satellite Radiolocalization From GPS to GNSS and Beyond: Novel Technologies and Applications for Civil Mass-Market. Proceedings of the IEEE. Vol 99, No. 11, pp. 1882-1904. November, 2011. DOI: 10.1109/JPROC.2011.2158032 - - -*/ \ No newline at end of file + + +*/ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fbce5e499..84e918b73 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(algorithms) diff --git a/src/algorithms/CMakeLists.txt b/src/algorithms/CMakeLists.txt index d6f0521dc..2b10446e8 100644 --- a/src/algorithms/CMakeLists.txt +++ b/src/algorithms/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(acquisition) diff --git a/src/algorithms/PVT/CMakeLists.txt b/src/algorithms/PVT/CMakeLists.txt index 763852ca2..96259341c 100644 --- a/src/algorithms/PVT/CMakeLists.txt +++ b/src/algorithms/PVT/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/PVT/adapters/CMakeLists.txt b/src/algorithms/PVT/adapters/CMakeLists.txt index 71568cf88..73c996521 100644 --- a/src/algorithms/PVT/adapters/CMakeLists.txt +++ b/src/algorithms/PVT/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(PVT_ADAPTER_SOURCES diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc index 6a0b4299e..39a8ebd3f 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.cc +++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.h b/src/algorithms/PVT/adapters/rtklib_pvt.h index 1ae5808f5..936fd1632 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.h +++ b/src/algorithms/PVT/adapters/rtklib_pvt.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt index ad8c08e7c..34013b2ad 100644 --- a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(PVT_GR_BLOCKS_SOURCES diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc index 18248ea05..8bcc49a88 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h index 70333a7eb..b208f4c0c 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/CMakeLists.txt b/src/algorithms/PVT/libs/CMakeLists.txt index ebf9d6041..82d733a19 100644 --- a/src/algorithms/PVT/libs/CMakeLists.txt +++ b/src/algorithms/PVT/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_definitions( -DGNSS_SDR_VERSION="${VERSION}" ) diff --git a/src/algorithms/PVT/libs/geojson_printer.cc b/src/algorithms/PVT/libs/geojson_printer.cc index 9a5973858..5dd3ecdba 100644 --- a/src/algorithms/PVT/libs/geojson_printer.cc +++ b/src/algorithms/PVT/libs/geojson_printer.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/geojson_printer.h b/src/algorithms/PVT/libs/geojson_printer.h index 8c2f08d41..9963e64d2 100644 --- a/src/algorithms/PVT/libs/geojson_printer.h +++ b/src/algorithms/PVT/libs/geojson_printer.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/gpx_printer.cc b/src/algorithms/PVT/libs/gpx_printer.cc index 65dda1636..3a8661e6d 100644 --- a/src/algorithms/PVT/libs/gpx_printer.cc +++ b/src/algorithms/PVT/libs/gpx_printer.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/gpx_printer.h b/src/algorithms/PVT/libs/gpx_printer.h index 347d95599..f158b6fb9 100644 --- a/src/algorithms/PVT/libs/gpx_printer.h +++ b/src/algorithms/PVT/libs/gpx_printer.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc index 4644352e5..25898e195 100644 --- a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc +++ b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/hybrid_ls_pvt.h b/src/algorithms/PVT/libs/hybrid_ls_pvt.h index a4cb780a0..f8a6fc32c 100644 --- a/src/algorithms/PVT/libs/hybrid_ls_pvt.h +++ b/src/algorithms/PVT/libs/hybrid_ls_pvt.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/kml_printer.cc b/src/algorithms/PVT/libs/kml_printer.cc index b59ddc11c..1233df036 100644 --- a/src/algorithms/PVT/libs/kml_printer.cc +++ b/src/algorithms/PVT/libs/kml_printer.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/kml_printer.h b/src/algorithms/PVT/libs/kml_printer.h index 01907e121..435943a6c 100644 --- a/src/algorithms/PVT/libs/kml_printer.h +++ b/src/algorithms/PVT/libs/kml_printer.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/ls_pvt.cc b/src/algorithms/PVT/libs/ls_pvt.cc index af4f1e812..8525d952f 100644 --- a/src/algorithms/PVT/libs/ls_pvt.cc +++ b/src/algorithms/PVT/libs/ls_pvt.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/ls_pvt.h b/src/algorithms/PVT/libs/ls_pvt.h index 692d6e026..78ad9deef 100644 --- a/src/algorithms/PVT/libs/ls_pvt.h +++ b/src/algorithms/PVT/libs/ls_pvt.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/nmea_printer.cc b/src/algorithms/PVT/libs/nmea_printer.cc index ebff7b4ac..56aad23af 100644 --- a/src/algorithms/PVT/libs/nmea_printer.cc +++ b/src/algorithms/PVT/libs/nmea_printer.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/nmea_printer.h b/src/algorithms/PVT/libs/nmea_printer.h index 857301d1c..318745e1c 100644 --- a/src/algorithms/PVT/libs/nmea_printer.h +++ b/src/algorithms/PVT/libs/nmea_printer.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/pvt_solution.cc b/src/algorithms/PVT/libs/pvt_solution.cc index dbfd76f1c..d0f31cc39 100644 --- a/src/algorithms/PVT/libs/pvt_solution.cc +++ b/src/algorithms/PVT/libs/pvt_solution.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/pvt_solution.h b/src/algorithms/PVT/libs/pvt_solution.h index c01e494a9..958bf4668 100644 --- a/src/algorithms/PVT/libs/pvt_solution.h +++ b/src/algorithms/PVT/libs/pvt_solution.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/rinex_printer.cc b/src/algorithms/PVT/libs/rinex_printer.cc index e5dc5c65f..859239096 100644 --- a/src/algorithms/PVT/libs/rinex_printer.cc +++ b/src/algorithms/PVT/libs/rinex_printer.cc @@ -5,7 +5,7 @@ * \author Carles Fernandez Prades, 2011. cfernandez(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/rinex_printer.h b/src/algorithms/PVT/libs/rinex_printer.h index 794c98a3f..2cd961956 100644 --- a/src/algorithms/PVT/libs/rinex_printer.h +++ b/src/algorithms/PVT/libs/rinex_printer.h @@ -25,7 +25,7 @@ * \author Carles Fernandez Prades, 2011. cfernandez(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -43,7 +43,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/rtcm_printer.cc b/src/algorithms/PVT/libs/rtcm_printer.cc index 5dd52ae38..cd400ed4b 100644 --- a/src/algorithms/PVT/libs/rtcm_printer.cc +++ b/src/algorithms/PVT/libs/rtcm_printer.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/PVT/libs/rtcm_printer.h b/src/algorithms/PVT/libs/rtcm_printer.h index 95809a73b..c0a926895 100644 --- a/src/algorithms/PVT/libs/rtcm_printer.h +++ b/src/algorithms/PVT/libs/rtcm_printer.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/CMakeLists.txt b/src/algorithms/acquisition/CMakeLists.txt index 579bf4ba0..0dc31ec9b 100644 --- a/src/algorithms/acquisition/CMakeLists.txt +++ b/src/algorithms/acquisition/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/acquisition/adapters/CMakeLists.txt b/src/algorithms/acquisition/adapters/CMakeLists.txt index ff708f433..831601796 100644 --- a/src/algorithms/acquisition/adapters/CMakeLists.txt +++ b/src/algorithms/acquisition/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # @@ -39,7 +39,7 @@ set(ACQ_ADAPTER_SOURCES if(ENABLE_FPGA) set(ACQ_ADAPTER_SOURCES ${ACQ_ADAPTER_SOURCES} gps_l1_ca_pcps_acquisition_fpga.cc) endif(ENABLE_FPGA) - + if(OPENCL_FOUND) set(ACQ_ADAPTER_SOURCES ${ACQ_ADAPTER_SOURCES} gps_l1_ca_pcps_opencl_acquisition.cc) endif(OPENCL_FOUND) @@ -64,6 +64,5 @@ include_directories( file(GLOB ACQ_ADAPTER_HEADERS "*.h") list(SORT ACQ_ADAPTER_HEADERS) add_library(acq_adapters ${ACQ_ADAPTER_SOURCES} ${ACQ_ADAPTER_HEADERS}) -source_group(Headers FILES ${ACQ_ADAPTER_HEADERS}) +source_group(Headers FILES ${ACQ_ADAPTER_HEADERS}) target_link_libraries(acq_adapters gnss_sp_libs gnss_sdr_flags acq_gr_blocks ${Boost_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES} ${GNURADIO_BLOCKS_LIBRARIES}) - diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc index dcbc716ab..58848a9a7 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h index e49f3b2a7..8cc3f3383 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_8ms_ambiguous_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc index 7000a4066..c58b5b6f2 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h index 8815ef4bd..9020cf15f 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc index a567b3bea..12fe08849 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h index ec0b6bd5d..01e63c256 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_cccwsr_ambiguous_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc index 7eede9fa8..519dccc86 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h index 98116a851..8c9f0b43a 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_quicksync_ambiguous_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc index 677a04fc9..757ed5bfc 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h index c4ebebd17..675d79770 100644 --- a/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h +++ b/src/algorithms/acquisition/adapters/galileo_e1_pcps_tong_ambiguous_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc index 5b11f8e76..9f23a55f3 100644 --- a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc +++ b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h index 333fa3d0f..002744426 100644 --- a/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h +++ b/src/algorithms/acquisition/adapters/galileo_e5a_noncoherent_iq_acquisition_caf.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc index e903ec877..1367c0272 100644 --- a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc +++ b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.cc @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h index 8423ebf7c..807a307b2 100644 --- a/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h +++ b/src/algorithms/acquisition/adapters/galileo_e5a_pcps_acquisition.h @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc index 2ea0514d9..99d13e2db 100644 --- a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc +++ b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h index 64fb5cfd3..8250f9d28 100644 --- a/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h +++ b/src/algorithms/acquisition/adapters/glonass_l1_ca_pcps_acquisition.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc index 821d61acb..ff61a0c2f 100644 --- a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc +++ b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h index f86acdaff..bb4e0090f 100644 --- a/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h +++ b/src/algorithms/acquisition/adapters/glonass_l2_ca_pcps_acquisition.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc index 5250619c4..01f3f7f62 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h index 590b228e6..edf79e42c 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc index 99e04f021..05f987b0f 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.cc @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h index 43734e918..e0bfcf14e 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fine_doppler.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc index 4b7aae6d0..3cbc81bfa 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h index f070e8818..b658942d5 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition_fpga.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc index 61eb6ed08..513497946 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.cc @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h index 1997d03c4..06c7728df 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_assisted_acquisition.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc index 88d9e4a65..eb2da7bea 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h index 7c4380287..ab7e19c94 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_opencl_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc index f591a64cb..9fa165513 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h index 6ef2977da..17e3da109 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_quicksync_acquisition.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc index d5a43e3f4..07dfecfd3 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h index 24fe9ba30..2514a532e 100644 --- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_tong_acquisition.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc index dbcea69e5..bb5f27bc7 100644 --- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h index 22babe4d4..c6ad236cf 100644 --- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc index cedc08d70..78030bfbc 100644 --- a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc +++ b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h index ee9fb5d70..41b0e347b 100644 --- a/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h +++ b/src/algorithms/acquisition/adapters/gps_l5i_pcps_acquisition.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt index 9bfd4fc73..fbc33410e 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/acquisition/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # 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 f8fa95f8e..568ca22f0 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h index 4d4cf61c0..58cc608b0 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_e5a_noncoherent_iq_acquisition_caf_cc.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc index c1c6c21dc..a86b27c04 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h index 7c020246b..62778ca06 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/galileo_pcps_8ms_acquisition_cc.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc index dd2243a23..3513a41da 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h index 3836b0c38..e16edd83f 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition.h @@ -26,7 +26,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -44,7 +44,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc index 860d96e49..90b96acbb 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h index fe7810daa..652250cac 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fine_doppler_cc.h @@ -22,7 +22,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -40,7 +40,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc index 8a5d3ea99..66d23ba16 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -15,7 +15,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -33,7 +33,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h index 36ddcd70f..1ee9a773a 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.h @@ -30,7 +30,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -48,7 +48,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc index 17866975b..78a82fd8c 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h index c4a03a3a7..1b312980e 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_assisted_acquisition_cc.h @@ -22,7 +22,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -40,7 +40,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc index 9fb67a398..8b7250e67 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h index 22ad06d72..46954e5ca 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_cccwsr_acquisition_cc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc index 851ec0545..af9413158 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.cc @@ -25,7 +25,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -43,7 +43,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h index 00a52b89a..c4ce11707 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_opencl_acquisition_cc.h @@ -25,7 +25,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -43,7 +43,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc index d97385f49..17d06f62b 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h index 01fc094c8..6352cc3bd 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_quicksync_acquisition_cc.h @@ -25,7 +25,7 @@ * * ------------------------------------------------------------------------- * -* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -43,7 +43,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License -* along with GNSS-SDR. If not, see . +* along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc index 26d3b67f2..44d09b134 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.cc @@ -25,7 +25,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -43,7 +43,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h index 6f49aa91f..00eba93f5 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_tong_acquisition_cc.h @@ -25,7 +25,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -43,7 +43,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/libs/CMakeLists.txt b/src/algorithms/acquisition/libs/CMakeLists.txt index f4adf131c..332d83723 100644 --- a/src/algorithms/acquisition/libs/CMakeLists.txt +++ b/src/algorithms/acquisition/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.cc b/src/algorithms/acquisition/libs/fpga_acquisition.cc index 81995faab..c14452d93 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.cc +++ b/src/algorithms/acquisition/libs/fpga_acquisition.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/acquisition/libs/fpga_acquisition.h b/src/algorithms/acquisition/libs/fpga_acquisition.h index 00641e1cd..88e6802b6 100644 --- a/src/algorithms/acquisition/libs/fpga_acquisition.h +++ b/src/algorithms/acquisition/libs/fpga_acquisition.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/channel/CMakeLists.txt b/src/algorithms/channel/CMakeLists.txt index 053a2b67f..077b74808 100644 --- a/src/algorithms/channel/CMakeLists.txt +++ b/src/algorithms/channel/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/channel/adapters/CMakeLists.txt b/src/algorithms/channel/adapters/CMakeLists.txt index b2d74748e..a6d5245cd 100644 --- a/src/algorithms/channel/adapters/CMakeLists.txt +++ b/src/algorithms/channel/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(CHANNEL_ADAPTER_SOURCES channel.cc) diff --git a/src/algorithms/channel/adapters/channel.cc b/src/algorithms/channel/adapters/channel.cc index f7cec1949..480212e3a 100644 --- a/src/algorithms/channel/adapters/channel.cc +++ b/src/algorithms/channel/adapters/channel.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/channel/adapters/channel.h b/src/algorithms/channel/adapters/channel.h index aeec00925..d82ad0870 100644 --- a/src/algorithms/channel/adapters/channel.h +++ b/src/algorithms/channel/adapters/channel.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/channel/libs/CMakeLists.txt b/src/algorithms/channel/libs/CMakeLists.txt index 7dddaa5e3..ffbc21a42 100644 --- a/src/algorithms/channel/libs/CMakeLists.txt +++ b/src/algorithms/channel/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(CHANNEL_FSM_SOURCES diff --git a/src/algorithms/channel/libs/channel_fsm.cc b/src/algorithms/channel/libs/channel_fsm.cc index 027ec8564..5ac015f2d 100644 --- a/src/algorithms/channel/libs/channel_fsm.cc +++ b/src/algorithms/channel/libs/channel_fsm.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/channel/libs/channel_fsm.h b/src/algorithms/channel/libs/channel_fsm.h index bb75ad762..7489ca171 100644 --- a/src/algorithms/channel/libs/channel_fsm.h +++ b/src/algorithms/channel/libs/channel_fsm.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/channel/libs/channel_msg_receiver_cc.cc b/src/algorithms/channel/libs/channel_msg_receiver_cc.cc index 217f9c0eb..ca4105f8e 100644 --- a/src/algorithms/channel/libs/channel_msg_receiver_cc.cc +++ b/src/algorithms/channel/libs/channel_msg_receiver_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/channel/libs/channel_msg_receiver_cc.h b/src/algorithms/channel/libs/channel_msg_receiver_cc.h index 63da6efb9..7fc172923 100644 --- a/src/algorithms/channel/libs/channel_msg_receiver_cc.h +++ b/src/algorithms/channel/libs/channel_msg_receiver_cc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/conditioner/CMakeLists.txt b/src/algorithms/conditioner/CMakeLists.txt index c0a4a7a48..de941b536 100644 --- a/src/algorithms/conditioner/CMakeLists.txt +++ b/src/algorithms/conditioner/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/conditioner/adapters/CMakeLists.txt b/src/algorithms/conditioner/adapters/CMakeLists.txt index f23f3b4f2..cb83608aa 100644 --- a/src/algorithms/conditioner/adapters/CMakeLists.txt +++ b/src/algorithms/conditioner/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/conditioner/adapters/array_signal_conditioner.cc b/src/algorithms/conditioner/adapters/array_signal_conditioner.cc index e0c6e9beb..098a9e365 100644 --- a/src/algorithms/conditioner/adapters/array_signal_conditioner.cc +++ b/src/algorithms/conditioner/adapters/array_signal_conditioner.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/conditioner/adapters/array_signal_conditioner.h b/src/algorithms/conditioner/adapters/array_signal_conditioner.h index ebe8f813d..d3f1c9382 100644 --- a/src/algorithms/conditioner/adapters/array_signal_conditioner.h +++ b/src/algorithms/conditioner/adapters/array_signal_conditioner.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/conditioner/adapters/signal_conditioner.cc b/src/algorithms/conditioner/adapters/signal_conditioner.cc index 0f47b3a11..72034c375 100644 --- a/src/algorithms/conditioner/adapters/signal_conditioner.cc +++ b/src/algorithms/conditioner/adapters/signal_conditioner.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/conditioner/adapters/signal_conditioner.h b/src/algorithms/conditioner/adapters/signal_conditioner.h index 60300b3ec..85dc8396c 100644 --- a/src/algorithms/conditioner/adapters/signal_conditioner.h +++ b/src/algorithms/conditioner/adapters/signal_conditioner.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/CMakeLists.txt b/src/algorithms/data_type_adapter/CMakeLists.txt index 5724f1d42..6037ad61f 100644 --- a/src/algorithms/data_type_adapter/CMakeLists.txt +++ b/src/algorithms/data_type_adapter/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -14,7 +14,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/data_type_adapter/adapters/CMakeLists.txt b/src/algorithms/data_type_adapter/adapters/CMakeLists.txt index d18c83b04..836e2bfd8 100644 --- a/src/algorithms/data_type_adapter/adapters/CMakeLists.txt +++ b/src/algorithms/data_type_adapter/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/data_type_adapter/adapters/byte_to_short.cc b/src/algorithms/data_type_adapter/adapters/byte_to_short.cc index 11373a58d..da842f7b7 100644 --- a/src/algorithms/data_type_adapter/adapters/byte_to_short.cc +++ b/src/algorithms/data_type_adapter/adapters/byte_to_short.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/byte_to_short.h b/src/algorithms/data_type_adapter/adapters/byte_to_short.h index 023c5710e..9b90f1d3b 100644 --- a/src/algorithms/data_type_adapter/adapters/byte_to_short.h +++ b/src/algorithms/data_type_adapter/adapters/byte_to_short.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc index 0bbced35e..1e75bccaa 100644 --- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc +++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h index 8b4f2ae06..7f0b83483 100644 --- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h +++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cbyte.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc index ed926ee9f..5862ee71d 100644 --- a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc +++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h index 3c71bf660..c768e4b46 100644 --- a/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h +++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_complex.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc index 7db7fef14..353004f9f 100644 --- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc +++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h index a7d6394d1..cc94b866f 100644 --- a/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h +++ b/src/algorithms/data_type_adapter/adapters/ibyte_to_cshort.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc index 8e79a25c7..af29494c0 100644 --- a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc +++ b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h index 53d9a0d8a..8a60afa15 100644 --- a/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h +++ b/src/algorithms/data_type_adapter/adapters/ishort_to_complex.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc index f0e294f66..225f0d6a9 100644 --- a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc +++ b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h index df8f68a06..382ce7716 100644 --- a/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h +++ b/src/algorithms/data_type_adapter/adapters/ishort_to_cshort.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt b/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt index afb7a12d7..872dabfcf 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc index 69a7987dd..f41662ed7 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h index 4e37602ed..c9ce17b4a 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_byte.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc index 7c154f820..c8b288f9b 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h index 88f1cc424..5eab0f314 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_byte_to_complex_short.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc index ddad5165f..fe4106ea8 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h index 64d1297bf..10287459a 100644 --- a/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h +++ b/src/algorithms/data_type_adapter/gnuradio_blocks/interleaved_short_to_complex_short.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/CMakeLists.txt b/src/algorithms/input_filter/CMakeLists.txt index 20a0f5449..64cb2a571 100644 --- a/src/algorithms/input_filter/CMakeLists.txt +++ b/src/algorithms/input_filter/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/input_filter/adapters/CMakeLists.txt b/src/algorithms/input_filter/adapters/CMakeLists.txt index 267ad9062..f12efd609 100644 --- a/src/algorithms/input_filter/adapters/CMakeLists.txt +++ b/src/algorithms/input_filter/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(INPUT_FILTER_ADAPTER_SOURCES diff --git a/src/algorithms/input_filter/adapters/beamformer_filter.cc b/src/algorithms/input_filter/adapters/beamformer_filter.cc index 683673111..f65034325 100644 --- a/src/algorithms/input_filter/adapters/beamformer_filter.cc +++ b/src/algorithms/input_filter/adapters/beamformer_filter.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/beamformer_filter.h b/src/algorithms/input_filter/adapters/beamformer_filter.h index 6f02ba4ef..78fec45ca 100644 --- a/src/algorithms/input_filter/adapters/beamformer_filter.h +++ b/src/algorithms/input_filter/adapters/beamformer_filter.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/fir_filter.cc b/src/algorithms/input_filter/adapters/fir_filter.cc index 4358bcccd..13775e2a1 100644 --- a/src/algorithms/input_filter/adapters/fir_filter.cc +++ b/src/algorithms/input_filter/adapters/fir_filter.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/fir_filter.h b/src/algorithms/input_filter/adapters/fir_filter.h index d5318b9d2..05c494b5f 100644 --- a/src/algorithms/input_filter/adapters/fir_filter.h +++ b/src/algorithms/input_filter/adapters/fir_filter.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc index e8ef0a964..8503b8ce0 100644 --- a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc +++ b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h index 02d49971f..d7549d9ab 100644 --- a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h +++ b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/notch_filter.cc b/src/algorithms/input_filter/adapters/notch_filter.cc index 9034c5fcf..a83372d17 100644 --- a/src/algorithms/input_filter/adapters/notch_filter.cc +++ b/src/algorithms/input_filter/adapters/notch_filter.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/notch_filter.h b/src/algorithms/input_filter/adapters/notch_filter.h index cb44a8059..3bdf5c688 100644 --- a/src/algorithms/input_filter/adapters/notch_filter.h +++ b/src/algorithms/input_filter/adapters/notch_filter.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/notch_filter_lite.cc b/src/algorithms/input_filter/adapters/notch_filter_lite.cc index 22e536c22..dea6ec7c7 100644 --- a/src/algorithms/input_filter/adapters/notch_filter_lite.cc +++ b/src/algorithms/input_filter/adapters/notch_filter_lite.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/notch_filter_lite.h b/src/algorithms/input_filter/adapters/notch_filter_lite.h index 9442b66cd..901326579 100644 --- a/src/algorithms/input_filter/adapters/notch_filter_lite.h +++ b/src/algorithms/input_filter/adapters/notch_filter_lite.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc b/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc index d2d5615c1..031a0a035 100644 --- a/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc +++ b/src/algorithms/input_filter/adapters/pulse_blanking_filter.cc @@ -5,7 +5,7 @@ * Antonio Ramos 2017 * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/adapters/pulse_blanking_filter.h b/src/algorithms/input_filter/adapters/pulse_blanking_filter.h index c1e521222..0d9d17cb4 100644 --- a/src/algorithms/input_filter/adapters/pulse_blanking_filter.h +++ b/src/algorithms/input_filter/adapters/pulse_blanking_filter.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt b/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt index caac50136..698c828dd 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/input_filter/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc b/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc index 4d0a0c2e5..afd217338 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc +++ b/src/algorithms/input_filter/gnuradio_blocks/beamformer.cc @@ -5,7 +5,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/beamformer.h b/src/algorithms/input_filter/gnuradio_blocks/beamformer.h index 392d0b94e..8236b11d3 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/beamformer.h +++ b/src/algorithms/input_filter/gnuradio_blocks/beamformer.h @@ -5,7 +5,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc index 632fd6d87..5e7870cd4 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc +++ b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h index b8e0a5880..160494346 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h +++ b/src/algorithms/input_filter/gnuradio_blocks/notch_cc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc index 82d5f5304..41d684a2a 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc +++ b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h index c2720180e..531bedc13 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h +++ b/src/algorithms/input_filter/gnuradio_blocks/notch_lite_cc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc index a59d5c2be..4a65097d0 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc +++ b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.cc @@ -5,7 +5,7 @@ * Antonio Ramos (antonio.ramosdet(at)gmail.com) * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h index 32f6eaf27..62e8ee0a7 100644 --- a/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h +++ b/src/algorithms/input_filter/gnuradio_blocks/pulse_blanking_cc.h @@ -5,7 +5,7 @@ * Antonio Ramos (antonio.ramosdet(at)gmail.com) * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/CMakeLists.txt b/src/algorithms/libs/CMakeLists.txt index 775ac6358..bdce5d1cf 100644 --- a/src/algorithms/libs/CMakeLists.txt +++ b/src/algorithms/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(rtklib) diff --git a/src/algorithms/libs/byte_x2_to_complex_byte.cc b/src/algorithms/libs/byte_x2_to_complex_byte.cc index d93b6ebef..7945f9573 100644 --- a/src/algorithms/libs/byte_x2_to_complex_byte.cc +++ b/src/algorithms/libs/byte_x2_to_complex_byte.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/byte_x2_to_complex_byte.h b/src/algorithms/libs/byte_x2_to_complex_byte.h index 50d43c07c..c7e49bc98 100644 --- a/src/algorithms/libs/byte_x2_to_complex_byte.h +++ b/src/algorithms/libs/byte_x2_to_complex_byte.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/complex_byte_to_float_x2.cc b/src/algorithms/libs/complex_byte_to_float_x2.cc index 0ca929627..ae0409d99 100644 --- a/src/algorithms/libs/complex_byte_to_float_x2.cc +++ b/src/algorithms/libs/complex_byte_to_float_x2.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/complex_byte_to_float_x2.h b/src/algorithms/libs/complex_byte_to_float_x2.h index bc8003d7d..74c2e9c55 100644 --- a/src/algorithms/libs/complex_byte_to_float_x2.h +++ b/src/algorithms/libs/complex_byte_to_float_x2.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/complex_float_to_complex_byte.cc b/src/algorithms/libs/complex_float_to_complex_byte.cc index e7256f792..57576a9b1 100644 --- a/src/algorithms/libs/complex_float_to_complex_byte.cc +++ b/src/algorithms/libs/complex_float_to_complex_byte.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/complex_float_to_complex_byte.h b/src/algorithms/libs/complex_float_to_complex_byte.h index d8205b9e9..74eb0b5c3 100644 --- a/src/algorithms/libs/complex_float_to_complex_byte.h +++ b/src/algorithms/libs/complex_float_to_complex_byte.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/conjugate_cc.cc b/src/algorithms/libs/conjugate_cc.cc index a439d1822..2a61e1526 100644 --- a/src/algorithms/libs/conjugate_cc.cc +++ b/src/algorithms/libs/conjugate_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/conjugate_cc.h b/src/algorithms/libs/conjugate_cc.h index 7f13c46de..a04cd2410 100644 --- a/src/algorithms/libs/conjugate_cc.h +++ b/src/algorithms/libs/conjugate_cc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/conjugate_ic.cc b/src/algorithms/libs/conjugate_ic.cc index 42ab9d8a9..c26f48388 100644 --- a/src/algorithms/libs/conjugate_ic.cc +++ b/src/algorithms/libs/conjugate_ic.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/conjugate_ic.h b/src/algorithms/libs/conjugate_ic.h index 472d68cd7..4b51f86da 100644 --- a/src/algorithms/libs/conjugate_ic.h +++ b/src/algorithms/libs/conjugate_ic.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/conjugate_sc.cc b/src/algorithms/libs/conjugate_sc.cc index 2e5c1cb4e..e62c6cc42 100644 --- a/src/algorithms/libs/conjugate_sc.cc +++ b/src/algorithms/libs/conjugate_sc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/conjugate_sc.h b/src/algorithms/libs/conjugate_sc.h index 3b85c9385..019d16dcb 100644 --- a/src/algorithms/libs/conjugate_sc.h +++ b/src/algorithms/libs/conjugate_sc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/cshort_to_float_x2.cc b/src/algorithms/libs/cshort_to_float_x2.cc index c328af8bc..accdb7826 100644 --- a/src/algorithms/libs/cshort_to_float_x2.cc +++ b/src/algorithms/libs/cshort_to_float_x2.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/cshort_to_float_x2.h b/src/algorithms/libs/cshort_to_float_x2.h index 6a59dcc8f..7a235e68a 100644 --- a/src/algorithms/libs/cshort_to_float_x2.h +++ b/src/algorithms/libs/cshort_to_float_x2.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/galileo_e1_signal_processing.cc b/src/algorithms/libs/galileo_e1_signal_processing.cc index beea0297c..2e0d224cf 100644 --- a/src/algorithms/libs/galileo_e1_signal_processing.cc +++ b/src/algorithms/libs/galileo_e1_signal_processing.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/galileo_e1_signal_processing.h b/src/algorithms/libs/galileo_e1_signal_processing.h index 5ce893638..f7133fd2d 100644 --- a/src/algorithms/libs/galileo_e1_signal_processing.h +++ b/src/algorithms/libs/galileo_e1_signal_processing.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/galileo_e5_signal_processing.cc b/src/algorithms/libs/galileo_e5_signal_processing.cc index d506de1fc..ca6eb675a 100644 --- a/src/algorithms/libs/galileo_e5_signal_processing.cc +++ b/src/algorithms/libs/galileo_e5_signal_processing.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/galileo_e5_signal_processing.h b/src/algorithms/libs/galileo_e5_signal_processing.h index 549621dba..998d3b98f 100644 --- a/src/algorithms/libs/galileo_e5_signal_processing.h +++ b/src/algorithms/libs/galileo_e5_signal_processing.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/glonass_l1_signal_processing.cc b/src/algorithms/libs/glonass_l1_signal_processing.cc index caeba3672..509137d15 100644 --- a/src/algorithms/libs/glonass_l1_signal_processing.cc +++ b/src/algorithms/libs/glonass_l1_signal_processing.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/glonass_l1_signal_processing.h b/src/algorithms/libs/glonass_l1_signal_processing.h index cf93a19a8..bcf1e89f2 100644 --- a/src/algorithms/libs/glonass_l1_signal_processing.h +++ b/src/algorithms/libs/glonass_l1_signal_processing.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/glonass_l2_signal_processing.cc b/src/algorithms/libs/glonass_l2_signal_processing.cc index 87e8cc4a1..fa82b88b1 100644 --- a/src/algorithms/libs/glonass_l2_signal_processing.cc +++ b/src/algorithms/libs/glonass_l2_signal_processing.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/glonass_l2_signal_processing.h b/src/algorithms/libs/glonass_l2_signal_processing.h index ae52e0680..ff4a699e1 100644 --- a/src/algorithms/libs/glonass_l2_signal_processing.h +++ b/src/algorithms/libs/glonass_l2_signal_processing.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_circular_deque.h b/src/algorithms/libs/gnss_circular_deque.h index d9694e722..030044f91 100644 --- a/src/algorithms/libs/gnss_circular_deque.h +++ b/src/algorithms/libs/gnss_circular_deque.h @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_flags.cc b/src/algorithms/libs/gnss_sdr_flags.cc index 38fe3858f..a43351916 100644 --- a/src/algorithms/libs/gnss_sdr_flags.cc +++ b/src/algorithms/libs/gnss_sdr_flags.cc @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_flags.h b/src/algorithms/libs/gnss_sdr_flags.h index 762e94fe8..bb97ca2dd 100644 --- a/src/algorithms/libs/gnss_sdr_flags.h +++ b/src/algorithms/libs/gnss_sdr_flags.h @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_sample_counter.cc b/src/algorithms/libs/gnss_sdr_sample_counter.cc index bfe53f6af..a94d4ddeb 100644 --- a/src/algorithms/libs/gnss_sdr_sample_counter.cc +++ b/src/algorithms/libs/gnss_sdr_sample_counter.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_sample_counter.h b/src/algorithms/libs/gnss_sdr_sample_counter.h index 761894855..f398684f5 100644 --- a/src/algorithms/libs/gnss_sdr_sample_counter.h +++ b/src/algorithms/libs/gnss_sdr_sample_counter.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_time_counter.cc b/src/algorithms/libs/gnss_sdr_time_counter.cc index 614501f36..a4874ac4b 100644 --- a/src/algorithms/libs/gnss_sdr_time_counter.cc +++ b/src/algorithms/libs/gnss_sdr_time_counter.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_time_counter.h b/src/algorithms/libs/gnss_sdr_time_counter.h index 4a424ce12..91261e37d 100644 --- a/src/algorithms/libs/gnss_sdr_time_counter.h +++ b/src/algorithms/libs/gnss_sdr_time_counter.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_valve.cc b/src/algorithms/libs/gnss_sdr_valve.cc index 5a6a15979..b49ab50f9 100644 --- a/src/algorithms/libs/gnss_sdr_valve.cc +++ b/src/algorithms/libs/gnss_sdr_valve.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_sdr_valve.h b/src/algorithms/libs/gnss_sdr_valve.h index d06a72d81..725a34353 100644 --- a/src/algorithms/libs/gnss_sdr_valve.h +++ b/src/algorithms/libs/gnss_sdr_valve.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_signal_processing.cc b/src/algorithms/libs/gnss_signal_processing.cc index 41f44a7a8..1d3be66e3 100644 --- a/src/algorithms/libs/gnss_signal_processing.cc +++ b/src/algorithms/libs/gnss_signal_processing.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gnss_signal_processing.h b/src/algorithms/libs/gnss_signal_processing.h index b9f7f266a..514815d82 100644 --- a/src/algorithms/libs/gnss_signal_processing.h +++ b/src/algorithms/libs/gnss_signal_processing.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gps_l2c_signal.cc b/src/algorithms/libs/gps_l2c_signal.cc index a0d266ab7..81ad79c78 100644 --- a/src/algorithms/libs/gps_l2c_signal.cc +++ b/src/algorithms/libs/gps_l2c_signal.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gps_l2c_signal.h b/src/algorithms/libs/gps_l2c_signal.h index 627588355..c76c4692f 100644 --- a/src/algorithms/libs/gps_l2c_signal.h +++ b/src/algorithms/libs/gps_l2c_signal.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gps_l5_signal.cc b/src/algorithms/libs/gps_l5_signal.cc index 0bacbea7b..84cc1843e 100644 --- a/src/algorithms/libs/gps_l5_signal.cc +++ b/src/algorithms/libs/gps_l5_signal.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gps_l5_signal.h b/src/algorithms/libs/gps_l5_signal.h index 928180e9a..d226b0288 100644 --- a/src/algorithms/libs/gps_l5_signal.h +++ b/src/algorithms/libs/gps_l5_signal.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gps_sdr_signal_processing.cc b/src/algorithms/libs/gps_sdr_signal_processing.cc index fe280c293..4dee98f05 100644 --- a/src/algorithms/libs/gps_sdr_signal_processing.cc +++ b/src/algorithms/libs/gps_sdr_signal_processing.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/gps_sdr_signal_processing.h b/src/algorithms/libs/gps_sdr_signal_processing.h index caeab2a0b..b65db9144 100644 --- a/src/algorithms/libs/gps_sdr_signal_processing.h +++ b/src/algorithms/libs/gps_sdr_signal_processing.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/pass_through.cc b/src/algorithms/libs/pass_through.cc index d05224266..4859af83d 100644 --- a/src/algorithms/libs/pass_through.cc +++ b/src/algorithms/libs/pass_through.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/pass_through.h b/src/algorithms/libs/pass_through.h index f1d8c5f72..83100eab2 100644 --- a/src/algorithms/libs/pass_through.h +++ b/src/algorithms/libs/pass_through.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/rtklib/CMakeLists.txt b/src/algorithms/libs/rtklib/CMakeLists.txt index d2fbe78c9..6cb2441a9 100644 --- a/src/algorithms/libs/rtklib/CMakeLists.txt +++ b/src/algorithms/libs/rtklib/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_definitions( -DGNSS_SDR_VERSION="${VERSION}" ) diff --git a/src/algorithms/libs/rtklib/rtklib_conversions.cc b/src/algorithms/libs/rtklib/rtklib_conversions.cc index 2ff6a575c..7953509a2 100644 --- a/src/algorithms/libs/rtklib/rtklib_conversions.cc +++ b/src/algorithms/libs/rtklib/rtklib_conversions.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/rtklib/rtklib_conversions.h b/src/algorithms/libs/rtklib/rtklib_conversions.h index 22a8501a5..11f4208d1 100644 --- a/src/algorithms/libs/rtklib/rtklib_conversions.h +++ b/src/algorithms/libs/rtklib/rtklib_conversions.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/short_x2_to_cshort.cc b/src/algorithms/libs/short_x2_to_cshort.cc index b53635172..90c842530 100644 --- a/src/algorithms/libs/short_x2_to_cshort.cc +++ b/src/algorithms/libs/short_x2_to_cshort.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/short_x2_to_cshort.h b/src/algorithms/libs/short_x2_to_cshort.h index aec984732..a95ae1214 100644 --- a/src/algorithms/libs/short_x2_to_cshort.h +++ b/src/algorithms/libs/short_x2_to_cshort.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt index f9634c801..017132296 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -14,7 +14,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # ######################################################################## diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/COPYING b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/COPYING index 818433ecc..8859f3d09 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/COPYING +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/COPYING @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt index 92f0a0948..c95967d70 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -14,7 +14,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # ######################################################################## diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr-config-info.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr-config-info.cc index 60c421be3..ffc551ac1 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr-config-info.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr-config-info.cc @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #if HAVE_CONFIG_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.cc index a6a263a20..3c1853d05 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.cc @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include "volk_gnsssdr_option_helpers.h" diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.h index a0f7406db..cd8a6258c 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_option_helpers.h @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef VOLK_GNSSSDR_OPTION_HELPERS_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.cc index ca340b729..8c9997ef9 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.cc @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include "kernel_tests.h" // for init_test_list diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.h index bd22b3e84..33187a87d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/apps/volk_gnsssdr_profile.h @@ -4,7 +4,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -22,7 +22,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake index ddd103a05..0341d3f7b 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . FIND_PACKAGE(PkgConfig) 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 727230715..b01a99594 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . if(DEFINED __INCLUDED_VOLK_ADD_TEST) return() 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 c875492b4..074b7003e 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . 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 1d0e810b1..53e47ddbf 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . 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 1f41de730..4838f13c0 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . 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 d7403f913..d7694fdb9 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . set(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 ed7118562..085a32030 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . 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 1cc60fedf..33d5f21db 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . 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 index 850220b28..bbe2f262e 100644 --- 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Toolchain file for building native on a ARM Cortex A8 w/ NEON 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 index b4b79185e..87bfae005 100644 --- 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 @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . ######################################################################## # Toolchain file for building native on a ARM Cortex A8 w/ NEON diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in index 7719dec23..a6191a104 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h index 5b3c7f8f4..cc76ff9b2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/msvc/config.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef _MSC_VER // [ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_arch_defs.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_arch_defs.py index cfce6d5b2..1a1248ad2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_arch_defs.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_arch_defs.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # from __future__ import print_function diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_compile_utils.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_compile_utils.py index 3ddc204d3..5ef4e1c8c 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_compile_utils.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_compile_utils.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # from __future__ import print_function diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_kernel_defs.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_kernel_defs.py index 9d15867ab..9daddda73 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_kernel_defs.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_kernel_defs.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_machine_defs.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_machine_defs.py index bd68c2326..26e77ec5e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_machine_defs.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_machine_defs.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # from __future__ import print_function diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py index 200283947..55e466788 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/gen/volk_gnsssdr_tmpl_utils.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # from __future__ import print_function diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/constants.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/constants.h index 066f8d6b6..3bcfbe645 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/constants.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/constants.h @@ -3,7 +3,7 @@ * \brief Definition of VOLK_GNSSSDR-related constants * \author Andres Cecilia, 2014. a.cecilia.luque(at)gmail.com * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -18,7 +18,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_CONSTANTS_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/saturation_arithmetic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/saturation_arithmetic.h index 77a6cc84d..856c62cb2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/saturation_arithmetic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/saturation_arithmetic.h @@ -3,7 +3,7 @@ * \brief Defines addition of 16-bit integers with saturation * \author Javier Arribas, 2015. javier.arribas(at)cttc.es * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -18,7 +18,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_avx_intrinsics.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_avx_intrinsics.h index dbb67f986..e98b24e27 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_avx_intrinsics.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_avx_intrinsics.h @@ -4,7 +4,7 @@ * \brief This file is intended to hold AVX intrinsics of intrinsics. * They should be used in VOLK kernels to avoid copy-paste. * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_common.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_common.h index d97ce89b1..b8d3d444d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_common.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_common.h @@ -3,7 +3,7 @@ * \brief Cross-platform attribute macros * \author Andres Cecilia, 2014. a.cecilia.luque(at)gmail.com * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -18,7 +18,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_LIBVOLK_GNSSSDR_COMMON_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_complex.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_complex.h index 648eb26f9..1382d48ce 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_complex.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_complex.h @@ -3,7 +3,7 @@ * \brief Provide typedefs and operators for all complex types in C and C++. * \author Andres Cecilia, 2014. a.cecilia.luque(at)gmail.com * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -18,7 +18,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDE_VOLK_COMPLEX_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_malloc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_malloc.h index 4371f5cb5..eefc87339 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_malloc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_malloc.h @@ -4,7 +4,7 @@ * returns a pointer to the allocated memory. * \author Andres Cecilia, 2014. a.cecilia.luque(at)gmail.com * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_MALLOC_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_neon_intrinsics.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_neon_intrinsics.h index 0de07d600..d7b5d376e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_neon_intrinsics.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_neon_intrinsics.h @@ -4,7 +4,7 @@ * \brief Holds NEON intrinsics of intrinsics. * They can be used in VOLK_GNSSSDR kernels to avoid copy-paste * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_NEON_INTRINSICS_H_ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_prefs.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_prefs.h index 372079450..199c9256f 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_prefs.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_prefs.h @@ -4,7 +4,7 @@ * prefs into global prefs struct * \author Andres Cecilia, 2014. a.cecilia.luque(at)gmail.com * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_PREFS_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sine_table.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sine_table.h index 4ba0bb631..4f2727c4b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sine_table.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sine_table.h @@ -3,7 +3,7 @@ * \brief Sine table * \author Carles Fernandez-Prades, 2015 cfernandez(at)cttc.es * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -18,7 +18,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse3_intrinsics.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse3_intrinsics.h index 6f5b25673..bc25483e0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse3_intrinsics.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse3_intrinsics.h @@ -4,7 +4,7 @@ * \brief Holds SSE3 intrinsics of intrinsics. * They should be used in VOLK kernels to avoid copy-paste. * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse_intrinsics.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse_intrinsics.h index 9de170708..9366775ec 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse_intrinsics.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include/volk_gnsssdr/volk_gnsssdr_sse_intrinsics.h @@ -4,7 +4,7 @@ * \brief Holds SSE intrinsics of intrinsics. * They should be used in VOLK kernels to avoid copy-paste * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -19,7 +19,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_VOLK_SSE_INTRINSICS_H_ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_16sc_magnitude_32f_aligned16_orc_impl.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_16sc_magnitude_32f_aligned16_orc_impl.orc index deef65904..c51514cd7 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_16sc_magnitude_32f_aligned16_orc_impl.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_16sc_magnitude_32f_aligned16_orc_impl.orc @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # .function volk_gnsssdr_16ic_magnitude_32f_a_orc_impl diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32f_x2_add_32f.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32f_x2_add_32f.orc index 887b8d6d9..3fcf5ef12 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32f_x2_add_32f.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32f_x2_add_32f.orc @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # .function volk_gnsssdr_32f_x2_add_32f_a_orc_impl diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_s32fc_multiply_32fc.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_s32fc_multiply_32fc.orc index 7ac882022..3a887137b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_s32fc_multiply_32fc.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_s32fc_multiply_32fc.orc @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # .function volk_gnsssdr_32fc_s32fc_multiply_32fc_a_orc_impl diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_x2_multiply_32fc.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_x2_multiply_32fc.orc index d1909f916..e9a6a0c60 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_x2_multiply_32fc.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_32fc_x2_multiply_32fc.orc @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # .function volk_gnsssdr_32fc_x2_multiply_32fc_a_orc_impl diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_accumulator_s8i.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_accumulator_s8i.orc index 0bf013391..0a172e80e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_accumulator_s8i.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_accumulator_s8i.orc @@ -7,7 +7,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -25,7 +25,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_x2_add_8i.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_x2_add_8i.orc index 30c3d354b..a5ff92e14 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_x2_add_8i.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8i_x2_add_8i.orc @@ -6,7 +6,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -24,7 +24,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_conjugate_8ic.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_conjugate_8ic.orc index b006f75d5..c6c2a1f6a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_conjugate_8ic.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_conjugate_8ic.orc @@ -10,7 +10,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -28,7 +28,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_magnitude_squared_8i.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_magnitude_squared_8i.orc index 3d271dfb6..e28bc323d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_magnitude_squared_8i.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_magnitude_squared_8i.orc @@ -10,7 +10,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -28,7 +28,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_s8ic_multiply_8ic.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_s8ic_multiply_8ic.orc index 0033a0bf7..038f8cc59 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_s8ic_multiply_8ic.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_s8ic_multiply_8ic.orc @@ -9,7 +9,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -27,7 +27,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_dot_prod_8ic.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_dot_prod_8ic.orc index d16fb3975..3af6dab5b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_dot_prod_8ic.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_dot_prod_8ic.orc @@ -10,7 +10,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -28,7 +28,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_multiply_8ic.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_multiply_8ic.orc index 1198b9da5..2d7e8e025 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_multiply_8ic.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x2_multiply_8ic.orc @@ -10,7 +10,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -28,7 +28,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x5_cw_epl_corr_8ic_x3.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x5_cw_epl_corr_8ic_x3.orc index 5fcf360d6..7b202294f 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x5_cw_epl_corr_8ic_x3.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8ic_x5_cw_epl_corr_8ic_x3.orc @@ -19,7 +19,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -37,7 +37,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8u_x2_multiply_8u.orc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8u_x2_multiply_8u.orc index 64ba8f4fc..c638fc5d5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8u_x2_multiply_8u.orc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/asm/orc/volk_gnsssdr_8u_x2_multiply_8u.orc @@ -8,7 +8,7 @@ # # ------------------------------------------------------------------------- # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # GNSS-SDR is a software defined Global Navigation # Satellite Systems receiver @@ -26,7 +26,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # ------------------------------------------------------------------------- # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h index 12e95411e..9fb835bd6 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_resamplerxnpuppet_16i.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h index 7547ca5d8..6413265b2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16i_xn_resampler_16i_xn.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h index 71d4d3c86..b52e032f1 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h index 7466ac2c2..ddefa24dc 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h index cefef96c6..035ae676b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_conjugate_16ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h index eaaedaba5..5e2bf1c0a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_convert_32fc.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h index d2f43e708..29dfcd767 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resampler_fast_16ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h index 03032e01d..697bb3b34 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h index 9eff06510..8355d1f67 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerfastxnpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h index 8ca8e7e33..3bc7aa0bc 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_resamplerxnpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h index 0438931e0..8f1c1beb5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_rotatorpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h index b43a5d95e..0caba5e9b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_s32fc_x2_rotator_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h index d7563e1f5..4834354f5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h index 5410222d0..e45b885a9 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dot_prod_16ic_xn.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h index 9faf03be6..eeec91a59 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h index 29d4f5465..4838c3559 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_multiply_16ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h index 44444efd5..24b2454c4 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h index 8196c09a6..610d7a884 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h index 64eeb6d4a..8e60443b0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_16ic_xn.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h index 68b75f813..36c5089b6 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_16ic_xn_resampler_fast_16ic_xn.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h index af22131f1..26b41aadd 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_index_max_32u.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h index b27579ff3..1ee4f64cb 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_resamplerxnpuppet_32f.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h index ef009d1cf..e28fd610d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32f_xn_resampler_32f_xn.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h index 211d979cf..a87bad93e 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc.h index 0804dd651..69f948d45 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h index afb79afcc..85d902d7d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_16ic.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h index 82bc4940e..ff4202ca4 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_convert_8ic.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h index 598e3b821..0757c9776 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_resamplerxnpuppet_32fc.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h index 257ae2900..32c51fa55 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dot_prod_32fc_xn.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h index 9bbe75662..7eeb01dc7 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_x2_rotator_dotprodxnpuppet_32fc.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h index aaa43fec7..98dba44cf 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_32fc_xn_resampler_32fc_xn.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_64f_accumulator_64f.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_64f_accumulator_64f.h index b686b6c5d..0af6fff1b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_64f_accumulator_64f.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_64f_accumulator_64f.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_accumulator_s8i.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_accumulator_s8i.h index 9e141c6c4..8753a7a32 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_accumulator_s8i.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_accumulator_s8i.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_index_max_16u.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_index_max_16u.h index 2af8c55d9..08fdcff80 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_index_max_16u.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_index_max_16u.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_max_s8i.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_max_s8i.h index d748281c3..dffe14c12 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_max_s8i.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_max_s8i.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_x2_add_8i.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_x2_add_8i.h index 4d25cf923..d1d3e0ed5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_x2_add_8i.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8i_x2_add_8i.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h index 814788d61..3217c7986 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_conjugate_8ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_magnitude_squared_8i.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_magnitude_squared_8i.h index d9dd67716..3f58617f0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_magnitude_squared_8i.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_magnitude_squared_8i.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_s8ic_multiply_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_s8ic_multiply_8ic.h index 3c949b3db..f43ab659b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_s8ic_multiply_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_s8ic_multiply_8ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h index 33102b385..47d9ccaaf 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_dot_prod_8ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_multiply_8ic.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_multiply_8ic.h index 0d8c1d6b3..1f566eabd 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_multiply_8ic.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8ic_x2_multiply_8ic.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8u_x2_multiply_8u.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8u_x2_multiply_8u.h index e953954f0..32785fe43 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8u_x2_multiply_8u.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_8u_x2_multiply_8u.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h index 9b1595e9d..ac86c52a2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/kernels/volk_gnsssdr/volk_gnsssdr_s32f_sincospuppet_32fc.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt index c6bf3c949..ec4d5ab2c 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -14,7 +14,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/constants.c.in b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/constants.c.in index a28fdc39f..7277d37a2 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/constants.c.in +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/constants.c.in @@ -1,5 +1,5 @@ /* -*- c++ -*- */ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #if HAVE_CONFIG_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/kernel_tests.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/kernel_tests.h index 733ca74bb..d9fca252a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/kernel_tests.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/kernel_tests.h @@ -4,7 +4,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -22,7 +22,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc index 39c142a82..cf26c9bea 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include "volk_gnsssdr/volk_gnsssdr.h" // for volk_gnsssdr_func_desc_t diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.h index b2a66fb58..e0a265c92 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.h @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef GNSS_SDR_VOLK_QA_UTILS_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc index ed57aeb03..4b4ec2a2f 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_malloc.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_malloc.c index d92325f48..bdeaaf7c3 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_malloc.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_malloc.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include "volk_gnsssdr/volk_gnsssdr_malloc.h" diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_prefs.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_prefs.c index b9a55a284..87a51732d 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_prefs.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_prefs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.c index 96fa4e77e..d231e9e96 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.h index ba0638a54..335d4a279 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/volk_gnsssdr_rank_archs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef GNSS_SDR_VOLK_GNSSSDR_RANK_ARCHS_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/CMakeLists.txt index 1a3a8c8ef..3309080ba 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # ######################################################################## diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/__init__.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/__init__.py index 486360958..db03736dd 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/__init__.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/cfg.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/cfg.py index 899950354..bb2f511d8 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/cfg.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/cfg.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool index 375558dd8..898a1f658 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -15,7 +15,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # from volk_gnsssdr_modtool import volk_gnsssdr_modtool, volk_gnsssdr_modtool_config diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool_generate.py b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool_generate.py index 340933018..3384ecd91 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool_generate.py +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/python/volk_gnsssdr_modtool/volk_gnsssdr_modtool_generate.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c index bee754747..260f1fe77 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h index 8a4c7799b..cfde1b241 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr.tmpl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_RUNTIME diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h index 84be60772..29c936d7b 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_config_fixed.tmpl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c index d690bc993..4aba13014 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h index 2122944fc..940c2e30a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_cpu.tmpl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_CPU_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c index 8492adb4d..30bdb47d5 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machine_xxx.tmpl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ // clang-format off diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c index c89eb251c..91d9748a0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #include diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h index 9a7e78cef..70ee588ca 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_machines.tmpl.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_LIBVOLK_GNSSSDR_MACHINES_H diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h index 80fc36436..2d7ac6a30 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/tmpl/volk_gnsssdr_typedefs.tmpl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +/* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * This file is part of GNSS-SDR. * @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . */ #ifndef INCLUDED_VOLK_GNSSSDR_TYPEDEFS diff --git a/src/algorithms/observables/CMakeLists.txt b/src/algorithms/observables/CMakeLists.txt index 20a0f5449..64cb2a571 100644 --- a/src/algorithms/observables/CMakeLists.txt +++ b/src/algorithms/observables/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/observables/adapters/CMakeLists.txt b/src/algorithms/observables/adapters/CMakeLists.txt index 882b22d83..d3cff285a 100644 --- a/src/algorithms/observables/adapters/CMakeLists.txt +++ b/src/algorithms/observables/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(OBS_ADAPTER_SOURCES diff --git a/src/algorithms/observables/adapters/hybrid_observables.cc b/src/algorithms/observables/adapters/hybrid_observables.cc index 9a3b65367..4313edfee 100644 --- a/src/algorithms/observables/adapters/hybrid_observables.cc +++ b/src/algorithms/observables/adapters/hybrid_observables.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/observables/adapters/hybrid_observables.h b/src/algorithms/observables/adapters/hybrid_observables.h index 8751811fd..57883374a 100644 --- a/src/algorithms/observables/adapters/hybrid_observables.h +++ b/src/algorithms/observables/adapters/hybrid_observables.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt b/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt index e3db8ebcf..276908208 100644 --- a/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(OBS_GR_BLOCKS_SOURCES diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc index 159d5f1fb..aa7d49cd7 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h index 5772464e2..409327d9c 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/CMakeLists.txt b/src/algorithms/resampler/CMakeLists.txt index 20a0f5449..64cb2a571 100644 --- a/src/algorithms/resampler/CMakeLists.txt +++ b/src/algorithms/resampler/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/resampler/adapters/CMakeLists.txt b/src/algorithms/resampler/adapters/CMakeLists.txt index 0a44d3454..886ad5487 100644 --- a/src/algorithms/resampler/adapters/CMakeLists.txt +++ b/src/algorithms/resampler/adapters/CMakeLists.txt @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(RESAMPLER_ADAPTER_SOURCES diff --git a/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc b/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc index db38b8be3..c9524bca7 100644 --- a/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc +++ b/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/adapters/direct_resampler_conditioner.h b/src/algorithms/resampler/adapters/direct_resampler_conditioner.h index 870743c30..a874b9268 100644 --- a/src/algorithms/resampler/adapters/direct_resampler_conditioner.h +++ b/src/algorithms/resampler/adapters/direct_resampler_conditioner.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/adapters/mmse_resampler_conditioner.cc b/src/algorithms/resampler/adapters/mmse_resampler_conditioner.cc index 2acf89de0..382358ce9 100644 --- a/src/algorithms/resampler/adapters/mmse_resampler_conditioner.cc +++ b/src/algorithms/resampler/adapters/mmse_resampler_conditioner.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/adapters/mmse_resampler_conditioner.h b/src/algorithms/resampler/adapters/mmse_resampler_conditioner.h index 4b0885ba3..b5c20c846 100644 --- a/src/algorithms/resampler/adapters/mmse_resampler_conditioner.h +++ b/src/algorithms/resampler/adapters/mmse_resampler_conditioner.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/gnuradio_blocks/CMakeLists.txt b/src/algorithms/resampler/gnuradio_blocks/CMakeLists.txt index f7d08172e..70db5015e 100644 --- a/src/algorithms/resampler/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/resampler/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc index f51a9d45c..e5926468b 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.h b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.h index a86ee08db..c6f77232c 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.h +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cb.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc index b7eb65691..ca39ff4a1 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.h b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.h index 26a24d5eb..7548a700c 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.h +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cc.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc index 32eb06241..6fc2dcf43 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.h b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.h index a8b5a6874..b57b1b438 100644 --- a/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.h +++ b/src/algorithms/resampler/gnuradio_blocks/direct_resampler_conditioner_cs.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_generator/CMakeLists.txt b/src/algorithms/signal_generator/CMakeLists.txt index c82608385..1841d3dfc 100644 --- a/src/algorithms/signal_generator/CMakeLists.txt +++ b/src/algorithms/signal_generator/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/signal_generator/adapters/CMakeLists.txt b/src/algorithms/signal_generator/adapters/CMakeLists.txt index e81249232..3d141ddb3 100644 --- a/src/algorithms/signal_generator/adapters/CMakeLists.txt +++ b/src/algorithms/signal_generator/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(SIGNAL_GENERATOR_ADAPTER_SOURCES signal_generator.cc) diff --git a/src/algorithms/signal_generator/adapters/signal_generator.cc b/src/algorithms/signal_generator/adapters/signal_generator.cc index fab20c06e..781738b4c 100644 --- a/src/algorithms/signal_generator/adapters/signal_generator.cc +++ b/src/algorithms/signal_generator/adapters/signal_generator.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_generator/adapters/signal_generator.h b/src/algorithms/signal_generator/adapters/signal_generator.h index 567f49754..52a2a0f82 100644 --- a/src/algorithms/signal_generator/adapters/signal_generator.h +++ b/src/algorithms/signal_generator/adapters/signal_generator.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_generator/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_generator/gnuradio_blocks/CMakeLists.txt index f0417f7b4..55e2e9bd6 100644 --- a/src/algorithms/signal_generator/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_generator/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(SIGNAL_GENERATOR_BLOCK_SOURCES signal_generator_c.cc) diff --git a/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc b/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc index 848059434..824b5d76a 100644 --- a/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc +++ b/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * -* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License -* along with GNSS-SDR. If not, see . +* along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.h b/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.h index 1dce88924..ddcc0f1fb 100644 --- a/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.h +++ b/src/algorithms/signal_generator/gnuradio_blocks/signal_generator_c.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/CMakeLists.txt b/src/algorithms/signal_source/CMakeLists.txt index 5cd1218c0..9a158daa9 100644 --- a/src/algorithms/signal_source/CMakeLists.txt +++ b/src/algorithms/signal_source/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(libs) diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index a502b6e30..c2fa1de07 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # file(GLOB SIGNAL_SOURCE_ADAPTER_HEADERS "*.h") diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index 02be88152..4c95cf547 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h index 2a98e3017..5fee04b1a 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/file_signal_source.cc b/src/algorithms/signal_source/adapters/file_signal_source.cc index 7a63c0795..188d5ff16 100644 --- a/src/algorithms/signal_source/adapters/file_signal_source.cc +++ b/src/algorithms/signal_source/adapters/file_signal_source.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/file_signal_source.h b/src/algorithms/signal_source/adapters/file_signal_source.h index 9628010cd..97fda6ddf 100644 --- a/src/algorithms/signal_source/adapters/file_signal_source.h +++ b/src/algorithms/signal_source/adapters/file_signal_source.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/flexiband_signal_source.cc b/src/algorithms/signal_source/adapters/flexiband_signal_source.cc index 635ef267d..83ee0faee 100644 --- a/src/algorithms/signal_source/adapters/flexiband_signal_source.cc +++ b/src/algorithms/signal_source/adapters/flexiband_signal_source.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/flexiband_signal_source.h b/src/algorithms/signal_source/adapters/flexiband_signal_source.h index 82c28922f..dbf7e567e 100644 --- a/src/algorithms/signal_source/adapters/flexiband_signal_source.h +++ b/src/algorithms/signal_source/adapters/flexiband_signal_source.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc b/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc index 6caf9ddee..fbbb8a972 100644 --- a/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc +++ b/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/fmcomms2_signal_source.h b/src/algorithms/signal_source/adapters/fmcomms2_signal_source.h index 014299981..050e50402 100644 --- a/src/algorithms/signal_source/adapters/fmcomms2_signal_source.h +++ b/src/algorithms/signal_source/adapters/fmcomms2_signal_source.h @@ -7,7 +7,7 @@ * This class represent a fmcomms2 signal source. It use the gr_iio block * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/gen_signal_source.cc b/src/algorithms/signal_source/adapters/gen_signal_source.cc index f14d803d5..1900fdf04 100644 --- a/src/algorithms/signal_source/adapters/gen_signal_source.cc +++ b/src/algorithms/signal_source/adapters/gen_signal_source.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/gen_signal_source.h b/src/algorithms/signal_source/adapters/gen_signal_source.h index d9c9129bf..49fb25293 100644 --- a/src/algorithms/signal_source/adapters/gen_signal_source.h +++ b/src/algorithms/signal_source/adapters/gen_signal_source.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/gn3s_signal_source.cc b/src/algorithms/signal_source/adapters/gn3s_signal_source.cc index ae4e06f12..8867fca8a 100644 --- a/src/algorithms/signal_source/adapters/gn3s_signal_source.cc +++ b/src/algorithms/signal_source/adapters/gn3s_signal_source.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/gn3s_signal_source.h b/src/algorithms/signal_source/adapters/gn3s_signal_source.h index d1f8e67bf..42fd6e581 100644 --- a/src/algorithms/signal_source/adapters/gn3s_signal_source.h +++ b/src/algorithms/signal_source/adapters/gn3s_signal_source.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/labsat_signal_source.cc b/src/algorithms/signal_source/adapters/labsat_signal_source.cc index 1a342705d..69f7f393e 100644 --- a/src/algorithms/signal_source/adapters/labsat_signal_source.cc +++ b/src/algorithms/signal_source/adapters/labsat_signal_source.cc @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/labsat_signal_source.h b/src/algorithms/signal_source/adapters/labsat_signal_source.h index 2a5775a67..ef11713e3 100644 --- a/src/algorithms/signal_source/adapters/labsat_signal_source.h +++ b/src/algorithms/signal_source/adapters/labsat_signal_source.h @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/nsr_file_signal_source.cc b/src/algorithms/signal_source/adapters/nsr_file_signal_source.cc index b700adc2e..bcf24343b 100644 --- a/src/algorithms/signal_source/adapters/nsr_file_signal_source.cc +++ b/src/algorithms/signal_source/adapters/nsr_file_signal_source.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/nsr_file_signal_source.h b/src/algorithms/signal_source/adapters/nsr_file_signal_source.h index e2da08206..c1e0f6bb4 100644 --- a/src/algorithms/signal_source/adapters/nsr_file_signal_source.h +++ b/src/algorithms/signal_source/adapters/nsr_file_signal_source.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/osmosdr_signal_source.cc b/src/algorithms/signal_source/adapters/osmosdr_signal_source.cc index f40bed4fe..57b32fbaa 100644 --- a/src/algorithms/signal_source/adapters/osmosdr_signal_source.cc +++ b/src/algorithms/signal_source/adapters/osmosdr_signal_source.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/osmosdr_signal_source.h b/src/algorithms/signal_source/adapters/osmosdr_signal_source.h index 8541adeaa..ac50d53ca 100644 --- a/src/algorithms/signal_source/adapters/osmosdr_signal_source.h +++ b/src/algorithms/signal_source/adapters/osmosdr_signal_source.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/plutosdr_signal_source.cc b/src/algorithms/signal_source/adapters/plutosdr_signal_source.cc index e0dd00d4b..f77241ded 100644 --- a/src/algorithms/signal_source/adapters/plutosdr_signal_source.cc +++ b/src/algorithms/signal_source/adapters/plutosdr_signal_source.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/plutosdr_signal_source.h b/src/algorithms/signal_source/adapters/plutosdr_signal_source.h index 176f7ef6a..9b27220a1 100644 --- a/src/algorithms/signal_source/adapters/plutosdr_signal_source.h +++ b/src/algorithms/signal_source/adapters/plutosdr_signal_source.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/raw_array_signal_source.cc b/src/algorithms/signal_source/adapters/raw_array_signal_source.cc index d13df7895..04f4c8011 100644 --- a/src/algorithms/signal_source/adapters/raw_array_signal_source.cc +++ b/src/algorithms/signal_source/adapters/raw_array_signal_source.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/raw_array_signal_source.h b/src/algorithms/signal_source/adapters/raw_array_signal_source.h index 083041ccc..a00be1821 100644 --- a/src/algorithms/signal_source/adapters/raw_array_signal_source.h +++ b/src/algorithms/signal_source/adapters/raw_array_signal_source.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.cc b/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.cc index 2eee7ac21..a0f9880fd 100644 --- a/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.h b/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.h index 4efbc862f..a1966c3ad 100644 --- a/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.h +++ b/src/algorithms/signal_source/adapters/rtl_tcp_signal_source.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/spir_file_signal_source.cc b/src/algorithms/signal_source/adapters/spir_file_signal_source.cc index 226c301ee..d49ce9aca 100644 --- a/src/algorithms/signal_source/adapters/spir_file_signal_source.cc +++ b/src/algorithms/signal_source/adapters/spir_file_signal_source.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/spir_file_signal_source.h b/src/algorithms/signal_source/adapters/spir_file_signal_source.h index ebd4e3454..70a7eb659 100644 --- a/src/algorithms/signal_source/adapters/spir_file_signal_source.h +++ b/src/algorithms/signal_source/adapters/spir_file_signal_source.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.cc b/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.cc index 9f37b335f..24d97369b 100644 --- a/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.cc +++ b/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.h b/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.h index 4d3f55e71..606bbd313 100644 --- a/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.h +++ b/src/algorithms/signal_source/adapters/spir_gss6450_file_signal_source.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.cc b/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.cc index 0d439e8ad..d6d10e59e 100644 --- a/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.cc +++ b/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.h b/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.h index 1e37cdc7f..c0f58687e 100644 --- a/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.h +++ b/src/algorithms/signal_source/adapters/two_bit_cpx_file_signal_source.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.cc b/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.cc index 55cdf8335..5dbc6a5a5 100644 --- a/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.cc +++ b/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.h b/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.h index 8f10a5887..2a1db00bc 100644 --- a/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.h +++ b/src/algorithms/signal_source/adapters/two_bit_packed_file_signal_source.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/uhd_signal_source.cc b/src/algorithms/signal_source/adapters/uhd_signal_source.cc index 7681a6ca9..f0c9fcb12 100644 --- a/src/algorithms/signal_source/adapters/uhd_signal_source.cc +++ b/src/algorithms/signal_source/adapters/uhd_signal_source.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/adapters/uhd_signal_source.h b/src/algorithms/signal_source/adapters/uhd_signal_source.h index f2b85ec4b..bfe13ddb1 100644 --- a/src/algorithms/signal_source/adapters/uhd_signal_source.h +++ b/src/algorithms/signal_source/adapters/uhd_signal_source.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt index a9252edb0..7469b6192 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc b/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc index 634b79cff..89e535df8 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.cc @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.h b/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.h index 311a8a08d..e7776efd9 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.h +++ b/src/algorithms/signal_source/gnuradio_blocks/labsat23_source.h @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc index cad8c570f..c956f4f4c 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.h b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.h index add22b03b..3c8c4529a 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.h +++ b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.cc index 6af2f3dd7..994ae5a22 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.cc @@ -5,7 +5,7 @@ * \author Cillian O'Driscoll cillian.odriscoll (at) gmail.com * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.h index 5d927d032..b2148b23b 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.h +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_2bit_samples.h @@ -42,7 +42,7 @@ * \author Cillian O'Driscoll cillian.odriscoll (at) gmail . com * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -60,7 +60,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc index 5927bab18..ae2e2b228 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.cc @@ -9,7 +9,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.h index 082e976e9..090568aa7 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.h +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_cpx_samples.h @@ -9,7 +9,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.cc index c07de13c4..9f21299f4 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.cc @@ -5,7 +5,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.h index 10f7d52ee..90ed74e60 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.h +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_2bit_samples.h @@ -5,7 +5,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.cc index 19214fd01..5433047ea 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.cc @@ -5,7 +5,7 @@ * \author Fran Fabra fabra (at) ice.csic.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.h index 47f775e25..536816f0c 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.h +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_intspir_1bit_samples.h @@ -5,7 +5,7 @@ * \author Fran Fabra fabra (at) ice.csic.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.cc index bd725b219..a9426b41f 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.cc @@ -5,7 +5,7 @@ * \author Antonio Ramos, antonio(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.h index bda2d587a..a604982f1 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.h +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_spir_gss6450_samples.h @@ -5,7 +5,7 @@ * \author Antonio Ramos, antonio.ramos(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index 073cc343f..f37684525 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) diff --git a/src/algorithms/signal_source/libs/ad9361_manager.cc b/src/algorithms/signal_source/libs/ad9361_manager.cc index 34f6f5389..d2583a5d5 100644 --- a/src/algorithms/signal_source/libs/ad9361_manager.cc +++ b/src/algorithms/signal_source/libs/ad9361_manager.cc @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/ad9361_manager.h b/src/algorithms/signal_source/libs/ad9361_manager.h index cd48e664f..acfe3abb5 100644 --- a/src/algorithms/signal_source/libs/ad9361_manager.h +++ b/src/algorithms/signal_source/libs/ad9361_manager.h @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/fpga_switch.cc b/src/algorithms/signal_source/libs/fpga_switch.cc index 675c1c071..ab6c58e77 100644 --- a/src/algorithms/signal_source/libs/fpga_switch.cc +++ b/src/algorithms/signal_source/libs/fpga_switch.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/fpga_switch.h b/src/algorithms/signal_source/libs/fpga_switch.h index bf60a17fe..f4a755775 100644 --- a/src/algorithms/signal_source/libs/fpga_switch.h +++ b/src/algorithms/signal_source/libs/fpga_switch.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/rtl_tcp_commands.cc b/src/algorithms/signal_source/libs/rtl_tcp_commands.cc index 6ff9f9707..45bb25a9f 100644 --- a/src/algorithms/signal_source/libs/rtl_tcp_commands.cc +++ b/src/algorithms/signal_source/libs/rtl_tcp_commands.cc @@ -7,7 +7,7 @@ * http://git.osmocom.org/rtl-sdr/ * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/rtl_tcp_commands.h b/src/algorithms/signal_source/libs/rtl_tcp_commands.h index 025a8e078..8dab2a0c8 100644 --- a/src/algorithms/signal_source/libs/rtl_tcp_commands.h +++ b/src/algorithms/signal_source/libs/rtl_tcp_commands.h @@ -7,7 +7,7 @@ * http://git.osmocom.org/rtl-sdr/ * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.cc b/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.cc index 55ef71508..0f2419498 100644 --- a/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.cc +++ b/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.cc @@ -8,7 +8,7 @@ * http://git.osmocom.org/rtl-sdr/ * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.h b/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.h index cc9909881..9b1c12f43 100644 --- a/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.h +++ b/src/algorithms/signal_source/libs/rtl_tcp_dongle_info.h @@ -7,7 +7,7 @@ * http://git.osmocom.org/rtl-sdr/ * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/CMakeLists.txt b/src/algorithms/telemetry_decoder/CMakeLists.txt index ec514fac4..ea74d8ec3 100644 --- a/src/algorithms/telemetry_decoder/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt b/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt index f371e28c2..6722ce03b 100644 --- a/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc index a3e9a49ca..a7f0f3470 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h index 037cb2f8a..d762eabd8 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc index b7e0d89e8..6470e2783 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h index 3ba352541..4a4167bf5 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc index d2491d98c..3d6555157 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h index 3612e080b..c35fc68e0 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc index 9070c8b85..8376cc27b 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h index 890753f20..27c7774bd 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc index 7508d622f..98b4e6d79 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h index b3d77052b..ec4efbb86 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc index b6cf5fdf4..5e1f9c6b2 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h index 4139dea52..fefb15e97 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc index 1a3961bcd..f86cedf55 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h index cb07d477b..06da22d47 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc index 0d52f372c..d695f0861 100644 --- a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h index 43df00828..9da1b44f9 100644 --- a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt b/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt index 26dae1cdf..3af26e46b 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(TELEMETRY_DECODER_GR_BLOCKS_SOURCES diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc index b9aee4196..264646524 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.h index 6caf0aa6c..8f434f0d5 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e1b_telemetry_decoder_cc.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc index 41bf44833..3b3739248 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.h index 5c004f18b..32400ca01 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_e5a_telemetry_decoder_cc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc index a99daba1e..baacf8fce 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h index 6cfafd197..fd3d8d5d8 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc index a57307850..0c8813694 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h index 2751678a4..bad3ad62f 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc index 5c0071307..1621eef58 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h index 8e3600e3a..5a6c4c7db 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h @@ -5,7 +5,7 @@ * \author Javier Arribas, 2011. jarribas(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc index c27214c52..5c4e34184 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h index b9c050539..9235c5c2d 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h @@ -5,7 +5,7 @@ * \author Javier Arribas, 2015. jarribas(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc index 1f2a8decf..56ba9267f 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h index 8afa6569e..c5e838382 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h @@ -4,7 +4,7 @@ * \author Antonio Ramos, 2017. antonio.ramos(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -22,7 +22,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc index 830a02636..ba65ce7df 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h index 58f4aa7bb..39a315015 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/libs/CMakeLists.txt b/src/algorithms/telemetry_decoder/libs/CMakeLists.txt index f5b70e4f7..523ef2df2 100644 --- a/src/algorithms/telemetry_decoder/libs/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(libswiftcnav) diff --git a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc index e7379f7e0..d5317734e 100644 --- a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc +++ b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h index f2532afcf..9a9a04bd8 100644 --- a/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h +++ b/src/algorithms/telemetry_decoder/libs/gps_l1_ca_subframe_fsm.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/CMakeLists.txt b/src/algorithms/telemetry_decoder/libs/libswiftcnav/CMakeLists.txt index 836db1304..a9f7a1622 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(TELEMETRY_DECODER_LIBSWIFTCNAV_SOURCES diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.c b/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.c index 33edf91f8..866b822fb 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.c +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.c @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ #include "bits.h" diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.h b/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.h index bc249c59b..8e73ccf4a 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.h +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/bits.h @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ #ifndef LIBSWIFTNAV_BITS_H diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.c b/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.c index e1e62da30..5248c0f7c 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.c +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.c @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.h b/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.h index c0846cdd3..23e29d958 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.h +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/cnav_msg.h @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.c b/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.c index dc5fee6b7..c89bae64d 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.c +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.c @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ #include "edc.h" diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.h b/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.h index 32a7d67ae..58a968a65 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.h +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/edc.h @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/fec.h b/src/algorithms/telemetry_decoder/libs/libswiftcnav/fec.h index b4caf8767..f00e88e68 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/fec.h +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/fec.h @@ -25,7 +25,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/swift_common.h b/src/algorithms/telemetry_decoder/libs/libswiftcnav/swift_common.h index 7756adc9d..78d99ca0f 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/swift_common.h +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/swift_common.h @@ -28,7 +28,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ diff --git a/src/algorithms/telemetry_decoder/libs/libswiftcnav/viterbi27.c b/src/algorithms/telemetry_decoder/libs/libswiftcnav/viterbi27.c index 958b0e635..bf14cb297 100644 --- a/src/algorithms/telemetry_decoder/libs/libswiftcnav/viterbi27.c +++ b/src/algorithms/telemetry_decoder/libs/libswiftcnav/viterbi27.c @@ -26,7 +26,7 @@ * Lesser General Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ diff --git a/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc b/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc index 7c4297e9a..4d399939a 100644 --- a/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc +++ b/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/telemetry_decoder/libs/viterbi_decoder.h b/src/algorithms/telemetry_decoder/libs/viterbi_decoder.h index b10040caa..29d656bee 100644 --- a/src/algorithms/telemetry_decoder/libs/viterbi_decoder.h +++ b/src/algorithms/telemetry_decoder/libs/viterbi_decoder.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/CMakeLists.txt b/src/algorithms/tracking/CMakeLists.txt index ec514fac4..ea74d8ec3 100644 --- a/src/algorithms/tracking/CMakeLists.txt +++ b/src/algorithms/tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(adapters) diff --git a/src/algorithms/tracking/adapters/CMakeLists.txt b/src/algorithms/tracking/adapters/CMakeLists.txt index 6b60f35b1..8a992b599 100644 --- a/src/algorithms/tracking/adapters/CMakeLists.txt +++ b/src/algorithms/tracking/adapters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # if(ENABLE_CUDA) diff --git a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc index dcbda1507..377b913e3 100644 --- a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h index ab72a2efb..7904b958d 100644 --- a/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h +++ b/src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc index f2253197a..6a9d4000f 100644 --- a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc +++ b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h index 3b2e73e1a..ae4b38220 100644 --- a/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h +++ b/src/algorithms/tracking/adapters/galileo_e1_tcp_connector_tracking.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc index 0e95e1004..1ee9ede0a 100644 --- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h index 7f7767784..484754b23 100644 --- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.cc b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.cc index 960fd928c..789cc6695 100644 --- a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.cc +++ b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.cc @@ -14,7 +14,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -32,7 +32,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.h b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.h index 0996dfd04..3f75715dc 100644 --- a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.h +++ b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_c_aid_tracking.h @@ -14,7 +14,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -32,7 +32,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.cc index 493097f27..7ab511b0c 100644 --- a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.h b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.h index 0c1dd5e00..f752239d3 100644 --- a/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/glonass_l1_ca_dll_pll_tracking.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.cc b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.cc index 2e284bab8..0219ca05d 100644 --- a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.cc +++ b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.h b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.h index fc45d1cd1..bdd377b75 100644 --- a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.h +++ b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_c_aid_tracking.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.cc index 3b029aae3..814bb19d6 100644 --- a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.h b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.h index 700b5b8c1..66346bd71 100644 --- a/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/glonass_l2_ca_dll_pll_tracking.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc index 1b0b9b93b..2d429329e 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h index 9da812068..357a5a0c1 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_c_aid_tracking.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc index f0257d5b8..3c0cade84 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h index 2b5557917..b85147b58 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc index 111de94c5..d7becc755 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h index 4c5a171d2..de77dff2e 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_fpga.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc index 7a881edca..b2a9e84ec 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h index 39623a76a..9c77f4743 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking_gpu.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc index aab34cf76..c7cd025a4 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h index 472a47e00..75a986cfc 100644 --- a/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h +++ b/src/algorithms/tracking/adapters/gps_l1_ca_tcp_connector_tracking.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc index 794983979..2de8eb7cf 100644 --- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h index a18a82c6e..68305ad6a 100644 --- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc index f41797fe6..e3aa382d8 100644 --- a/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc +++ b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h index 119776b9f..9cfbd58fa 100644 --- a/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h +++ b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt b/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt index 2010ef817..a0bd80004 100644 --- a/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/tracking/gnuradio_blocks/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # if(ENABLE_CUDA) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 372aec4ff..f18c0fc90 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h index 5a77abe40..9444c6ccb 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.h @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc index fe856cded..2b74c274c 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h index 0d8b93f1e..09efbd9b7 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc index 0c08b79b2..384e40765 100644 --- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h index b7f7cefd2..6a7e3c728 100644 --- a/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/galileo_e1_tcp_connector_tracking_cc.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc index b492cc5ed..f822ae6af 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.h index beac6f8e9..e1ef7cacf 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_cc.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc index 1f429eee3..8b66a3605 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h index 11ed0e145..f585cb3e1 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_c_aid_tracking_sc.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc index 2f09fec63..1bad82419 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.h index d100f7cab..7a81c64a5 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l1_ca_dll_pll_tracking_cc.h @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc index f8c1cf9a0..e6c9414b8 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.h index df42cb442..0d29e0ffc 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_cc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc index b8bd3de86..c809a1038 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h index 38cf9d8b9..17f875cf4 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_c_aid_tracking_sc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc index c922709a7..4fb82650d 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.cc @@ -13,7 +13,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,7 +31,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.h index b8fcc48f9..cac8625d5 100644 --- a/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/glonass_l2_ca_dll_pll_tracking_cc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc index 295f894d6..f38ea3ccf 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h index 24b468b20..40b7c60c8 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc index fdfd0c04d..8c942aaeb 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h index 0e690f74f..3ae42edab 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_sc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc index e1f0c31c3..dc9d69948 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h index be8959f49..96ecc6c58 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc index a650238cc..41697da8d 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.cc @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h index 21bf6f02c..298203e2f 100644 --- a/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h +++ b/src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_tcp_connector_tracking_cc.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/CMakeLists.txt b/src/algorithms/tracking/libs/CMakeLists.txt index 4e2a93efd..9c5051ea2 100644 --- a/src/algorithms/tracking/libs/CMakeLists.txt +++ b/src/algorithms/tracking/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator.cc b/src/algorithms/tracking/libs/cpu_multicorrelator.cc index 451343cdf..0e30856ce 100644 --- a/src/algorithms/tracking/libs/cpu_multicorrelator.cc +++ b/src/algorithms/tracking/libs/cpu_multicorrelator.cc @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator.h b/src/algorithms/tracking/libs/cpu_multicorrelator.h index 16d4639df..8dab4c4a4 100644 --- a/src/algorithms/tracking/libs/cpu_multicorrelator.h +++ b/src/algorithms/tracking/libs/cpu_multicorrelator.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.cc b/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.cc index eb64fc299..e57d1c2eb 100644 --- a/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.cc +++ b/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.cc @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.h b/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.h index 03e25b332..16881ca07 100644 --- a/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.h +++ b/src/algorithms/tracking/libs/cpu_multicorrelator_16sc.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.cc b/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.cc index 6fa82351c..dc65db462 100644 --- a/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.cc +++ b/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.h b/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.h index 11e11d86e..50b5085f7 100644 --- a/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.h +++ b/src/algorithms/tracking/libs/cpu_multicorrelator_real_codes.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cuda_multicorrelator.cu b/src/algorithms/tracking/libs/cuda_multicorrelator.cu index 56cea6ea7..38aefbcd5 100644 --- a/src/algorithms/tracking/libs/cuda_multicorrelator.cu +++ b/src/algorithms/tracking/libs/cuda_multicorrelator.cu @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/cuda_multicorrelator.h b/src/algorithms/tracking/libs/cuda_multicorrelator.h index d3410f609..f75d72675 100644 --- a/src/algorithms/tracking/libs/cuda_multicorrelator.h +++ b/src/algorithms/tracking/libs/cuda_multicorrelator.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator.cc b/src/algorithms/tracking/libs/fpga_multicorrelator.cc index 281bf2bc2..9a546caca 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator.h b/src/algorithms/tracking/libs/fpga_multicorrelator.h index 5012651d4..d255ace9f 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator.h +++ b/src/algorithms/tracking/libs/fpga_multicorrelator.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/lock_detectors.cc b/src/algorithms/tracking/libs/lock_detectors.cc index 44201a4fb..b66e3a15d 100644 --- a/src/algorithms/tracking/libs/lock_detectors.cc +++ b/src/algorithms/tracking/libs/lock_detectors.cc @@ -23,7 +23,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -41,7 +41,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/lock_detectors.h b/src/algorithms/tracking/libs/lock_detectors.h index 4955393d2..90dc90fcb 100644 --- a/src/algorithms/tracking/libs/lock_detectors.h +++ b/src/algorithms/tracking/libs/lock_detectors.h @@ -22,7 +22,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -40,7 +40,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tcp_communication.cc b/src/algorithms/tracking/libs/tcp_communication.cc index 38cb197a7..edba15b7f 100644 --- a/src/algorithms/tracking/libs/tcp_communication.cc +++ b/src/algorithms/tracking/libs/tcp_communication.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tcp_communication.h b/src/algorithms/tracking/libs/tcp_communication.h index 18133cbe8..05860b9cf 100644 --- a/src/algorithms/tracking/libs/tcp_communication.h +++ b/src/algorithms/tracking/libs/tcp_communication.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tcp_packet_data.cc b/src/algorithms/tracking/libs/tcp_packet_data.cc index 7f81c5cb5..0bd4fcde6 100644 --- a/src/algorithms/tracking/libs/tcp_packet_data.cc +++ b/src/algorithms/tracking/libs/tcp_packet_data.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tcp_packet_data.h b/src/algorithms/tracking/libs/tcp_packet_data.h index 7dcfc7007..c803fa936 100644 --- a/src/algorithms/tracking/libs/tcp_packet_data.h +++ b/src/algorithms/tracking/libs/tcp_packet_data.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.cc b/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.cc index 3c9fdb117..db7583303 100644 --- a/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.cc +++ b/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.h b/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.h index 62c570a21..446cecfd8 100644 --- a/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.h +++ b/src/algorithms/tracking/libs/tracking_2nd_DLL_filter.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.cc b/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.cc index b455ce546..ccbc47fff 100644 --- a/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.cc +++ b/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.h b/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.h index 833e8a2c6..9a1e9b700 100644 --- a/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.h +++ b/src/algorithms/tracking/libs/tracking_2nd_PLL_filter.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.cc b/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.cc index 3b5021d8c..ffe5152e5 100644 --- a/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.cc +++ b/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.h b/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.h index 4767fb3a8..f2d903513 100644 --- a/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.h +++ b/src/algorithms/tracking/libs/tracking_FLL_PLL_filter.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_discriminators.cc b/src/algorithms/tracking/libs/tracking_discriminators.cc index 0ab876591..5d7283d65 100644 --- a/src/algorithms/tracking/libs/tracking_discriminators.cc +++ b/src/algorithms/tracking/libs/tracking_discriminators.cc @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_discriminators.h b/src/algorithms/tracking/libs/tracking_discriminators.h index 28dca8354..302633783 100644 --- a/src/algorithms/tracking/libs/tracking_discriminators.h +++ b/src/algorithms/tracking/libs/tracking_discriminators.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_loop_filter.cc b/src/algorithms/tracking/libs/tracking_loop_filter.cc index 156a60d92..07ff8f730 100644 --- a/src/algorithms/tracking/libs/tracking_loop_filter.cc +++ b/src/algorithms/tracking/libs/tracking_loop_filter.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/tracking/libs/tracking_loop_filter.h b/src/algorithms/tracking/libs/tracking_loop_filter.h index 9a852ba68..6e951a2ea 100644 --- a/src/algorithms/tracking/libs/tracking_loop_filter.h +++ b/src/algorithms/tracking/libs/tracking_loop_filter.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 432df7e0f..4eebaa950 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(system_parameters) diff --git a/src/core/interfaces/acquisition_interface.h b/src/core/interfaces/acquisition_interface.h index bb7eb6d0f..10668b071 100644 --- a/src/core/interfaces/acquisition_interface.h +++ b/src/core/interfaces/acquisition_interface.h @@ -12,7 +12,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,7 +30,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/channel_interface.h b/src/core/interfaces/channel_interface.h index 975762165..48232c674 100644 --- a/src/core/interfaces/channel_interface.h +++ b/src/core/interfaces/channel_interface.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/configuration_interface.h b/src/core/interfaces/configuration_interface.h index e41705612..48e6eefa1 100644 --- a/src/core/interfaces/configuration_interface.h +++ b/src/core/interfaces/configuration_interface.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/gnss_block_interface.h b/src/core/interfaces/gnss_block_interface.h index f0992fa60..a861d87f8 100644 --- a/src/core/interfaces/gnss_block_interface.h +++ b/src/core/interfaces/gnss_block_interface.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/observables_interface.h b/src/core/interfaces/observables_interface.h index f340aa3e1..a75095979 100644 --- a/src/core/interfaces/observables_interface.h +++ b/src/core/interfaces/observables_interface.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/pvt_interface.h b/src/core/interfaces/pvt_interface.h index 064f5a6dd..69b23f541 100644 --- a/src/core/interfaces/pvt_interface.h +++ b/src/core/interfaces/pvt_interface.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/telemetry_decoder_interface.h b/src/core/interfaces/telemetry_decoder_interface.h index 24eed20a7..b2d906b32 100644 --- a/src/core/interfaces/telemetry_decoder_interface.h +++ b/src/core/interfaces/telemetry_decoder_interface.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/interfaces/tracking_interface.h b/src/core/interfaces/tracking_interface.h index ad33afa47..010036d72 100644 --- a/src/core/interfaces/tracking_interface.h +++ b/src/core/interfaces/tracking_interface.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/libs/CMakeLists.txt b/src/core/libs/CMakeLists.txt index d99bdbde6..c68d6d1d0 100644 --- a/src/core/libs/CMakeLists.txt +++ b/src/core/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(supl) diff --git a/src/core/libs/gnss_sdr_supl_client.cc b/src/core/libs/gnss_sdr_supl_client.cc index 13df3fc16..70517e7f2 100644 --- a/src/core/libs/gnss_sdr_supl_client.cc +++ b/src/core/libs/gnss_sdr_supl_client.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/libs/gnss_sdr_supl_client.h b/src/core/libs/gnss_sdr_supl_client.h index 6584d535b..381045edb 100644 --- a/src/core/libs/gnss_sdr_supl_client.h +++ b/src/core/libs/gnss_sdr_supl_client.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/libs/string_converter.cc b/src/core/libs/string_converter.cc index f8e272703..15360400d 100644 --- a/src/core/libs/string_converter.cc +++ b/src/core/libs/string_converter.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/libs/string_converter.h b/src/core/libs/string_converter.h index 21d2c7625..c1a480a78 100644 --- a/src/core/libs/string_converter.h +++ b/src/core/libs/string_converter.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/libs/supl/CMakeLists.txt b/src/core/libs/supl/CMakeLists.txt index 0f0609b42..6d0edd576 100644 --- a/src/core/libs/supl/CMakeLists.txt +++ b/src/core/libs/supl/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # file(GLOB ASN_RRLP_SOURCES "${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-rrlp/*.c") diff --git a/src/core/receiver/CMakeLists.txt b/src/core/receiver/CMakeLists.txt index 9d276e786..09b24de96 100644 --- a/src/core/receiver/CMakeLists.txt +++ b/src/core/receiver/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/core/receiver/concurrent_map.h b/src/core/receiver/concurrent_map.h index 3a9fe2dd2..7df929b82 100644 --- a/src/core/receiver/concurrent_map.h +++ b/src/core/receiver/concurrent_map.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/concurrent_queue.h b/src/core/receiver/concurrent_queue.h index dcd104ac5..3a4e89190 100644 --- a/src/core/receiver/concurrent_queue.h +++ b/src/core/receiver/concurrent_queue.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/control_message.h b/src/core/receiver/control_message.h index b393057d1..ff166e40f 100644 --- a/src/core/receiver/control_message.h +++ b/src/core/receiver/control_message.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/control_message_factory.cc b/src/core/receiver/control_message_factory.cc index e62cdcd39..2210713c9 100644 --- a/src/core/receiver/control_message_factory.cc +++ b/src/core/receiver/control_message_factory.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/control_message_factory.h b/src/core/receiver/control_message_factory.h index 75719611e..53339cea5 100644 --- a/src/core/receiver/control_message_factory.h +++ b/src/core/receiver/control_message_factory.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index aba3c0272..0710da730 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/control_thread.h b/src/core/receiver/control_thread.h index 8ee10d531..c49ddba53 100644 --- a/src/core/receiver/control_thread.h +++ b/src/core/receiver/control_thread.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/file_configuration.cc b/src/core/receiver/file_configuration.cc index e3ce3074a..43f177502 100644 --- a/src/core/receiver/file_configuration.cc +++ b/src/core/receiver/file_configuration.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/file_configuration.h b/src/core/receiver/file_configuration.h index 6af556a32..2484438d8 100644 --- a/src/core/receiver/file_configuration.h +++ b/src/core/receiver/file_configuration.h @@ -9,7 +9,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 329f2e168..93e4a2d0d 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/gnss_block_factory.h b/src/core/receiver/gnss_block_factory.h index f5db1a6cb..a66e6917e 100644 --- a/src/core/receiver/gnss_block_factory.h +++ b/src/core/receiver/gnss_block_factory.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc index 28fd703c9..83ad6807a 100644 --- a/src/core/receiver/gnss_flowgraph.cc +++ b/src/core/receiver/gnss_flowgraph.cc @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/gnss_flowgraph.h b/src/core/receiver/gnss_flowgraph.h index c17ecb827..ff72eda88 100644 --- a/src/core/receiver/gnss_flowgraph.h +++ b/src/core/receiver/gnss_flowgraph.h @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/in_memory_configuration.cc b/src/core/receiver/in_memory_configuration.cc index 251836fb6..6a2ce8bf8 100644 --- a/src/core/receiver/in_memory_configuration.cc +++ b/src/core/receiver/in_memory_configuration.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/receiver/in_memory_configuration.h b/src/core/receiver/in_memory_configuration.h index a8d57dce8..1850a9d41 100644 --- a/src/core/receiver/in_memory_configuration.h +++ b/src/core/receiver/in_memory_configuration.h @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/CMakeLists.txt b/src/core/system_parameters/CMakeLists.txt index 9143a038b..d8d3971f6 100644 --- a/src/core/system_parameters/CMakeLists.txt +++ b/src/core/system_parameters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # set(SYSTEM_PARAMETERS_SOURCES diff --git a/src/core/system_parameters/GLONASS_L1_L2_CA.h b/src/core/system_parameters/GLONASS_L1_L2_CA.h index 28bd25d3b..be2564d57 100644 --- a/src/core/system_parameters/GLONASS_L1_L2_CA.h +++ b/src/core/system_parameters/GLONASS_L1_L2_CA.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/GPS_CNAV.h b/src/core/system_parameters/GPS_CNAV.h index 04a62b748..343ab3f5c 100644 --- a/src/core/system_parameters/GPS_CNAV.h +++ b/src/core/system_parameters/GPS_CNAV.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/GPS_L1_CA.h b/src/core/system_parameters/GPS_L1_CA.h index c5ae95618..f26e92f59 100644 --- a/src/core/system_parameters/GPS_L1_CA.h +++ b/src/core/system_parameters/GPS_L1_CA.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/GPS_L2C.h b/src/core/system_parameters/GPS_L2C.h index 597034303..67a467192 100644 --- a/src/core/system_parameters/GPS_L2C.h +++ b/src/core/system_parameters/GPS_L2C.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/GPS_L5.h b/src/core/system_parameters/GPS_L5.h index ff7ded0d4..5a919820d 100644 --- a/src/core/system_parameters/GPS_L5.h +++ b/src/core/system_parameters/GPS_L5.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/Galileo_E1.h b/src/core/system_parameters/Galileo_E1.h index e52cb536a..951612e02 100644 --- a/src/core/system_parameters/Galileo_E1.h +++ b/src/core/system_parameters/Galileo_E1.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/Galileo_E5a.h b/src/core/system_parameters/Galileo_E5a.h index 6bb63dfdb..79ad94f81 100644 --- a/src/core/system_parameters/Galileo_E5a.h +++ b/src/core/system_parameters/Galileo_E5a.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/MATH_CONSTANTS.h b/src/core/system_parameters/MATH_CONSTANTS.h index 1201d7c5a..62090dd6e 100644 --- a/src/core/system_parameters/MATH_CONSTANTS.h +++ b/src/core/system_parameters/MATH_CONSTANTS.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/display.h b/src/core/system_parameters/display.h index 362e66f6f..a186753be 100644 --- a/src/core/system_parameters/display.h +++ b/src/core/system_parameters/display.h @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_almanac.cc b/src/core/system_parameters/galileo_almanac.cc index 25f71e22f..bce27a9aa 100644 --- a/src/core/system_parameters/galileo_almanac.cc +++ b/src/core/system_parameters/galileo_almanac.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_almanac.h b/src/core/system_parameters/galileo_almanac.h index ea636379a..3744ed87d 100644 --- a/src/core/system_parameters/galileo_almanac.h +++ b/src/core/system_parameters/galileo_almanac.h @@ -5,7 +5,7 @@ * \author Mara Branzanti 2013. mara.branzanti(at)gmail.com * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_ephemeris.cc b/src/core/system_parameters/galileo_ephemeris.cc index 8941c46fd..926257933 100644 --- a/src/core/system_parameters/galileo_ephemeris.cc +++ b/src/core/system_parameters/galileo_ephemeris.cc @@ -5,7 +5,7 @@ * \author Mara Branzanti 2013. mara.branzanti(at)gmail.com * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_ephemeris.h b/src/core/system_parameters/galileo_ephemeris.h index b9fcd04d7..6704499b5 100644 --- a/src/core/system_parameters/galileo_ephemeris.h +++ b/src/core/system_parameters/galileo_ephemeris.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_fnav_message.cc b/src/core/system_parameters/galileo_fnav_message.cc index e5f747cd5..b0c17fa7d 100644 --- a/src/core/system_parameters/galileo_fnav_message.cc +++ b/src/core/system_parameters/galileo_fnav_message.cc @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_fnav_message.h b/src/core/system_parameters/galileo_fnav_message.h index 74a7170bb..4f043d5d8 100644 --- a/src/core/system_parameters/galileo_fnav_message.h +++ b/src/core/system_parameters/galileo_fnav_message.h @@ -11,7 +11,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -29,7 +29,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_iono.cc b/src/core/system_parameters/galileo_iono.cc index e1dd820c5..4a8eb35b0 100644 --- a/src/core/system_parameters/galileo_iono.cc +++ b/src/core/system_parameters/galileo_iono.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_iono.h b/src/core/system_parameters/galileo_iono.h index 0bbc17d3d..1c3278ed7 100644 --- a/src/core/system_parameters/galileo_iono.h +++ b/src/core/system_parameters/galileo_iono.h @@ -5,7 +5,7 @@ * \author Mara Branzanti 2013. mara.branzanti(at)gmail.com * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_navigation_message.cc b/src/core/system_parameters/galileo_navigation_message.cc index c09fff2a5..95edb4bd5 100644 --- a/src/core/system_parameters/galileo_navigation_message.cc +++ b/src/core/system_parameters/galileo_navigation_message.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_navigation_message.h b/src/core/system_parameters/galileo_navigation_message.h index ccb7ae7e5..2108a1568 100644 --- a/src/core/system_parameters/galileo_navigation_message.h +++ b/src/core/system_parameters/galileo_navigation_message.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_utc_model.cc b/src/core/system_parameters/galileo_utc_model.cc index b2a5c46f9..e83f2db7a 100644 --- a/src/core/system_parameters/galileo_utc_model.cc +++ b/src/core/system_parameters/galileo_utc_model.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/galileo_utc_model.h b/src/core/system_parameters/galileo_utc_model.h index 0f2c66d02..00822c44c 100644 --- a/src/core/system_parameters/galileo_utc_model.h +++ b/src/core/system_parameters/galileo_utc_model.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_almanac.cc b/src/core/system_parameters/glonass_gnav_almanac.cc index 297a1cb59..0ed27cb6f 100644 --- a/src/core/system_parameters/glonass_gnav_almanac.cc +++ b/src/core/system_parameters/glonass_gnav_almanac.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_almanac.h b/src/core/system_parameters/glonass_gnav_almanac.h index 09788b517..f36fdfbb0 100644 --- a/src/core/system_parameters/glonass_gnav_almanac.h +++ b/src/core/system_parameters/glonass_gnav_almanac.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_ephemeris.cc b/src/core/system_parameters/glonass_gnav_ephemeris.cc index a6531fc60..2a6ea3eb0 100644 --- a/src/core/system_parameters/glonass_gnav_ephemeris.cc +++ b/src/core/system_parameters/glonass_gnav_ephemeris.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_ephemeris.h b/src/core/system_parameters/glonass_gnav_ephemeris.h index ce9863f84..ef375ab2e 100644 --- a/src/core/system_parameters/glonass_gnav_ephemeris.h +++ b/src/core/system_parameters/glonass_gnav_ephemeris.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_navigation_message.cc b/src/core/system_parameters/glonass_gnav_navigation_message.cc index 7e4cd43fb..469c42ae3 100644 --- a/src/core/system_parameters/glonass_gnav_navigation_message.cc +++ b/src/core/system_parameters/glonass_gnav_navigation_message.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_navigation_message.h b/src/core/system_parameters/glonass_gnav_navigation_message.h index 2fdedd128..54fe5219b 100644 --- a/src/core/system_parameters/glonass_gnav_navigation_message.h +++ b/src/core/system_parameters/glonass_gnav_navigation_message.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_utc_model.cc b/src/core/system_parameters/glonass_gnav_utc_model.cc index 537c3227b..ceea01529 100644 --- a/src/core/system_parameters/glonass_gnav_utc_model.cc +++ b/src/core/system_parameters/glonass_gnav_utc_model.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/glonass_gnav_utc_model.h b/src/core/system_parameters/glonass_gnav_utc_model.h index d4d86a812..8d76d90e2 100644 --- a/src/core/system_parameters/glonass_gnav_utc_model.h +++ b/src/core/system_parameters/glonass_gnav_utc_model.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_frequencies.h b/src/core/system_parameters/gnss_frequencies.h index 52487ef64..1bab39fd0 100644 --- a/src/core/system_parameters/gnss_frequencies.h +++ b/src/core/system_parameters/gnss_frequencies.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_obs_codes.h b/src/core/system_parameters/gnss_obs_codes.h index fd3f936ee..a28329760 100644 --- a/src/core/system_parameters/gnss_obs_codes.h +++ b/src/core/system_parameters/gnss_obs_codes.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_satellite.cc b/src/core/system_parameters/gnss_satellite.cc index ee6953db2..bb9655bc1 100644 --- a/src/core/system_parameters/gnss_satellite.cc +++ b/src/core/system_parameters/gnss_satellite.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_satellite.h b/src/core/system_parameters/gnss_satellite.h index 0e2e2eb52..65e261ab6 100644 --- a/src/core/system_parameters/gnss_satellite.h +++ b/src/core/system_parameters/gnss_satellite.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_signal.cc b/src/core/system_parameters/gnss_signal.cc index 2c0668858..882b5d231 100644 --- a/src/core/system_parameters/gnss_signal.cc +++ b/src/core/system_parameters/gnss_signal.cc @@ -6,7 +6,7 @@ * Javier Arribas, 2012. jarribas(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_signal.h b/src/core/system_parameters/gnss_signal.h index 0630c3782..f857042e8 100644 --- a/src/core/system_parameters/gnss_signal.h +++ b/src/core/system_parameters/gnss_signal.h @@ -6,7 +6,7 @@ * Javier Arribas, 2012. jarribas(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gnss_synchro.h b/src/core/system_parameters/gnss_synchro.h index 267df4557..7d572dffa 100644 --- a/src/core/system_parameters/gnss_synchro.h +++ b/src/core/system_parameters/gnss_synchro.h @@ -6,7 +6,7 @@ * Javier Arribas, 2012. jarribas(at)cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_acq_assist.cc b/src/core/system_parameters/gps_acq_assist.cc index 2ec5a4545..5b4510560 100644 --- a/src/core/system_parameters/gps_acq_assist.cc +++ b/src/core/system_parameters/gps_acq_assist.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_acq_assist.h b/src/core/system_parameters/gps_acq_assist.h index 4b9649f9c..c84d0b730 100644 --- a/src/core/system_parameters/gps_acq_assist.h +++ b/src/core/system_parameters/gps_acq_assist.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_almanac.cc b/src/core/system_parameters/gps_almanac.cc index 258aa5da6..5c7747d0a 100644 --- a/src/core/system_parameters/gps_almanac.cc +++ b/src/core/system_parameters/gps_almanac.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_almanac.h b/src/core/system_parameters/gps_almanac.h index ce58495ce..d3e31db80 100644 --- a/src/core/system_parameters/gps_almanac.h +++ b/src/core/system_parameters/gps_almanac.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_ephemeris.cc b/src/core/system_parameters/gps_cnav_ephemeris.cc index eec8f9703..574196813 100644 --- a/src/core/system_parameters/gps_cnav_ephemeris.cc +++ b/src/core/system_parameters/gps_cnav_ephemeris.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_ephemeris.h b/src/core/system_parameters/gps_cnav_ephemeris.h index 7b63c0857..97c90a272 100644 --- a/src/core/system_parameters/gps_cnav_ephemeris.h +++ b/src/core/system_parameters/gps_cnav_ephemeris.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_iono.cc b/src/core/system_parameters/gps_cnav_iono.cc index 26973e8bf..0e24c9dbe 100644 --- a/src/core/system_parameters/gps_cnav_iono.cc +++ b/src/core/system_parameters/gps_cnav_iono.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_iono.h b/src/core/system_parameters/gps_cnav_iono.h index 9fac4fa7b..fa60b6a9b 100644 --- a/src/core/system_parameters/gps_cnav_iono.h +++ b/src/core/system_parameters/gps_cnav_iono.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_navigation_message.cc b/src/core/system_parameters/gps_cnav_navigation_message.cc index d188060bd..8371b19f2 100644 --- a/src/core/system_parameters/gps_cnav_navigation_message.cc +++ b/src/core/system_parameters/gps_cnav_navigation_message.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_navigation_message.h b/src/core/system_parameters/gps_cnav_navigation_message.h index b9e8a8dae..4cf7dceeb 100644 --- a/src/core/system_parameters/gps_cnav_navigation_message.h +++ b/src/core/system_parameters/gps_cnav_navigation_message.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_utc_model.cc b/src/core/system_parameters/gps_cnav_utc_model.cc index 627e56433..a705566da 100644 --- a/src/core/system_parameters/gps_cnav_utc_model.cc +++ b/src/core/system_parameters/gps_cnav_utc_model.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_cnav_utc_model.h b/src/core/system_parameters/gps_cnav_utc_model.h index 2208a7b9b..42a26839a 100644 --- a/src/core/system_parameters/gps_cnav_utc_model.h +++ b/src/core/system_parameters/gps_cnav_utc_model.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_ephemeris.cc b/src/core/system_parameters/gps_ephemeris.cc index 9f0e0ba1a..3ee9ed42a 100644 --- a/src/core/system_parameters/gps_ephemeris.cc +++ b/src/core/system_parameters/gps_ephemeris.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_ephemeris.h b/src/core/system_parameters/gps_ephemeris.h index 7dbaa4d3e..d13ad4893 100644 --- a/src/core/system_parameters/gps_ephemeris.h +++ b/src/core/system_parameters/gps_ephemeris.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_iono.cc b/src/core/system_parameters/gps_iono.cc index f15183847..05f17339a 100644 --- a/src/core/system_parameters/gps_iono.cc +++ b/src/core/system_parameters/gps_iono.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_iono.h b/src/core/system_parameters/gps_iono.h index 01b28c780..8a87e21d4 100644 --- a/src/core/system_parameters/gps_iono.h +++ b/src/core/system_parameters/gps_iono.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_navigation_message.cc b/src/core/system_parameters/gps_navigation_message.cc index 7d58a2baa..7d7fd298f 100644 --- a/src/core/system_parameters/gps_navigation_message.cc +++ b/src/core/system_parameters/gps_navigation_message.cc @@ -7,7 +7,7 @@ m * \file gps_navigation_message.cc * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ m * \file gps_navigation_message.cc * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_navigation_message.h b/src/core/system_parameters/gps_navigation_message.h index bd913c860..ba3312efa 100644 --- a/src/core/system_parameters/gps_navigation_message.h +++ b/src/core/system_parameters/gps_navigation_message.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_ref_location.cc b/src/core/system_parameters/gps_ref_location.cc index 5270d53f2..a72d42da3 100644 --- a/src/core/system_parameters/gps_ref_location.cc +++ b/src/core/system_parameters/gps_ref_location.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_ref_location.h b/src/core/system_parameters/gps_ref_location.h index 998603b83..f00448ce2 100644 --- a/src/core/system_parameters/gps_ref_location.h +++ b/src/core/system_parameters/gps_ref_location.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_ref_time.cc b/src/core/system_parameters/gps_ref_time.cc index 318cc0b80..b663abab7 100644 --- a/src/core/system_parameters/gps_ref_time.cc +++ b/src/core/system_parameters/gps_ref_time.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_ref_time.h b/src/core/system_parameters/gps_ref_time.h index 7edcd83e1..84af6d973 100644 --- a/src/core/system_parameters/gps_ref_time.h +++ b/src/core/system_parameters/gps_ref_time.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_utc_model.cc b/src/core/system_parameters/gps_utc_model.cc index d117195fb..ffe1af6f5 100644 --- a/src/core/system_parameters/gps_utc_model.cc +++ b/src/core/system_parameters/gps_utc_model.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/gps_utc_model.h b/src/core/system_parameters/gps_utc_model.h index b45b86a0c..ede2c1e67 100644 --- a/src/core/system_parameters/gps_utc_model.h +++ b/src/core/system_parameters/gps_utc_model.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/rtcm.cc b/src/core/system_parameters/rtcm.cc index 91bb4b5f3..6fb5666bf 100644 --- a/src/core/system_parameters/rtcm.cc +++ b/src/core/system_parameters/rtcm.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/rtcm.h b/src/core/system_parameters/rtcm.h index 1a14cc988..735d21343 100644 --- a/src/core/system_parameters/rtcm.h +++ b/src/core/system_parameters/rtcm.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/sbas_ephemeris.cc b/src/core/system_parameters/sbas_ephemeris.cc index 0c717ac61..df7328f7d 100644 --- a/src/core/system_parameters/sbas_ephemeris.cc +++ b/src/core/system_parameters/sbas_ephemeris.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/core/system_parameters/sbas_ephemeris.h b/src/core/system_parameters/sbas_ephemeris.h index 13743c846..61749b482 100644 --- a/src/core/system_parameters/sbas_ephemeris.h +++ b/src/core/system_parameters/sbas_ephemeris.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index cbacdafff..b97a62458 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/main/main.cc b/src/main/main.cc index f50f2b0dd..d64f9bab6 100644 --- a/src/main/main.cc +++ b/src/main/main.cc @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License -* along with GNSS-SDR. If not, see . +* along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index ff2d91ee8..f2b14aa0f 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/tests/common-files/gnuplot_i.h b/src/tests/common-files/gnuplot_i.h index 9c5f1a3c6..0c9e282a7 100644 --- a/src/tests/common-files/gnuplot_i.h +++ b/src/tests/common-files/gnuplot_i.h @@ -20,7 +20,7 @@ * by C. Fernandez (22/10/17) * ------------------------------------------------------------------------- * - * Copyright (C) 2013-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2013-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -38,7 +38,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/common-files/signal_generator_flags.h b/src/tests/common-files/signal_generator_flags.h index 029a002c5..cfc93b8d0 100644 --- a/src/tests/common-files/signal_generator_flags.h +++ b/src/tests/common-files/signal_generator_flags.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/common-files/test_flags.h b/src/tests/common-files/test_flags.h index 139c3a3e8..1d2cb3818 100644 --- a/src/tests/common-files/test_flags.h +++ b/src/tests/common-files/test_flags.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/single_test_main.cc b/src/tests/single_test_main.cc index 5be30f534..5dbfee8f9 100644 --- a/src/tests/single_test_main.cc +++ b/src/tests/single_test_main.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/system-tests/obs_gps_l1_system_test.cc b/src/tests/system-tests/obs_gps_l1_system_test.cc index 5627e1fea..2cace8a00 100644 --- a/src/tests/system-tests/obs_gps_l1_system_test.cc +++ b/src/tests/system-tests/obs_gps_l1_system_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/system-tests/obs_system_test.cc b/src/tests/system-tests/obs_system_test.cc index 52c726991..2ce3bea48 100644 --- a/src/tests/system-tests/obs_system_test.cc +++ b/src/tests/system-tests/obs_system_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/system-tests/position_test.cc b/src/tests/system-tests/position_test.cc index 4018552bc..b17f4de9d 100644 --- a/src/tests/system-tests/position_test.cc +++ b/src/tests/system-tests/position_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/system-tests/ttff_gps_l1.cc b/src/tests/system-tests/ttff_gps_l1.cc index cf177f268..2aaa39dee 100644 --- a/src/tests/system-tests/ttff_gps_l1.cc +++ b/src/tests/system-tests/ttff_gps_l1.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/test_main.cc b/src/tests/test_main.cc index 0a9a9d2b0..b139e993e 100644 --- a/src/tests/test_main.cc +++ b/src/tests/test_main.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * -* Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +* Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License -* along with GNSS-SDR. If not, see . +* along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/code_generation_test.cc b/src/tests/unit-tests/arithmetic/code_generation_test.cc index a2fe71942..21f32dd47 100644 --- a/src/tests/unit-tests/arithmetic/code_generation_test.cc +++ b/src/tests/unit-tests/arithmetic/code_generation_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/complex_carrier_test.cc b/src/tests/unit-tests/arithmetic/complex_carrier_test.cc index c95c9179a..1d4a0a900 100644 --- a/src/tests/unit-tests/arithmetic/complex_carrier_test.cc +++ b/src/tests/unit-tests/arithmetic/complex_carrier_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/conjugate_test.cc b/src/tests/unit-tests/arithmetic/conjugate_test.cc index ab9fa64bc..ec1c6e3f0 100644 --- a/src/tests/unit-tests/arithmetic/conjugate_test.cc +++ b/src/tests/unit-tests/arithmetic/conjugate_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/fft_length_test.cc b/src/tests/unit-tests/arithmetic/fft_length_test.cc index b183656da..7cf674c24 100644 --- a/src/tests/unit-tests/arithmetic/fft_length_test.cc +++ b/src/tests/unit-tests/arithmetic/fft_length_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/fft_speed_test.cc b/src/tests/unit-tests/arithmetic/fft_speed_test.cc index 2197e4227..c18c0f822 100644 --- a/src/tests/unit-tests/arithmetic/fft_speed_test.cc +++ b/src/tests/unit-tests/arithmetic/fft_speed_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/magnitude_squared_test.cc b/src/tests/unit-tests/arithmetic/magnitude_squared_test.cc index 546a184a2..616487a8a 100644 --- a/src/tests/unit-tests/arithmetic/magnitude_squared_test.cc +++ b/src/tests/unit-tests/arithmetic/magnitude_squared_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/matio_test.cc b/src/tests/unit-tests/arithmetic/matio_test.cc index fcdb76b68..0429dff75 100644 --- a/src/tests/unit-tests/arithmetic/matio_test.cc +++ b/src/tests/unit-tests/arithmetic/matio_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/arithmetic/multiply_test.cc b/src/tests/unit-tests/arithmetic/multiply_test.cc index 4fc383ee9..19abb0434 100644 --- a/src/tests/unit-tests/arithmetic/multiply_test.cc +++ b/src/tests/unit-tests/arithmetic/multiply_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/control_message_factory_test.cc b/src/tests/unit-tests/control-plane/control_message_factory_test.cc index 6fce6a506..dd372de97 100644 --- a/src/tests/unit-tests/control-plane/control_message_factory_test.cc +++ b/src/tests/unit-tests/control-plane/control_message_factory_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/control_thread_test.cc b/src/tests/unit-tests/control-plane/control_thread_test.cc index 2019e40f3..2cc7c6ca2 100644 --- a/src/tests/unit-tests/control-plane/control_thread_test.cc +++ b/src/tests/unit-tests/control-plane/control_thread_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/file_configuration_test.cc b/src/tests/unit-tests/control-plane/file_configuration_test.cc index 052d1373f..68fa64aad 100644 --- a/src/tests/unit-tests/control-plane/file_configuration_test.cc +++ b/src/tests/unit-tests/control-plane/file_configuration_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/gnss_block_factory_test.cc b/src/tests/unit-tests/control-plane/gnss_block_factory_test.cc index e4ecb00ef..97a6524c9 100644 --- a/src/tests/unit-tests/control-plane/gnss_block_factory_test.cc +++ b/src/tests/unit-tests/control-plane/gnss_block_factory_test.cc @@ -10,7 +10,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/gnss_flowgraph_test.cc b/src/tests/unit-tests/control-plane/gnss_flowgraph_test.cc index db6282590..c16c6361f 100644 --- a/src/tests/unit-tests/control-plane/gnss_flowgraph_test.cc +++ b/src/tests/unit-tests/control-plane/gnss_flowgraph_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/in_memory_configuration_test.cc b/src/tests/unit-tests/control-plane/in_memory_configuration_test.cc index e54871d0c..a92222623 100644 --- a/src/tests/unit-tests/control-plane/in_memory_configuration_test.cc +++ b/src/tests/unit-tests/control-plane/in_memory_configuration_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/control-plane/string_converter_test.cc b/src/tests/unit-tests/control-plane/string_converter_test.cc index 68091d5bc..2cd52496b 100644 --- a/src/tests/unit-tests/control-plane/string_converter_test.cc +++ b/src/tests/unit-tests/control-plane/string_converter_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc index dc3d83331..ebff28d0b 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_8ms_ambiguous_acquisition_gsoc2013_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc index 7f287ec51..efc44fa62 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc2013_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc index b684355cf..3748c37cf 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_gsoc_test.cc @@ -17,7 +17,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -35,7 +35,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_test.cc index 9946638d1..28d37556a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_ambiguous_acquisition_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc index 1a8774c77..a193c8c4d 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_cccwsr_ambiguous_acquisition_gsoc2013_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc index 5405007fd..13b86aa6a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_quicksync_ambiguous_acquisition_gsoc2014_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc index 6969bfd22..4f7bbea08 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e1_pcps_tong_ambiguous_acquisition_gsoc2013_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc index a27d4531b..52bafb284 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/galileo_e5a_pcps_acquisition_gsoc2014_gensource_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_gsoc2017_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_gsoc2017_test.cc index 0a1035165..4822dcccb 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_gsoc2017_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_gsoc2017_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_test.cc index 89f251fd6..04d37af1a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l1_ca_pcps_acquisition_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l2_ca_pcps_acquisition_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l2_ca_pcps_acquisition_test.cc index c3b7ba24f..f19aeceb0 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l2_ca_pcps_acquisition_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/glonass_l2_ca_pcps_acquisition_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc index 9d7e84360..bb00e62bf 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_gsoc2013_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test.cc index aba931623..b2b2ca866 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test_fpga.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test_fpga.cc index 10f6d958e..050d6df2a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test_fpga.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_acquisition_test_fpga.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc index 999da2c7e..0f319a208 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_opencl_acquisition_gsoc2013_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc index 271554a3a..5e1d072cd 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_quicksync_acquisition_gsoc2014_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc index d61961d9e..ef1502cd5 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l1_ca_pcps_tong_acquisition_gsoc2013_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l2_m_pcps_acquisition_test.cc b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l2_m_pcps_acquisition_test.cc index 1aac47b38..952ed26a2 100644 --- a/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l2_m_pcps_acquisition_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/acquisition/gps_l2_m_pcps_acquisition_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/adapter/adapter_test.cc b/src/tests/unit-tests/signal-processing-blocks/adapter/adapter_test.cc index aca03ab54..2aae6e9c6 100644 --- a/src/tests/unit-tests/signal-processing-blocks/adapter/adapter_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/adapter/adapter_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/adapter/pass_through_test.cc b/src/tests/unit-tests/signal-processing-blocks/adapter/pass_through_test.cc index 1064f7fc6..224c073e1 100644 --- a/src/tests/unit-tests/signal-processing-blocks/adapter/pass_through_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/adapter/pass_through_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/filter/fir_filter_test.cc b/src/tests/unit-tests/signal-processing-blocks/filter/fir_filter_test.cc index a79a3ab8e..9095f93df 100644 --- a/src/tests/unit-tests/signal-processing-blocks/filter/fir_filter_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/filter/fir_filter_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_lite_test.cc b/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_lite_test.cc index cf6db8921..e2be9358a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_lite_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_lite_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_test.cc b/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_test.cc index c01fa0806..c879a2b75 100644 --- a/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/filter/notch_filter_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/filter/pulse_blanking_filter_test.cc b/src/tests/unit-tests/signal-processing-blocks/filter/pulse_blanking_filter_test.cc index f0afac18c..a23bb4385 100644 --- a/src/tests/unit-tests/signal-processing-blocks/filter/pulse_blanking_filter_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/filter/pulse_blanking_filter_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt b/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt index 3f19c0854..b9a0eb93e 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt +++ b/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.cc index 38a9ff280..32b6de6e2 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.cc +++ b/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.cc @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.h index 684cb7baf..7dd8ee44b 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.h +++ b/src/tests/unit-tests/signal-processing-blocks/libs/acquisition_dump_reader.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.cc index 2f1f95abe..72a40389d 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.cc +++ b/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.h index 8f049f147..41c7a60f2 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.h +++ b/src/tests/unit-tests/signal-processing-blocks/libs/observables_dump_reader.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc index 68163d7f3..228a2edbe 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc +++ b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h index be3c1b754..1f8a1419f 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h +++ b/src/tests/unit-tests/signal-processing-blocks/libs/tlm_dump_reader.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc index 0f8dd9dc3..502c99ea5 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc +++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h index e36dec1c8..106a7efdc 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h +++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_dump_reader.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.cc index 1ada53442..8b1f91c65 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.cc +++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h index 2b0d9e1f9..9c4a5db7c 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h +++ b/src/tests/unit-tests/signal-processing-blocks/libs/tracking_true_obs_reader.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.cc b/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.cc index 33a368ee1..b1f9d1d9b 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.cc +++ b/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.h b/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.h index 864e1fe3a..41c04002a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.h +++ b/src/tests/unit-tests/signal-processing-blocks/libs/true_observables_reader.h @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/observables/hybrid_observables_test.cc b/src/tests/unit-tests/signal-processing-blocks/observables/hybrid_observables_test.cc index 14e8bb760..f93f780cc 100644 --- a/src/tests/unit-tests/signal-processing-blocks/observables/hybrid_observables_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/observables/hybrid_observables_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc index f259947e5..445f6a91a 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/rinex_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/rinex_printer_test.cc index 605f606c0..007ace647 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/rinex_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/rinex_printer_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_printer_test.cc index c3a0717bd..24544f380 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_printer_test.cc @@ -5,7 +5,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -23,7 +23,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_test.cc index c2b4bfad2..6ec85e562 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/rtcm_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/resampler/direct_resampler_conditioner_cc_test.cc b/src/tests/unit-tests/signal-processing-blocks/resampler/direct_resampler_conditioner_cc_test.cc index 070023152..8dc1ef42c 100644 --- a/src/tests/unit-tests/signal-processing-blocks/resampler/direct_resampler_conditioner_cc_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/resampler/direct_resampler_conditioner_cc_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/resampler/mmse_resampler_test.cc b/src/tests/unit-tests/signal-processing-blocks/resampler/mmse_resampler_test.cc index 4532c3fb0..1292f93dc 100644 --- a/src/tests/unit-tests/signal-processing-blocks/resampler/mmse_resampler_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/resampler/mmse_resampler_test.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/sources/file_signal_source_test.cc b/src/tests/unit-tests/signal-processing-blocks/sources/file_signal_source_test.cc index 81a7508b5..5b62bdfe7 100644 --- a/src/tests/unit-tests/signal-processing-blocks/sources/file_signal_source_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/sources/file_signal_source_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/sources/gnss_sdr_valve_test.cc b/src/tests/unit-tests/signal-processing-blocks/sources/gnss_sdr_valve_test.cc index 19ba9c2e5..26a57621e 100644 --- a/src/tests/unit-tests/signal-processing-blocks/sources/gnss_sdr_valve_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/sources/gnss_sdr_valve_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/sources/unpack_2bit_samples_test.cc b/src/tests/unit-tests/signal-processing-blocks/sources/unpack_2bit_samples_test.cc index bbedcc9d2..9229f16be 100644 --- a/src/tests/unit-tests/signal-processing-blocks/sources/unpack_2bit_samples_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/sources/unpack_2bit_samples_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc b/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc index bececcd16..184ad30c0 100644 --- a/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_real_codes_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_real_codes_test.cc index 1f9f0f1e3..1be7bbe49 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_real_codes_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_real_codes_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc index e405c04bc..068a9dce5 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e1_dll_pll_veml_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e1_dll_pll_veml_tracking_test.cc index 680395b1d..55b2e80f8 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e1_dll_pll_veml_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e1_dll_pll_veml_tracking_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e5a_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e5a_tracking_test.cc index 8a8049803..2aad4e5bd 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e5a_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/galileo_e5a_tracking_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_c_aid_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_c_aid_tracking_test.cc index c0c7649c8..3aadcba51 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_c_aid_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_c_aid_tracking_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_tracking_test.cc index f0deb0d4f..65a4e9797 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/glonass_l1_ca_dll_pll_tracking_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc index 0d0bf4cf0..b8363c383 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc index 896c2a6c0..7b7275eb0 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l1_ca_dll_pll_tracking_test_fpga.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l2_m_dll_pll_tracking_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l2_m_dll_pll_tracking_test.cc index 131fc1e4c..bfd715260 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l2_m_dll_pll_tracking_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gps_l2_m_dll_pll_tracking_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/gpu_multicorrelator_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/gpu_multicorrelator_test.cc index 1e5604e87..35095ad7f 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/gpu_multicorrelator_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/gpu_multicorrelator_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2016 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_loop_filter_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_loop_filter_test.cc index 52a31a954..34abf6f46 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_loop_filter_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/tracking_loop_filter_test.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/system-parameters/glonass_gnav_ephemeris_test.cc b/src/tests/unit-tests/system-parameters/glonass_gnav_ephemeris_test.cc index 673de252c..d73c9e767 100644 --- a/src/tests/unit-tests/system-parameters/glonass_gnav_ephemeris_test.cc +++ b/src/tests/unit-tests/system-parameters/glonass_gnav_ephemeris_test.cc @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/tests/unit-tests/system-parameters/glonass_gnav_nav_message_test.cc b/src/tests/unit-tests/system-parameters/glonass_gnav_nav_message_test.cc index 34b159cb4..f42a0d04d 100644 --- a/src/tests/unit-tests/system-parameters/glonass_gnav_nav_message_test.cc +++ b/src/tests/unit-tests/system-parameters/glonass_gnav_nav_message_test.cc @@ -8,7 +8,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index ed785f695..1396ed3e6 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # add_subdirectory(front-end-cal) diff --git a/src/utils/front-end-cal/CMakeLists.txt b/src/utils/front-end-cal/CMakeLists.txt index 73f1c1f2a..03d6bc956 100644 --- a/src/utils/front-end-cal/CMakeLists.txt +++ b/src/utils/front-end-cal/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors) +# Copyright (C) 2012-2018 (see AUTHORS file for a list of contributors) # # This file is part of GNSS-SDR. # @@ -13,7 +13,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNSS-SDR. If not, see . +# along with GNSS-SDR. If not, see . # diff --git a/src/utils/front-end-cal/front_end_cal.cc b/src/utils/front-end-cal/front_end_cal.cc index eb025178d..6b8b937ac 100644 --- a/src/utils/front-end-cal/front_end_cal.cc +++ b/src/utils/front-end-cal/front_end_cal.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/front-end-cal/front_end_cal.h b/src/utils/front-end-cal/front_end_cal.h index b1b60fa17..3a6e9aeeb 100644 --- a/src/utils/front-end-cal/front_end_cal.h +++ b/src/utils/front-end-cal/front_end_cal.h @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/front-end-cal/main.cc b/src/utils/front-end-cal/main.cc index 306869392..cbdb6d28b 100644 --- a/src/utils/front-end-cal/main.cc +++ b/src/utils/front-end-cal/main.cc @@ -6,7 +6,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ @@ -261,7 +261,7 @@ int main(int argc, char** argv) { const std::string intro_help( std::string("\n RTL-SDR E4000 RF front-end center frequency and sampling rate calibration tool that uses GPS signals\n") + - "Copyright (C) 2010-2017 (see AUTHORS file for a list of contributors)\n" + + "Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors)\n" + "This program comes with ABSOLUTELY NO WARRANTY;\n" + "See COPYING file to see a copy of the General Public License\n \n"); diff --git a/src/utils/gpstk/gnsspvt/src/gnsspvt.cpp b/src/utils/gpstk/gnsspvt/src/gnsspvt.cpp index 2fc1bbcb8..e571e3138 100644 --- a/src/utils/gpstk/gnsspvt/src/gnsspvt.cpp +++ b/src/utils/gpstk/gnsspvt/src/gnsspvt.cpp @@ -28,7 +28,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.cpp b/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.cpp index 44c00fb42..7778c1dfe 100644 --- a/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.cpp +++ b/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.cpp @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.h b/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.h index 7d8e76cc4..dc30ce42b 100644 --- a/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.h +++ b/src/utils/gpstk/gnsspvt/src/kml_printer_gpstk.h @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/matlab/dll_pll_veml_plot_sample.m b/src/utils/matlab/dll_pll_veml_plot_sample.m index cd79955e3..011044a9f 100644 --- a/src/utils/matlab/dll_pll_veml_plot_sample.m +++ b/src/utils/matlab/dll_pll_veml_plot_sample.m @@ -22,7 +22,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/galileo_e1_dll_pll_veml_plot_sample.m b/src/utils/matlab/galileo_e1_dll_pll_veml_plot_sample.m index 240c279f7..08223b8d0 100644 --- a/src/utils/matlab/galileo_e1_dll_pll_veml_plot_sample.m +++ b/src/utils/matlab/galileo_e1_dll_pll_veml_plot_sample.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/galileo_e5a_dll_pll_plot_sample.m b/src/utils/matlab/galileo_e5a_dll_pll_plot_sample.m index ad80b985c..925e709c0 100644 --- a/src/utils/matlab/galileo_e5a_dll_pll_plot_sample.m +++ b/src/utils/matlab/galileo_e5a_dll_pll_plot_sample.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/glonass_ca_dll_pll_plot_sample.m b/src/utils/matlab/glonass_ca_dll_pll_plot_sample.m index fc342eb26..a0018286b 100644 --- a/src/utils/matlab/glonass_ca_dll_pll_plot_sample.m +++ b/src/utils/matlab/glonass_ca_dll_pll_plot_sample.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/gps_l1_ca_dll_pll_plot_sample.m b/src/utils/matlab/gps_l1_ca_dll_pll_plot_sample.m index 093799f7d..e2f1f544b 100644 --- a/src/utils/matlab/gps_l1_ca_dll_pll_plot_sample.m +++ b/src/utils/matlab/gps_l1_ca_dll_pll_plot_sample.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/gps_l1_ca_pvt_plot_sample_agilent_cap2.m b/src/utils/matlab/gps_l1_ca_pvt_plot_sample_agilent_cap2.m index 694a3d615..e4dcc91d2 100644 --- a/src/utils/matlab/gps_l1_ca_pvt_plot_sample_agilent_cap2.m +++ b/src/utils/matlab/gps_l1_ca_pvt_plot_sample_agilent_cap2.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/gps_l1_ca_pvt_raw_plot_sample.m b/src/utils/matlab/gps_l1_ca_pvt_raw_plot_sample.m index 572924da6..8dd572ba1 100644 --- a/src/utils/matlab/gps_l1_ca_pvt_raw_plot_sample.m +++ b/src/utils/matlab/gps_l1_ca_pvt_raw_plot_sample.m @@ -19,7 +19,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/gps_l1_ca_telemetry_plot_sample.m b/src/utils/matlab/gps_l1_ca_telemetry_plot_sample.m index 9e0e27125..f25ab5d21 100644 --- a/src/utils/matlab/gps_l1_ca_telemetry_plot_sample.m +++ b/src/utils/matlab/gps_l1_ca_telemetry_plot_sample.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/help_script1.m b/src/utils/matlab/help_script1.m index 0716950e8..575641bcf 100644 --- a/src/utils/matlab/help_script1.m +++ b/src/utils/matlab/help_script1.m @@ -18,7 +18,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/help_script2.m b/src/utils/matlab/help_script2.m index 28fadb535..8f9cd12bd 100644 --- a/src/utils/matlab/help_script2.m +++ b/src/utils/matlab/help_script2.m @@ -18,7 +18,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/hybrid_observables_plot_sample.m b/src/utils/matlab/hybrid_observables_plot_sample.m index 3faca95b1..9105c5bbd 100644 --- a/src/utils/matlab/hybrid_observables_plot_sample.m +++ b/src/utils/matlab/hybrid_observables_plot_sample.m @@ -18,7 +18,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/dll_pll_veml_read_tracking_dump.m b/src/utils/matlab/libs/dll_pll_veml_read_tracking_dump.m index 8405c9cf3..a53dedbf9 100644 --- a/src/utils/matlab/libs/dll_pll_veml_read_tracking_dump.m +++ b/src/utils/matlab/libs/dll_pll_veml_read_tracking_dump.m @@ -24,7 +24,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/gps_l1_ca_dll_pll_read_tracking_dump.m b/src/utils/matlab/libs/gps_l1_ca_dll_pll_read_tracking_dump.m index 1346816eb..61e4caff7 100644 --- a/src/utils/matlab/libs/gps_l1_ca_dll_pll_read_tracking_dump.m +++ b/src/utils/matlab/libs/gps_l1_ca_dll_pll_read_tracking_dump.m @@ -24,7 +24,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/gps_l1_ca_pvt_read_pvt_dump.m b/src/utils/matlab/libs/gps_l1_ca_pvt_read_pvt_dump.m index ce538a755..1f3ae07ba 100644 --- a/src/utils/matlab/libs/gps_l1_ca_pvt_read_pvt_dump.m +++ b/src/utils/matlab/libs/gps_l1_ca_pvt_read_pvt_dump.m @@ -23,7 +23,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/gps_l1_ca_read_pvt_raw_dump.m b/src/utils/matlab/libs/gps_l1_ca_read_pvt_raw_dump.m index b818b326b..e78d62b12 100644 --- a/src/utils/matlab/libs/gps_l1_ca_read_pvt_raw_dump.m +++ b/src/utils/matlab/libs/gps_l1_ca_read_pvt_raw_dump.m @@ -18,7 +18,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/gps_l1_ca_read_telemetry_dump.m b/src/utils/matlab/libs/gps_l1_ca_read_telemetry_dump.m index 325751627..2d6cdb479 100644 --- a/src/utils/matlab/libs/gps_l1_ca_read_telemetry_dump.m +++ b/src/utils/matlab/libs/gps_l1_ca_read_telemetry_dump.m @@ -18,7 +18,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/plotNavigation.m b/src/utils/matlab/libs/plotNavigation.m index 08460c702..1a74e502b 100644 --- a/src/utils/matlab/libs/plotNavigation.m +++ b/src/utils/matlab/libs/plotNavigation.m @@ -35,7 +35,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/read_complex_binary.m b/src/utils/matlab/libs/read_complex_binary.m index dc26a459f..64f51f964 100644 --- a/src/utils/matlab/libs/read_complex_binary.m +++ b/src/utils/matlab/libs/read_complex_binary.m @@ -24,7 +24,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/read_complex_char_binary.m b/src/utils/matlab/libs/read_complex_char_binary.m index e339ec158..be990681a 100644 --- a/src/utils/matlab/libs/read_complex_char_binary.m +++ b/src/utils/matlab/libs/read_complex_char_binary.m @@ -24,7 +24,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/read_complex_short_binary.m b/src/utils/matlab/libs/read_complex_short_binary.m index 1d4e80bef..74edcd616 100644 --- a/src/utils/matlab/libs/read_complex_short_binary.m +++ b/src/utils/matlab/libs/read_complex_short_binary.m @@ -24,7 +24,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/read_hybrid_observables_dump.m b/src/utils/matlab/libs/read_hybrid_observables_dump.m index 3d8cc3703..3ccfe9b67 100644 --- a/src/utils/matlab/libs/read_hybrid_observables_dump.m +++ b/src/utils/matlab/libs/read_hybrid_observables_dump.m @@ -23,7 +23,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/libs/read_true_sim_observables_dump.m b/src/utils/matlab/libs/read_true_sim_observables_dump.m index 04c45f989..7f4995294 100644 --- a/src/utils/matlab/libs/read_true_sim_observables_dump.m +++ b/src/utils/matlab/libs/read_true_sim_observables_dump.m @@ -23,7 +23,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/plot_acq_grid.m b/src/utils/matlab/plot_acq_grid.m index b1d63ed58..c18e44556 100644 --- a/src/utils/matlab/plot_acq_grid.m +++ b/src/utils/matlab/plot_acq_grid.m @@ -21,7 +21,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/plot_acq_grid_gsoc.m b/src/utils/matlab/plot_acq_grid_gsoc.m index 155de2528..ed8ff5033 100644 --- a/src/utils/matlab/plot_acq_grid_gsoc.m +++ b/src/utils/matlab/plot_acq_grid_gsoc.m @@ -26,7 +26,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/plot_acq_grid_gsoc_e5.m b/src/utils/matlab/plot_acq_grid_gsoc_e5.m index 00ed7b226..1801a17e1 100644 --- a/src/utils/matlab/plot_acq_grid_gsoc_e5.m +++ b/src/utils/matlab/plot_acq_grid_gsoc_e5.m @@ -29,7 +29,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/matlab/plot_acq_grid_gsoc_glonass.m b/src/utils/matlab/plot_acq_grid_gsoc_glonass.m index 9cc6b3ec3..363962532 100644 --- a/src/utils/matlab/plot_acq_grid_gsoc_glonass.m +++ b/src/utils/matlab/plot_acq_grid_gsoc_glonass.m @@ -25,7 +25,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/reproducibility/ieee-access18/plot_dump.m b/src/utils/reproducibility/ieee-access18/plot_dump.m index 202c14355..33416ad77 100644 --- a/src/utils/reproducibility/ieee-access18/plot_dump.m +++ b/src/utils/reproducibility/ieee-access18/plot_dump.m @@ -18,7 +18,7 @@ % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with GNSS-SDR. If not, see . +% along with GNSS-SDR. If not, see . % % ------------------------------------------------------------------------- % diff --git a/src/utils/simulink/Multi Thread/README_gnss_sdr_tcp_connector_parallel_tracking.txt b/src/utils/simulink/Multi Thread/README_gnss_sdr_tcp_connector_parallel_tracking.txt index 68190d4b2..dc115ecc3 100644 --- a/src/utils/simulink/Multi Thread/README_gnss_sdr_tcp_connector_parallel_tracking.txt +++ b/src/utils/simulink/Multi Thread/README_gnss_sdr_tcp_connector_parallel_tracking.txt @@ -27,7 +27,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_parallel_tracking_start.m b/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_parallel_tracking_start.m index dc451509a..64efa4e91 100644 --- a/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_parallel_tracking_start.m +++ b/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_parallel_tracking_start.m @@ -25,7 +25,7 @@ % * GNU General Public License for more details. % * % * You should have received a copy of the GNU General Public License -% * along with GNSS-SDR. If not, see . +% * along with GNSS-SDR. If not, see . % * % * ---------------------------------------------------------------------- % */ diff --git a/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_tracking_lib.mdl b/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_tracking_lib.mdl index 161fd561e..5e3ee7a3c 100644 --- a/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_tracking_lib.mdl +++ b/src/utils/simulink/Multi Thread/gnss_sdr_tcp_connector_tracking_lib.mdl @@ -885,7 +885,7 @@ Library { "d in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * M" "ERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n" " *\n * You should have received a copy of the GNU General Public License\n * along with GNSS-SDR. If not, see" - " .\n *\n * ---------------------------------------------------------------------" + " .\n *\n * ---------------------------------------------------------------------" "----\n */" MaskDisplayString "/*! \\n * \\file gnss_sdr_tcp_connector_tracking_lib.mdl\\n * \\brief gnss_sdr_tcp_c" "onnector_tracking Simulink library model. For \\n * further information, please check the README_gnss_sdr_tcp_" @@ -899,7 +899,7 @@ Library { "GNSS-SDR is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the imp" "lied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU General Public Li" "cense for more details.\\n *\\n * You should have received a copy of the GNU General Public License\\n * alon" - "g with GNSS-SDR. If not, see .\\n *\\n * ---------------------------------------" + "g with GNSS-SDR. If not, see .\\n *\\n * ---------------------------------------" "----------------------------------\\n */" HorizontalTextAlignment "Left" LeftAlignmentValue "0.02" diff --git a/src/utils/simulink/Single Thread/README_gnss_sdr_galileo_e1_tcp_connector_tracking.txt b/src/utils/simulink/Single Thread/README_gnss_sdr_galileo_e1_tcp_connector_tracking.txt index 3da3a7972..2494050ee 100644 --- a/src/utils/simulink/Single Thread/README_gnss_sdr_galileo_e1_tcp_connector_tracking.txt +++ b/src/utils/simulink/Single Thread/README_gnss_sdr_galileo_e1_tcp_connector_tracking.txt @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/simulink/Single Thread/README_gnss_sdr_tcp_connector_tracking.txt b/src/utils/simulink/Single Thread/README_gnss_sdr_tcp_connector_tracking.txt index 3283a85c0..d275ac709 100644 --- a/src/utils/simulink/Single Thread/README_gnss_sdr_tcp_connector_tracking.txt +++ b/src/utils/simulink/Single Thread/README_gnss_sdr_tcp_connector_tracking.txt @@ -26,7 +26,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_lib.mdl b/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_lib.mdl index 99f227ef7..78c4766fb 100644 --- a/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_lib.mdl +++ b/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_lib.mdl @@ -883,7 +883,7 @@ Library { "ion.\n *\n * GNSS-SDR is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; withou" "t even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Gener" "al Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n" - " * along with GNSS-SDR. If not, see .\n *\n * ---------------------------------" + " * along with GNSS-SDR. If not, see .\n *\n * ---------------------------------" "----------------------------------------\n */" MaskDisplayString "/*! \\n * \\file gnss_sdr_galileo_e1_tcp_connector_tracking_lib.mdl\\n * \\brief gns" "s_sdr_galileo_e1_tcp_connector_tracking Simulink library model. For \\n * further information, please check th" @@ -896,7 +896,7 @@ Library { "ion) any later version.\\n *\\n * GNSS-SDR is distributed in the hope that it will be useful,\\n * but WITHOU" "T ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. " " See the\\n * GNU General Public License for more details.\\n *\\n * You should have received a copy of the G" - "NU General Public License\\n * along with GNSS-SDR. If not, see .\\n *\\n * ---" + "NU General Public License\\n * along with GNSS-SDR. If not, see .\\n *\\n * ---" "----------------------------------------------------------------------\\n */" HorizontalTextAlignment "Left" LeftAlignmentValue "0.02" diff --git a/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_start.m b/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_start.m index ee9c5d613..5eee44ee8 100644 --- a/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_start.m +++ b/src/utils/simulink/Single Thread/gnss_sdr_galileo_e1_tcp_connector_tracking_start.m @@ -24,7 +24,7 @@ % * GNU General Public License for more details. % * % * You should have received a copy of the GNU General Public License -% * along with GNSS-SDR. If not, see . +% * along with GNSS-SDR. If not, see . % * % * ---------------------------------------------------------------------- % */ diff --git a/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_lib.mdl b/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_lib.mdl index 161fd561e..5e3ee7a3c 100644 --- a/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_lib.mdl +++ b/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_lib.mdl @@ -885,7 +885,7 @@ Library { "d in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * M" "ERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n" " *\n * You should have received a copy of the GNU General Public License\n * along with GNSS-SDR. If not, see" - " .\n *\n * ---------------------------------------------------------------------" + " .\n *\n * ---------------------------------------------------------------------" "----\n */" MaskDisplayString "/*! \\n * \\file gnss_sdr_tcp_connector_tracking_lib.mdl\\n * \\brief gnss_sdr_tcp_c" "onnector_tracking Simulink library model. For \\n * further information, please check the README_gnss_sdr_tcp_" @@ -899,7 +899,7 @@ Library { "GNSS-SDR is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the imp" "lied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU General Public Li" "cense for more details.\\n *\\n * You should have received a copy of the GNU General Public License\\n * alon" - "g with GNSS-SDR. If not, see .\\n *\\n * ---------------------------------------" + "g with GNSS-SDR. If not, see .\\n *\\n * ---------------------------------------" "----------------------------------\\n */" HorizontalTextAlignment "Left" LeftAlignmentValue "0.02" diff --git a/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_start.m b/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_start.m index 613151bf1..1fcef0faf 100644 --- a/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_start.m +++ b/src/utils/simulink/Single Thread/gnss_sdr_tcp_connector_tracking_start.m @@ -24,7 +24,7 @@ % * GNU General Public License for more details. % * % * You should have received a copy of the GNU General Public License -% * along with GNSS-SDR. If not, see . +% * along with GNSS-SDR. If not, see . % * % * ---------------------------------------------------------------------- % */ From 66fba9d22a37db34704ab3f4180ccf2b50145edc Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 13 May 2018 23:06:22 +0200 Subject: [PATCH 063/108] Use https instead of http in links when available --- .clang-format | 7 +++---- MANIFEST.md | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.clang-format b/.clang-format index b1e46057f..f0d042c27 100644 --- a/.clang-format +++ b/.clang-format @@ -1,7 +1,7 @@ --- Language: Cpp # BasedOnStyle: Google -# More info: http://clang.llvm.org/docs/ClangFormatStyleOptions.html +# More info: https://clang.llvm.org/docs/ClangFormatStyleOptions.html AccessModifierOffset: -4 AlignAfterOpenBracket: DontAlign AlignConsecutiveAssignments: false @@ -21,7 +21,7 @@ AlwaysBreakBeforeMultilineStrings: true AlwaysBreakTemplateDeclarations: false BinPackArguments: true BinPackParameters: true -BraceWrapping: +BraceWrapping: AfterClass: false AfterControlStatement: false AfterEnum: false @@ -47,7 +47,7 @@ DerivePointerAlignment: true DisableFormat: false ExperimentalAutoDetectBinPacking: false ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] -IncludeCategories: +IncludeCategories: - Regex: '^<.*\.h>' Priority: 1 - Regex: '^<.*' @@ -88,4 +88,3 @@ Standard: Auto TabWidth: 8 UseTab: Never ... - diff --git a/MANIFEST.md b/MANIFEST.md index f78022b17..ad39cfa7a 100644 --- a/MANIFEST.md +++ b/MANIFEST.md @@ -15,7 +15,7 @@ dependencies: gnuradio (>= 3.7.3), armadillo, gflags, glog, gnutls license: GPLv3+ repo: https://github.com/gnss-sdr/gnss-sdr website: https://gnss-sdr.org -icon: http://a.fsdn.com/con/app/proj/gnss-sdr/screenshots/logo400x400.jpg +icon: https://a.fsdn.com/con/app/proj/gnss-sdr/screenshots/logo400x400.jpg --- Global Navigation Satellite Systems receiver defined by software. It performs all the signal processing from raw signal samples up to the computation of the Position-Velocity-Time solution, From 8275f3da7a330e5cd3ea2c171f98e5ecc4e94005 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 13 May 2018 23:20:27 +0200 Subject: [PATCH 064/108] Document http to https replacement --- docs/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changelog b/docs/changelog index 3770a2ef0..6931753ab 100644 --- a/docs/changelog +++ b/docs/changelog @@ -81,7 +81,7 @@ Next release will have several improvements, addition of new features and bug fi - Fixed a number of defects detected by Coverity Scan. - Some destructors have been fixed, avoiding a segmentation fault when exiting the program. - Introduction of high-integrity C++ practices into the coding style guide. -- Website switched from http to https. +- Website switched from http to https. Links in source code switched when available. ### Improvements in Reproducibility: From abb935d9d14fd5250d07375ff9e42da9fcde0a82 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 14 May 2018 14:42:55 +0200 Subject: [PATCH 065/108] Fix building in openSUSE Tumbleweed Add detection of aclocal-1.16 --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fbdd1fd67..679a0fcf0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -825,9 +825,9 @@ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/c # Ensure that aclocal and libtool are present if(OS_IS_LINUX) if(EXISTS "/usr/bin/libtoolize") - if(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") + if(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") # Everything ok, we can move on - else(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") + else(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") message(" aclocal has not been found.") message(" You can try to install it by typing:") if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat") @@ -838,7 +838,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/c message(" sudo apt-get install automake") endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat") message(FATAL_ERROR "aclocal is required to build glog from source") - endif(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") + endif(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") else(EXISTS "/usr/bin/libtoolize") message(" libtool has not been found.") message(" You can try to install it by typing:") From a50b236f36645ccda21e62aea280f9bf4bd8f282 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 14 May 2018 20:12:56 +0200 Subject: [PATCH 066/108] Fix for automake 1.16 if matio is not found in the system --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 679a0fcf0..94b4d5ef6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1119,9 +1119,9 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat") message(FATAL_ERROR "libtool is required to build matio from source") endif(NOT EXISTS "/usr/bin/libtoolize") - if(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") + if(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") message(STATUS "Automake found.") - else(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") + else(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") message(" aclocal has not been found.") message(" You can try to install it by typing:") if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat") @@ -1132,7 +1132,7 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS message(" sudo apt-get install automake") endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat") message(FATAL_ERROR "aclocal is required to build matio from source") - endif(EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") + endif(EXISTS "/usr/bin/aclocal" OR EXISTS "/usr/bin/aclocal-1.16" OR EXISTS "/usr/bin/aclocal-1.15" OR EXISTS "/usr/bin/aclocal-1.14" OR EXISTS "/usr/bin/aclocal-1.13" OR EXISTS "/usr/bin/aclocal-1.11" OR EXISTS "/usr/bin/aclocal-1.10") endif(OS_IS_LINUX) find_package(HDF5) if(HDF5_FOUND) From 3694494386b5206995a1dc9c442ccde7f4d478ce Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 14 May 2018 21:23:40 +0200 Subject: [PATCH 067/108] Clarifications are never enough --- docs/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/PULL_REQUEST_TEMPLATE.md b/docs/PULL_REQUEST_TEMPLATE.md index 0ab14dff6..a6cc9eef2 100644 --- a/docs/PULL_REQUEST_TEMPLATE.md +++ b/docs/PULL_REQUEST_TEMPLATE.md @@ -9,4 +9,4 @@ Before submitting your pull request, please make sure the following is done: 6. You have forked the [gnss-sdr upstream repository](https://github.com/gnss-sdr/gnss-sdr) and have created your branch from `next` (or any other currently living branch in the upstream repository). 7. Please include a description of your changes here. -**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request.** +**Please feel free to delete this line and the above text once you have read it and in case you want to go on with your pull request, and explain your intend below.** From ea50ca0dddf178749d61aeb0b16d34f0f235e52a Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 15 May 2018 07:26:00 +0200 Subject: [PATCH 068/108] Add work in the changelog --- docs/changelog | 97 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 39 deletions(-) diff --git a/docs/changelog b/docs/changelog index 6931753ab..d46e1202f 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,32 +1,37 @@ ## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next) -Next release will have several improvements, addition of new features and bug fixes in many dimensions: +Next release will have several improvements in different dimensions, addition of new features and bug fixes: ### Improvements in Accuracy: - Part of the RTKLIB core libraries has been integrated into GNSS-SDR. There is now a single PVT block implementation which makes use of RTKLIB to deliver PVT solutions, including Single and PPP navigation modes. - Fixed CN0 estimation for other correlation times than 1 ms. +- Improved computation of tracking parameters and GNSS observables. +- Other minor bug fixes. ### Improvements in Availability: - Internal Finite State Machines rewritten for improved continuity in delivering position fixes. This fixes a bug that was stalling the receiver after about six hours of continuous operation. - Redesign of the time counter for enhanced continuity. +- Improved acquisition and tracking sensibility. +- Other minor bug fixes. ### Improvements in Efficiency: -- Added the possibility of non-blocking acquisition, which works well when using real-time data from a RF front-end. -- Complex codes have been replaced by real codes, alleviating the computational burden. +- Added the possibility of non-blocking acquisition, which works well when using real-time data from an RF front-end. +- Complex local codes have been replaced by real codes, alleviating the computational burden. - New kernels: volk_gnsssdr_16i_xn_resampler_16i_xn.h, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h, volk_gnsssdr_32f_xn_resampler_32f_xn.h, volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h -- Some AVX2 kernels added to the volk_gnsssdr library. -- Several performance improvements. +- Some AVX2 implementations added to the volk_gnsssdr library. +- Improvement in C++ usage: Use of const container calls when result is immediately converted to a const iterator. Using these members removes an implicit conversion from iterator to const_iterator. +- A number of code optimizations here and there. ### Improvements in Flexibility: -- A number of new parameters have been exposed in the configuration. -- Possibility to choose Pilot or Data tracking where available. +- A number of new parameters have been exposed to the configuration system. +- Possibility to choose Pilot or Data component for tracking of GPS L5 and Galileo E5a signals. - Enabled extended coherent integration times. - Some configuration parameters can now be overridden by commandline flags for easier use in scripts. @@ -37,78 +42,92 @@ Next release will have several improvements, addition of new features and bug fi - Added the GLONASS L1 SP receiver chain. - Added the GLONASS L2 SP receiver chain. - Improvements in the Galileo E5a and GPS L2C receiver chains. -- Added four more signal sources: "Fmcomms2_Signal_Source", "Plutosdr_Signal Source", "Spir_GSS6450_File_Signal_Source" and "Labsat_Signal_Source". +- Updated list of available GNSS satellites. +- Added four more signal sources: "Fmcomms2_Signal_Source", "Plutosdr_Signal Source", "Spir_GSS6450_File_Signal_Source" and "Labsat_Signal_Source". Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/ - Improved support for BladeRF, HackRF and RTL-SDR front-ends. - Added tools for the interaction with front-ends based on the AD9361 chipset. - Intermediate results are now saved in .mat binary format, readable from Matlab/Octave and from Python via h5py. - Added the GPX output format. -- Fixed a bug in the format of NMEA sentences when latitude or longitude minutes were >10 -- Improvements in the RTCM server. -- Improvements in the generation of RINEX files. +- Fixed a bug in the format of NMEA sentences when latitude or longitude minutes were >10. +- Improvements in the RTCM server stability. +- Improvements in the correctness of generated RINEX files. ### Improvements in Maintainability: -- C-style casts have been replaced by C++ casts. C-style casts are difficult to search for. C++ casts provide compile time checking ability and express programmers' intent better, so they are safer and clearer. -- The override special identifier is now used when overriding a virtual function. This helps the compiler to check for type changes in the base class. -- Use of const container calls when result is immediately converted to a const iterator. Using these members removes an implicit conversion from iterator to const_iterator. -- Improved control over minimum required versions for core dependencies. -- Automated code formating with clang-format. -- Application of the coding style guide in several source files, improving readability. -- The software builds with C++11, C++14 and C++17 standards. -- Setup of a Continuous Integration system that checks building in a wide range of Linux distributions. +- Setup of a Continuous Integration system that checks building and runs QA code in a wide range of GNU/Linux distributions (ArchLinux, CentOS, Debian, Fedora, OpenSUSE, Ubuntu) and releases. See https://gitlab.com/gnss-sdr/gnss-sdr +- Creation of multi-system processing blocks, drastically reducing code duplication and maintainability time. +- Automated code formatting with clang-format. This tool is widely available and easy to integrate into many code editors, and it also can be used from the command line. It cuts time spent on adhering to the project's code formatting style. +- Improvement in C++ usage: C-style casts have been replaced by C++ casts. C-style casts are difficult to search for. C++ casts provide compile time checking ability and express programmers' intent better, so they are safer and clearer. +- Improvement in C++ usage: The override special identifier is now used when overriding a virtual function. This helps the compiler to check for type changes in the base class, making the detection of errors easier. +- Improvement in C++ usage: A number of unused includes have been removed. Order of includes set to: local (in-source) headers, then library headers, then system headers. This helps to detect missing includes. +- Improvement in C++ usage: Enhanced const correctness. Misuses of those variables are detected by the compiler. ### Improvements in Portability: -- The library has been replaced by the more modern and portable . -- The library has been replaced by the more modern and portable for file handling. -- C++ libraries preferred over C libraries (e.g., instead of ). -- A number of unused includes have been removed. -- The software can now be built using GCC or LLVM/Clang compilers on GNU/Linux. +- Several CMake scripts improvements, more verbose outputs in case of errors. Building configuration has been documented in https://gnss-sdr.org/docs/tutorials/configuration-options-building-time/ +- Improved SDK for cross-compilation in embedded devices. Documented in https://gnss-sdr.org/docs/tutorials/cross-compiling/ +- Improved control over minimum required versions for core dependencies. +- The software builds with C++11, C++14 and C++17 standards. +- The software can now be built using GCC >= 4.7.2 or LLVM/Clang >= 3.4.0 compilers on GNU/Linux, and with Clang/AppleClang on MacOS. - The Ninja build system can be used in replacement of make. - The volk_gnsssdr library can be built using Python 2.7 or Python 3.6. -- Several CMake scripts improvements. -- BLAS and LAPACK libraries are mandatory on ARM devices. +- The volk_gnsssdr library is now ready for AArch64 NEON instructions. +- Ready for GNU Radio 3.8 C++ API (as per current next branch of GNU Radio upstream repository). +- Improved detection of required and optional dependencies in many GNU/Linux distributions and processor architectures. +- Improvement in C++ usage: The library has been replaced by the more modern and portable . +- Improvement in C++ usage: The library has been replaced by the more modern and portable for file handling. +- Improvement in C++ usage: C++ libraries preferred over C libraries (e.g., instead of , instead of ). +- Fixes required by Debian packaging. +- Fixes required by Macports packaging. +- A downside in portability: BLAS and LAPACK libraries are now required even in ARM devices. +- A downside in portability: the matio library >= 1.5.3 is a new required dependency. If not found, it is downloaded and built automatically at building time, but this requires libtool, automake and hdf5 already installed in the system. ### Improvements in Reliability: -- Introduced 3 new Input Filter implementations for pulsed and narrowband interference mitigation: `Pulse_Blanking_Filter`, `Notch_Filter` and `Notch_Filter_Lite`. -- Enhanced const correctness. -- rand() function replaced by library. -- strlen and strncpy have been replaced by safer C++ counterparts. +- Introduced 3 new Input Filter implementations for pulsed and narrowband interference mitigation: `Pulse_Blanking_Filter`, `Notch_Filter` and `Notch_Filter_Lite`. Documented in https://gnss-sdr.org/docs/sp-blocks/input-filter/ +- Improved flow graph stabiliy. +- Introduction of high-integrity C++ practices into the source code and included in the coding style guide. See https://gnss-sdr.org/coding-style/ - Fixed a number of defects detected by Coverity Scan. -- Some destructors have been fixed, avoiding a segmentation fault when exiting the program. -- Introduction of high-integrity C++ practices into the coding style guide. -- Website switched from http to https. Links in source code switched when available. +- Improvement in C++ usage: rand() function replaced by library. +- Improvement in C++ usage: strlen and strncpy have been replaced by safer C++ counterparts. +- Improvement in C++ usage: Some destructors have been fixed, avoiding segmentation faults when exiting the program. +- Website switched from http to https. Links in the source tree switched when available. ### Improvements in Reproducibility: -- Setup of a Continuous Reproducibility system at GitLab for the automatic reproduction of experiments. The concept was introduced in https://ieeexplore.ieee.org/document/8331069/ +- Setup of a Continuous Reproducibility system at GitLab for the automatic reproduction of experiments. The concept was introduced in https://ieeexplore.ieee.org/document/8331069/ Example added in the src/utils/reproducibility/ieee-access18/ folder. - Fixes of Lintian warnings related to build reproducibility. ### Improvements in Scalability: -- Improvements in multi-system, multi-band receiver configurations. The receiver now accepts any number of channels in the three available bands. +- Improvements in multi-system, multi-band receiver configurations. The receiver now accepts any number of channels and systems in the three available bands. +- All possible combinations of signals and integration times are now accepted by the Observables block. ### Improvements in Testability: -- Several Unit Tests added. +- Several Unit Tests added. Documentation of testing concepts and available tests at https://gnss-sdr.org/docs/tutorials/testing-software-receiver/ - Receiver channels can now be fixed to a given satellite. - Improved CTest support in volk_gnsssdr. ### Improvements in Usability: -- All Observables block implementations have been collapsed in a universal implementation for all kinds of GNSS signals, making it easier to configure. -- All PVT block implementations have been collapsed in a universal implementation for all kinds of GNSS signals, making it easier to configure. +- All Observables block implementations have been merged into a single implementation for all kinds of GNSS signals, making it easier to configure. +- All PVT block implementations have been merged into a single implementation for all kinds of GNSS signals, making it easier to configure. - Misleading parameter name GNSS-SDR.internal_fs_hz has been replaced by GNSS-SDR.internal_fs_sps. The old parameter name is still read. If found, a warning is provided to the user. -- Updated and improved documentation. +- Updated and improved documentation of processing blocks at https://gnss-sdr.org/docs/sp-blocks/ +- Improved documentation of required dependency packages in several GNU/Linux distributions. +- Parameter names with the same role have been harmonized within different block implementations. +- Added a chnagelog, a code of conduct, a contributing guide and a pull-request template in the source tree. - Added colors to the commandline user interface. +- Updated manfiles. + See the definitions of concepts and metrics at https://gnss-sdr.org/design-forces/ From 1bad4d3be605ffe4626ec4d2082230838890bfd6 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 15 May 2018 18:31:34 +0200 Subject: [PATCH 069/108] Catch exception by reference --- src/core/receiver/control_thread.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 0710da730..8eb49563c 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -114,7 +114,7 @@ void ControlThread::run() { flowgraph_->connect(); } - catch (const std::exception e) + catch (const std::exception &e) { LOG(ERROR) << e.what(); return; From 0d70b08288e7621ac750b5d52cd744c65304d49e Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 15 May 2018 18:38:26 +0200 Subject: [PATCH 070/108] Fix pedantic warning emitted by GCC 8.1.1 (fedora-rawhide) The warning was: type qualifiers ignored on cast result type [-Wignored-qualifiers] --- .../libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc index cf26c9bea..60fb651c0 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc @@ -539,7 +539,7 @@ bool run_volk_gnsssdr_tests(volk_gnsssdr_func_desc_t desc, vlen = vlen + vlen_twiddle; const float tol_f = tol; - const unsigned int tol_i = static_cast(tol); + const unsigned int tol_i = static_cast(tol); //first let's get a list of available architectures for the test std::vector arch_list = get_arch_list(desc); From df0dd82843382184cb6e0af4b996d7c79936f8e6 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Wed, 16 May 2018 10:49:27 +0200 Subject: [PATCH 071/108] Optimizing custom UDP packet source and applying code style --- conf/gnss-sdr_GPS_L1_2ch_udp.conf | 34 +- .../adapters/udp_signal_source.cc | 171 +++---- .../adapters/udp_signal_source.h | 23 +- .../gnuradio_blocks/CMakeLists.txt | 2 + .../gr_complex_ip_packet_source.cc | 439 ++++++++++++++++++ .../gr_complex_ip_packet_source.h | 117 +++++ .../unpack_byte_4bit_samples.cc | 86 ++++ .../unpack_byte_4bit_samples.h | 61 +++ 8 files changed, 789 insertions(+), 144 deletions(-) create mode 100644 src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc create mode 100644 src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h create mode 100644 src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc create mode 100644 src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf index d80ffda68..d63eac95d 100644 --- a/conf/gnss-sdr_GPS_L1_2ch_udp.conf +++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf @@ -6,23 +6,25 @@ ;######### GLOBAL OPTIONS ################## ;internal_fs_sps: Internal signal sampling frequency after the signal conditioning stage [Sps]. -;GNSS-SDR.internal_fs_sps=3312500 -GNSS-SDR.internal_fs_sps=2650000 +GNSS-SDR.internal_fs_sps=13250000 ;//66.25/5 +;GNSS-SDR.internal_fs_sps=6625000 ;//66.25/10 +;GNSS-SDR.internal_fs_sps=3312500 ;//66.25/20 +;GNSS-SDR.internal_fs_sps=2650000 ;//66.25/25 ;######### SIGNAL_SOURCE CONFIG ############ SignalSource.implementation=UDP_Signal_Source ;SignalSource.implementation=File_Signal_Source -SignalSource.filename=/home/javier/gnss/gnss-simulator/build/signal_out.bin ; <- PUT YOUR FILE HERE +;SignalSource.filename=/home/javier/gnss/gnss-simulator/build/signal_out.bin ; <- PUT YOUR FILE HERE SignalSource.item_type=gr_complex SignalSource.origin_address=0.0.0.0 SignalSource.capture_device=eth0 SignalSource.port=1234 SignalSource.payload_bytes=1472 -SignalSource.sample_type=cbyte +;SignalSource.sample_type=cbyte +SignalSource.sample_type=c4bits +SignalSource.IQ_swap=false SignalSource.RF_channels=1 -SignalSource.select_single_channel=0 SignalSource.channels_in_udp=2 -SignalSource.IQ_swap=true SignalSource.dump=false SignalSource.dump_filename=./signal_source.dat @@ -33,12 +35,22 @@ SignalConditioner.implementation=Pass_Through ;SignalConditioner1.implementation=Pass_Through ;######### CHANNELS GLOBAL CONFIG ############ -Channels_1C.count=1 +Channels_1C.count=8 Channels.in_acquisition=1 ;# CHANNEL CONNECTION Channel.signal=1C -;Channel0.RF_channel_ID=0 +Channel0.RF_channel_ID=0 +Channel1.RF_channel_ID=0 +Channel2.RF_channel_ID=0 +Channel3.RF_channel_ID=0 +Channel4.RF_channel_ID=0 +Channel5.RF_channel_ID=0 +Channel6.RF_channel_ID=0 +Channel7.RF_channel_ID=0 +Channel8.RF_channel_ID=1 +Channel9.RF_channel_ID=1 + ;Channel0.signal=1C ;Channel1.RF_channel_ID=1 ;Channel1.signal=1C @@ -46,11 +58,11 @@ Channel.signal=1C ;######### ACQUISITION GLOBAL CONFIG ############ Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition Acquisition_1C.item_type=gr_complex -Acquisition_1C.threshold=60 +Acquisition_1C.threshold=17 Acquisition_1C.use_CFAR_algorithm=false Acquisition_1C.blocking=false Acquisition_1C.doppler_max=5000 -Acquisition_1C.doppler_step=500 +Acquisition_1C.doppler_step=250 Acquisition_1C.dump=false Acquisition_1C.dump_filename=./acq_dump.dat @@ -78,7 +90,7 @@ Observables.dump_filename=./observables.dat ;######### PVT CONFIG ############ PVT.implementation=RTKLIB_PVT -PVT.positioning_mode=Single ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic +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 diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.cc b/src/algorithms/signal_source/adapters/udp_signal_source.cc index ed79ff97f..93af9dd4a 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/udp_signal_source.cc @@ -1,13 +1,12 @@ /*! - * \file rtl_tcp_signal_source.cc - * \brief Signal source for the Realtek RTL2832U USB dongle DVB-T receiver - * over TCP. - * (see http://sdr.osmocom.org/trac/wiki/rtl-sdr for more information) - * \author Anthony Arnold, 2015. anthony.arnold(at)uqconnect.edu.au + * \file udp_signal_source.cc * + * \brief Receives ip frames containing samples in UDP frame encapsulation + * using a high performance packet capture library (libpcap) + * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -30,6 +29,7 @@ * ------------------------------------------------------------------------- */ + #include "udp_signal_source.h" #include "configuration_interface.h" #include "GPS_L1_CA.h" @@ -64,58 +64,46 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, RF_channels_ = configuration->property(role + ".RF_channels", 1); - select_single_channel_ = configuration->property(role + ".select_single_channel", 0); - channels_in_udp_= configuration->property(role + ".channels_in_udp", 1); - IQ_swap_= configuration->property(role + ".IQ_swap", false); + channels_in_udp_ = configuration->property(role + ".channels_in_udp", 1); + IQ_swap_ = configuration->property(role + ".IQ_swap", false); std::string default_sample_type = "cbyte"; std::string sample_type = configuration->property(role + ".sample_type", default_sample_type); item_type_ = configuration->property(role + ".item_type", default_item_type); - - if (sample_type.compare("cbyte")==0) - { - udp_gnss_rx_source_ = raw_ip_packet_source::make(capture_device, address, port, payload_bytes); - demux_=gr::blocks::deinterleave::make(sizeof(char),1); - }else{ - std::cout<<"WARNING: Requested UDP sample type unsuported, setting sample type to cbyte\n"; - udp_gnss_rx_source_ = raw_ip_packet_source::make(capture_device, address, port, payload_bytes); - demux_=gr::blocks::deinterleave::make(sizeof(char),1); - } - - //create I, Q -> gr_complex type conversion blocks - for (int n = 0; n < (channels_in_udp_ * 2); n++) - { - char_to_float_.push_back(gr::blocks::char_to_float::make()); - } - - for (int n = 0; n < channels_in_udp_; n++) - { - float_to_complex_.push_back(gr::blocks::float_to_complex::make()); - } - - if (channels_in_udp_>RF_channels_) - { - for (int n = 0; n < channels_in_udp_; n++) - { - null_sinks_.push_back(gr::blocks::null_sink::make(sizeof(gr_complex))); - } - }else - { - std::cout<<"Configuration error: RF_channels= RF_channels_) + { + for (int n = 0; n < channels_in_udp_; n++) + { + null_sinks_.push_back(gr::blocks::null_sink::make(sizeof(gr_complex))); + } + } + else + { + std::cout << "Configuration error: RF_channelsconnect(udp_gnss_rx_source_,0, demux_,0); - DLOG(INFO)<<"connected udp_source to demux"<connect(demux_, n, char_to_float_.at(n), 0); - DLOG(INFO) << "connected demux to char_to_float CH" << n; - } + //connect null sinks to unused streams for (int n = 0; n < channels_in_udp_; n++) { - if (!IQ_swap_) - { - top_block->connect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 0); - top_block->connect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); - } - else - { - top_block->connect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 1); - top_block->connect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 0); - } - DLOG(INFO) << "connected char_to_float to float_to_complex_ CH" << n; + top_block->connect(udp_gnss_rx_source_, n, null_sinks_.at(n), 0); } - - //connect null sinks to unused streams - if (channels_in_udp_>RF_channels_) - { - for (int n = 0; n < channels_in_udp_; n++) - { - top_block->connect(float_to_complex_.at(n),0,null_sinks_.at(n),0); - } - } + DLOG(INFO) << "connected udp_source to null_sinks to enable the use of spare channels" << std::endl; if (dump_) { for (int n = 0; n < channels_in_udp_; n++) - { - top_block->connect(float_to_complex_.at(n), 0, file_sink_.at(n), 0); - DLOG(INFO) << "connected source to file sink"; - } + { + top_block->connect(udp_gnss_rx_source_, n, file_sink_.at(n), 0); + DLOG(INFO) << "connected source to file sink"; + } } } void UDPSignalSource::disconnect(gr::top_block_sptr top_block) { - - for (int n = 0; n < (channels_in_udp_ * 2); n++) - { - top_block->disconnect(demux_, n, char_to_float_.at(n), 0); - DLOG(INFO) << "disconnect demux to char_to_float CH" << n; - } + //disconnect null sinks to unused streams for (int n = 0; n < channels_in_udp_; n++) { - if (!IQ_swap_) - { - top_block->disconnect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 0); - top_block->disconnect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 1); - } - else - { - top_block->disconnect(char_to_float_.at(n * 2), 0, float_to_complex_.at(n), 1); - top_block->disconnect(char_to_float_.at(n * 2 + 1), 0, float_to_complex_.at(n), 0); - } - DLOG(INFO) << "disconnect char_to_float to float_to_complex_ CH" << n; + top_block->disconnect(udp_gnss_rx_source_, n, null_sinks_.at(n), 0); } - - //disconnect null sinks to unused streams - if (channels_in_udp_>RF_channels_) - { - for (int n = 0; n < channels_in_udp_; n++) - { - top_block->disconnect(float_to_complex_.at(n),0,null_sinks_.at(n),0); - } - } - - if (dump_) { - for (int n = 0; n < channels_in_udp_; n++) - { - top_block->disconnect(float_to_complex_.at(n), 0, file_sink_.at(n), 0); - DLOG(INFO) << "disconnected source to file sink"; + for (int n = 0; n < channels_in_udp_; n++) + { + top_block->disconnect(udp_gnss_rx_source_, n, file_sink_.at(n), 0); + DLOG(INFO) << "disconnected source to file sink"; + } } - } - top_block->disconnect(udp_gnss_rx_source_,0, demux_,0); - DLOG(INFO)<<"disconnected udp_source to demux"< #include -#include #include #include -#include -#include #include #include #include @@ -90,7 +88,6 @@ private: bool IQ_swap_; int RF_channels_; - int select_single_channel_; int channels_in_udp_; unsigned int in_stream_; unsigned int out_stream_; @@ -99,12 +96,8 @@ private: size_t item_size_; bool dump_; std::string dump_filename_; - std::vector> char_to_float_; - std::vector> float_to_complex_; std::vector> null_sinks_; - - raw_ip_packet_source::sptr udp_gnss_rx_source_; - gr::blocks::deinterleave::sptr demux_; + gr_complex_ip_packet_source::sptr udp_gnss_rx_source_; std::vector> file_sink_; boost::shared_ptr queue_; }; diff --git a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt index 83a7ee7b2..55c8db1c9 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt @@ -20,12 +20,14 @@ set(SIGNAL_SOURCE_GR_BLOCKS_SOURCES unpack_byte_2bit_samples.cc unpack_byte_2bit_cpx_samples.cc + unpack_byte_4bit_samples.cc unpack_intspir_1bit_samples.cc rtl_tcp_signal_source_c.cc unpack_2bit_samples.cc unpack_spir_gss6450_samples.cc labsat23_source.cc raw_ip_packet_source.cc + gr_complex_ip_packet_source.cc ) include_directories( diff --git a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc new file mode 100644 index 000000000..038ea6fbe --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc @@ -0,0 +1,439 @@ +/*! + * \file gr_complex_ip_packet_source.cc + * + * \brief Receives ip frames containing samples in UDP frame encapsulation + * using a high performance packet capture library (libpcap) + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * GNSS-SDR is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GNSS-SDR is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNSS-SDR. If not, see . + * + * ------------------------------------------------------------------------- + */ + + +#include +#include "gr_complex_ip_packet_source.h" + +#include +#include + + +#define FIFO_SIZE 1472000 + + +/* 4 bytes IP address */ +typedef struct gr_ip_address +{ + u_char byte1; + u_char byte2; + u_char byte3; + u_char byte4; +} gr_ip_address; + +/* IPv4 header */ +typedef struct gr_ip_header +{ + u_char ver_ihl; // Version (4 bits) + Internet header length (4 bits) + u_char tos; // Type of service + u_short tlen; // Total length + u_short identification; // Identification + u_short flags_fo; // Flags (3 bits) + Fragment offset (13 bits) + u_char ttl; // Time to live + u_char proto; // Protocol + u_short crc; // Header checksum + gr_ip_address saddr; // Source address + gr_ip_address daddr; // Destination address + u_int op_pad; // Option + Padding +} gr_ip_header; + +/* UDP header*/ +typedef struct gr_udp_header +{ + u_short sport; // Source port + u_short dport; // Destination port + u_short len; // Datagram length + u_short crc; // Checksum +} gr_udp_header; + +gr_complex_ip_packet_source::sptr +gr_complex_ip_packet_source::make(std::string src_device, + std::string origin_address, + int udp_port, + int udp_packet_size, + int n_baseband_channels, + std::string wire_sample_type, + size_t item_size, + bool IQ_swap_) +{ + return gnuradio::get_initial_sptr(new gr_complex_ip_packet_source(src_device, + origin_address, + udp_port, + udp_packet_size, + n_baseband_channels, + wire_sample_type, + item_size, + IQ_swap_)); +} + +/* + * The private constructor + */ +gr_complex_ip_packet_source::gr_complex_ip_packet_source(std::string src_device, + __attribute__((unused)) std::string origin_address, + int udp_port, + int udp_packet_size, + int n_baseband_channels, + std::string wire_sample_type, + size_t item_size, + bool IQ_swap_) + : gr::sync_block("gr_complex_ip_packet_source", + gr::io_signature::make(0, 0, 0), + gr::io_signature::make(1, 4, item_size)) //1 to 4 baseband complex channels +{ + // constructor code here + std::cout << "Start Ethernet packet capture\n"; + + d_n_baseband_channels = n_baseband_channels; + if (wire_sample_type.compare("cbyte") == 0) + { + d_wire_sample_type = 1; + d_bytes_per_sample = d_n_baseband_channels * 2; + } + else if (wire_sample_type.compare("c4bits") == 0) + { + d_wire_sample_type = 2; + d_bytes_per_sample = d_n_baseband_channels; + } + else + { + std::cout << "Unknown wire sample type\n"; + exit(0); + } + std::cout << "d_wire_sample_type:" << d_wire_sample_type << std::endl; + d_src_device = src_device; + d_udp_port = udp_port; + d_udp_payload_size = udp_packet_size; + d_fifo_full = false; + + //allocate signal samples buffer + fifo_buff = new char[FIFO_SIZE]; + fifo_read_ptr = 0; + fifo_write_ptr = 0; + fifo_items = 0; + d_item_size = item_size; + d_IQ_swap = IQ_swap_; + d_sock_raw = 0; + d_pcap_thread = NULL; + descr = NULL; +} + + +//Called by gnuradio to enable drivers, etc for i/o devices. +bool gr_complex_ip_packet_source::start() +{ + std::cout << "gr_complex_ip_packet_source START\n"; + //open the ethernet device + if (open() == true) + { + // start pcap capture thread + d_pcap_thread = new boost::thread(boost::bind(&gr_complex_ip_packet_source::my_pcap_loop_thread, this, descr)); + return true; + } + else + { + return false; + } +} + +//Called by gnuradio to disable drivers, etc for i/o devices. +bool gr_complex_ip_packet_source::stop() +{ + std::cout << "gr_complex_ip_packet_source STOP\n"; + if (descr != NULL) + { + pcap_breakloop(descr); + d_pcap_thread->join(); + pcap_close(descr); + } + return true; +} + +bool gr_complex_ip_packet_source::open() +{ + char errbuf[PCAP_ERRBUF_SIZE]; + boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function + /* open device for reading */ + descr = pcap_open_live(d_src_device.c_str(), 1500, 1, 1000, errbuf); + if (descr == NULL) + { + std::cout << "Error openning Ethernet device " << d_src_device << std::endl; + printf("Fatal Error in pcap_open_live(): %s\n", errbuf); + return false; + } + //bind UDP port to avoid automatic reply with ICMP port ureacheable packets from kernel + d_sock_raw = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + if (d_sock_raw == -1) + { + std::cout << "Error openning UDP socket" << std::endl; + return false; + } + + // zero out the structure + memset((char *)&si_me, 0, sizeof(si_me)); + + si_me.sin_family = AF_INET; + si_me.sin_port = htons(d_udp_port); + si_me.sin_addr.s_addr = htonl(INADDR_ANY); + + //bind socket to port + if (bind(d_sock_raw, (struct sockaddr *)&si_me, sizeof(si_me)) == -1) + { + std::cout << "Error openning UDP socket" << std::endl; + return false; + } + return true; +} + +gr_complex_ip_packet_source::~gr_complex_ip_packet_source() +{ + if (d_pcap_thread != NULL) + { + delete d_pcap_thread; + } + delete fifo_buff; + std::cout << "Stop Ethernet packet capture\n"; +} + +void gr_complex_ip_packet_source::static_pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, + const u_char *packet) +{ + gr_complex_ip_packet_source *bridge = (gr_complex_ip_packet_source *)args; + bridge->pcap_callback(args, pkthdr, packet); +} + +void gr_complex_ip_packet_source::pcap_callback(__attribute__((unused)) u_char *args, __attribute__((unused)) const struct pcap_pkthdr *pkthdr, + const u_char *packet) +{ + boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function + + gr_ip_header *ih; + gr_udp_header *uh; + + // eth frame parameters + // **** UDP RAW PACKET DECODER **** + if ((packet[12] == 0x08) & (packet[13] == 0x00)) //IP FRAME + { + /* retireve the position of the ip header */ + ih = (gr_ip_header *)(packet + + 14); //length of ethernet header + + /* retireve the position of the udp header */ + u_int ip_len; + ip_len = (ih->ver_ihl & 0xf) * 4; + uh = (gr_udp_header *)((u_char *)ih + ip_len); + + /* convert from network byte order to host byte order */ + //u_short sport; + u_short dport; + dport = ntohs(uh->dport); + //sport = ntohs(uh->sport); + if (dport == d_udp_port) + { + // print ip addresses and udp ports + // printf("%d.%d.%d.%d.%d -> %d.%d.%d.%d.%d\n", + // ih->saddr.byte1, + // ih->saddr.byte2, + // ih->saddr.byte3, + // ih->saddr.byte4, + // sport, + // ih->daddr.byte1, + // ih->daddr.byte2, + // ih->daddr.byte3, + // ih->daddr.byte4, + // dport); + // std::cout<<"uh->len:"<len)<len) - 8; //total udp packet lenght minus the header lenght + //read the payload bytes and insert them into the shared circular buffer + u_char *udp_payload = ((u_char *)uh + sizeof(gr_udp_header)); + if (fifo_items <= (FIFO_SIZE - payload_lenght_bytes)) + { + int aligned_write_items = FIFO_SIZE - fifo_write_ptr; + if (aligned_write_items >= payload_lenght_bytes) + { + //write all in a single memcpy + memcpy(&fifo_buff[fifo_write_ptr], &udp_payload[0], payload_lenght_bytes); //size in bytes + fifo_write_ptr += payload_lenght_bytes; + if (fifo_write_ptr == FIFO_SIZE) fifo_write_ptr = 0; + fifo_items += payload_lenght_bytes; + } + else + { + //two step wrap write + memcpy(&fifo_buff[fifo_write_ptr], &udp_payload[0], aligned_write_items); //size in bytes + fifo_write_ptr = payload_lenght_bytes - aligned_write_items; + memcpy(&fifo_buff[0], &udp_payload[aligned_write_items], fifo_write_ptr); //size in bytes + fifo_items += payload_lenght_bytes; + } + } + else + { + //notify overflow + std::cout << "O" << std::flush; + } + } + } +} + +void gr_complex_ip_packet_source::my_pcap_loop_thread(pcap_t *pcap_handle) + +{ + pcap_loop(pcap_handle, -1, gr_complex_ip_packet_source::static_pcap_callback, (u_char *)this); +} + +void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items, int num_samples_readed) +{ + int8_t real; + int8_t imag; + uint8_t tmp_char2; + for (int n = 0; n < num_samples_readed; n++) + { + switch (d_wire_sample_type) + { + case 1: //interleaved byte samples + for (int i = 0; i < output_items.size(); i++) + { + real = fifo_buff[fifo_read_ptr++]; + imag = fifo_buff[fifo_read_ptr++]; + if (d_IQ_swap) + { + ((gr_complex *)output_items[i])[n] = gr_complex(real, imag); + } + else + { + ((gr_complex *)output_items[i])[n] = gr_complex(imag, real); + } + } + break; + case 2: // 4bits samples + for (int i = 0; i < output_items.size(); i++) + { + tmp_char2 = fifo_buff[fifo_read_ptr] & 0x0F; + if (tmp_char2 >= 8) + { + real = 2 * (tmp_char2 - 16) + 1; + } + else + { + real = 2 * tmp_char2 + 1; + } + tmp_char2 = fifo_buff[fifo_read_ptr++] >> 4; + tmp_char2 = tmp_char2 & 0x0F; + if (tmp_char2 >= 8) + { + imag = 2 * (tmp_char2 - 16) + 1; + } + else + { + imag = 2 * tmp_char2 + 1; + } + if (d_IQ_swap) + { + ((gr_complex *)output_items[i])[n] = gr_complex(imag, real); + } + else + { + ((gr_complex *)output_items[i])[n] = gr_complex(real, imag); + } + } + break; + default: + std::cout << "Unknown wire sample type\n"; + exit(0); + } + if (fifo_read_ptr == FIFO_SIZE) fifo_read_ptr = 0; + } +} + +int gr_complex_ip_packet_source::work(int noutput_items, + __attribute__((unused)) gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) +{ + // send samples to next GNU Radio block + boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function + if (fifo_items == 0) return 0; + + if (output_items.size() > d_n_baseband_channels) + { + std::cout << "Configuration error: more baseband channels connected than the available in the UDP source\n"; + exit(0); + } + int num_samples_readed; + int bytes_requested; + switch (d_wire_sample_type) + { + case 1: //complex byte samples + bytes_requested = noutput_items * d_bytes_per_sample; + if (bytes_requested < fifo_items) + { + num_samples_readed = noutput_items; //read all + } + else + { + num_samples_readed = fifo_items / d_bytes_per_sample; //read what we have + } + break; + case 2: //complex 4 bits samples + bytes_requested = noutput_items * d_bytes_per_sample; + if (bytes_requested < fifo_items) + { + num_samples_readed = noutput_items; //read all + } + else + { + num_samples_readed = fifo_items / d_bytes_per_sample; //read what we have + } + break; + default: //complex byte samples + bytes_requested = noutput_items * d_bytes_per_sample; + if (bytes_requested < fifo_items) + { + num_samples_readed = noutput_items; //read all + } + else + { + num_samples_readed = fifo_items / d_bytes_per_sample; //read what we have + } + } + + bytes_requested = num_samples_readed * d_bytes_per_sample; + //read all in a single loop + demux_samples(output_items, num_samples_readed); // it also increases the fifo read pointer + //update fifo items + fifo_items = fifo_items - bytes_requested; + + for (int n = 0; n < output_items.size(); n++) + { + produce(n, num_samples_readed); + } + return this->WORK_CALLED_PRODUCE; +} diff --git a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h new file mode 100644 index 000000000..7b8d9f58e --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h @@ -0,0 +1,117 @@ +/*! + * \file gr_complex_ip_packet_source.h + * + * \brief Receives ip frames containing samples in UDP frame encapsulation + * using a high performance packet capture library (libpcap) + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * GNSS-SDR is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GNSS-SDR is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNSS-SDR. If not, see . + * + * ------------------------------------------------------------------------- + */ + + +#ifndef INCLUDED_GR_COMPLEX_IP_PACKET_SOURCE_H +#define INCLUDED_GR_COMPLEX_IP_PACKET_SOURCE_H + +#include +#include +#include +#include +#include +#include +#include +#include + +class gr_complex_ip_packet_source : virtual public gr::sync_block +{ +private: + boost::mutex d_mutex; + pcap_t *descr; //ethernet pcap device descriptor + + char *fifo_buff; + + int fifo_read_ptr; + int fifo_write_ptr; + int fifo_items; + int d_sock_raw; + int d_udp_port; + struct sockaddr_in si_me; + std::string d_src_device; + std::string d_origin_address; + int d_udp_payload_size; + bool d_fifo_full; + + int d_n_baseband_channels; + int d_wire_sample_type; + int d_bytes_per_sample; + size_t d_item_size; + bool d_IQ_swap; + + boost::thread *d_pcap_thread; + /*! + * \brief + * Opens the ethernet device using libpcap raw capture mode + * If any of these fail, the fuction retuns the error and exits. + */ + bool open(); + + void demux_samples(gr_vector_void_star output_items, int num_samples_readed); + void my_pcap_loop_thread(pcap_t *pcap_handle); + + void pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet); + + static void static_pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet); + + +public: + typedef boost::shared_ptr sptr; + static sptr make(std::string src_device, + std::string origin_address, + int udp_port, + int udp_packet_size, + int n_baseband_channels, + std::string wire_sample_type, + size_t item_size, + bool IQ_swap_); + gr_complex_ip_packet_source(std::string src_device, + std::string origin_address, + int udp_port, + int udp_packet_size, + int n_baseband_channels, + std::string wire_sample_type, + size_t item_size, + bool IQ_swap_); + ~gr_complex_ip_packet_source(); + + // Where all the action really happens + int work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); + + //Called by gnuradio to enable drivers, etc for i/o devices. + bool start(); + //Called by gnuradio to disable drivers, etc for i/o devices. + bool stop(); +}; + +#endif /* INCLUDED_GR_COMPLEX_IP_PACKET_SOURCE_H */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc new file mode 100644 index 000000000..ba9f9365e --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc @@ -0,0 +1,86 @@ +/*! + * \file unpack_byte_4bit_samples.cc + * + * \brief Unpacks byte samples to 4 bits samples. + * Packing Order + * Packing order in Nibble I0 I1 I2 I3 I0 I1 I2 I3 + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2015 (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 "unpack_byte_4bit_samples.h" +#include + +unpack_byte_4bit_samples_sptr make_unpack_byte_4bit_samples() +{ + return unpack_byte_4bit_samples_sptr(new unpack_byte_4bit_samples()); +} + + +unpack_byte_4bit_samples::unpack_byte_4bit_samples() : sync_interpolator("unpack_byte_4bit_samples", + gr::io_signature::make(1, 1, sizeof(signed char)), + gr::io_signature::make(1, 1, sizeof(signed char)), + 2) +{ +} + + +unpack_byte_4bit_samples::~unpack_byte_4bit_samples() +{ +} + + +int unpack_byte_4bit_samples::work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) +{ + const signed char *in = reinterpret_cast(input_items[0]); + signed char *out = reinterpret_cast(output_items[0]); + int n = 0; + unsigned char tmp_char2; + for (int i = 0; i < noutput_items / 2; i++) + { + tmp_char2 = in[i] & 0x0F; + if (tmp_char2 >= 8) + { + out[n++] = 2 * (tmp_char2 - 16) + 1; + } + else + { + out[n++] = 2 * tmp_char2 + 1; + } + tmp_char2 = in[i] >> 4; + tmp_char2 = tmp_char2 & 0x0F; + if (tmp_char2 >= 8) + { + out[n++] = 2 * (tmp_char2 - 16) + 1; + } + else + { + out[n++] = 2 * tmp_char2 + 1; + } + } + return noutput_items; +} diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h new file mode 100644 index 000000000..ccfe699b5 --- /dev/null +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h @@ -0,0 +1,61 @@ +/*! + * \file unpack_byte_4bit_samples.h + * + * \brief Unpacks byte samples to 4 bits samples. + * Packing Order + * Packing order in Nibble I0 I1 I2 I3 I0 I1 I2 I3 + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2015 (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_unpack_byte_4bit_samples_H +#define GNSS_SDR_unpack_byte_4bit_samples_H + +#include + +class unpack_byte_4bit_samples; + +typedef boost::shared_ptr unpack_byte_4bit_samples_sptr; + +unpack_byte_4bit_samples_sptr make_unpack_byte_4bit_samples(); + +/*! + * \brief This class implements conversion between byte packet samples to 4bit_cpx samples + * 1 byte = 1 x complex 4bit I, + 4bit Q samples + */ +class unpack_byte_4bit_samples : public gr::sync_interpolator +{ +private: + friend unpack_byte_4bit_samples_sptr make_unpack_byte_4bit_samples_sptr(); + +public: + unpack_byte_4bit_samples(); + ~unpack_byte_4bit_samples(); + int work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); +}; + +#endif From dfeb62871f58db2147e51d403ed52a2fb1b70c9c Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Wed, 16 May 2018 11:36:37 +0200 Subject: [PATCH 072/108] Adding optional compilation of the custom UDP packet source. Disabled by default --- CMakeLists.txt | 40 +-- .../signal_source/adapters/CMakeLists.txt | 33 +- ..._source.cc => custom_udp_signal_source.cc} | 16 +- ...al_source.h => custom_udp_signal_source.h} | 14 +- .../gnuradio_blocks/CMakeLists.txt | 38 ++- .../gnuradio_blocks/raw_ip_packet_source.cc | 289 ------------------ .../gnuradio_blocks/raw_ip_packet_source.h | 99 ------ src/core/receiver/CMakeLists.txt | 3 + src/core/receiver/gnss_block_factory.cc | 16 +- 9 files changed, 105 insertions(+), 443 deletions(-) rename src/algorithms/signal_source/adapters/{udp_signal_source.cc => custom_udp_signal_source.cc} (90%) rename src/algorithms/signal_source/adapters/{udp_signal_source.h => custom_udp_signal_source.h} (89%) delete mode 100644 src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc delete mode 100644 src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c2fe13617..954690ffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ option(ENABLE_GN3S "Enable the use of the GN3S dongle as signal source (experime 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) +option(ENABLE_RAW_UDP "Enable the use of high-optimized custom UDP packet sample source, requires libpcap" OFF) # Performance analysis tools option(ENABLE_GPERFTOOLS "Enable linking to Gperftools libraries (tcmalloc and profiler)" OFF) @@ -1321,6 +1322,16 @@ else(ENABLE_CUDA) message(STATUS "Enable it with 'cmake -DENABLE_CUDA=ON ../' to add support for GPU-based acceleration using CUDA." ) endif(ENABLE_CUDA) +############################################################################### +# CUSTOM UDP PACKET SOURCE (OPTIONAL) +############################################################################### +if(ENABLE_RAW_UDP) + message(STATUS "High-optimized custom UDP ip packet source will be enabled." ) + message(STATUS "You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ../'" ) +else(ENABLE_RAW_UDP) + message(STATUS "High-optimized custom UDP ip packet source will be enabled." ) + message(STATUS "You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ../'" ) +endif(ENABLE_RAW_UDP) ############################################################################### @@ -1455,35 +1466,6 @@ if(ENABLE_GPROF) endif(ENABLE_GPROF) -# - Try to find libpcap include dirs and libraries -# -# Usage of this module as follows: -# -# find_package(PCAP) -# -# Variables used by this module, they can change the default behaviour and need -# to be set before calling find_package: -# -# PCAP_ROOT_DIR Set this variable to the root installation of -# libpcap if the module has problems finding the -# proper installation path. -# -# Variables defined by this module: -# -# PCAP_FOUND System has libpcap, include and library dirs found -# PCAP_INCLUDE_DIR The libpcap include directories. -# PCAP_LIBRARY The libpcap library (possibly includes a thread -# library e.g. required by pf_ring's libpcap) -# HAVE_PF_RING If a found version of libpcap supports PF_RING -find_package(PCAP) -if(NOT PCAP_FOUND) - message(FATAL_ERROR "PCAP required to compile dbfcttc") -endif() -get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) - - - - ######################################################################## # Set compiler flags ######################################################################## diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index c1fc65c56..a591836e2 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -21,6 +21,38 @@ list(SORT SIGNAL_SOURCE_ADAPTER_HEADERS) # Optional drivers +if(ENABLE_RAW_UDP) + # - Try to find libpcap include dirs and libraries + # + # Usage of this module as follows: + # + # find_package(PCAP) + # + # Variables used by this module, they can change the default behaviour and need + # to be set before calling find_package: + # + # PCAP_ROOT_DIR Set this variable to the root installation of + # libpcap if the module has problems finding the + # proper installation path. + # + # Variables defined by this module: + # + # PCAP_FOUND System has libpcap, include and library dirs found + # PCAP_INCLUDE_DIR The libpcap include directories. + # PCAP_LIBRARY The libpcap library (possibly includes a thread + # library e.g. required by pf_ring's libpcap) + # HAVE_PF_RING If a found version of libpcap supports PF_RING + find_package(PCAP) + if(NOT PCAP_FOUND) + message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (ENABLE_RAW_UDP)") + endif() + get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${PCAP_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${PCAP_INCLUDE_DIRS}) + set(OPT_DRIVER_SOURCES ${OPT_DRIVER_SOURCES} custom_udp_signal_source.cc) + +endif(ENABLE_RAW_UDP) + if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) find_package(iio REQUIRED) if(NOT IIO_FOUND) @@ -166,7 +198,6 @@ set(SIGNAL_SOURCE_ADAPTER_SOURCES file_signal_source.cc spir_gss6450_file_signal_source.cc rtl_tcp_signal_source.cc labsat_signal_source.cc - udp_signal_source.cc ${OPT_DRIVER_SOURCES} ) diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.cc b/src/algorithms/signal_source/adapters/custom_udp_signal_source.cc similarity index 90% rename from src/algorithms/signal_source/adapters/udp_signal_source.cc rename to src/algorithms/signal_source/adapters/custom_udp_signal_source.cc index 93af9dd4a..b754b5699 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/custom_udp_signal_source.cc @@ -30,7 +30,7 @@ */ -#include "udp_signal_source.h" +#include "custom_udp_signal_source.h" #include "configuration_interface.h" #include "GPS_L1_CA.h" #include @@ -41,7 +41,7 @@ using google::LogMessage; -UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, +CustomUDPSignalSource::CustomUDPSignalSource(ConfigurationInterface* configuration, std::string role, unsigned int in_stream, unsigned int out_stream, boost::shared_ptr queue) : role_(role), in_stream_(in_stream), out_stream_(out_stream), queue_(queue) { @@ -107,12 +107,12 @@ UDPSignalSource::UDPSignalSource(ConfigurationInterface* configuration, } -UDPSignalSource::~UDPSignalSource() +CustomUDPSignalSource::~CustomUDPSignalSource() { } -void UDPSignalSource::connect(gr::top_block_sptr top_block) +void CustomUDPSignalSource::connect(gr::top_block_sptr top_block) { //connect null sinks to unused streams for (int n = 0; n < channels_in_udp_; n++) @@ -132,7 +132,7 @@ void UDPSignalSource::connect(gr::top_block_sptr top_block) } -void UDPSignalSource::disconnect(gr::top_block_sptr top_block) +void CustomUDPSignalSource::disconnect(gr::top_block_sptr top_block) { //disconnect null sinks to unused streams for (int n = 0; n < channels_in_udp_; n++) @@ -151,19 +151,19 @@ void UDPSignalSource::disconnect(gr::top_block_sptr top_block) } -gr::basic_block_sptr UDPSignalSource::get_left_block() +gr::basic_block_sptr CustomUDPSignalSource::get_left_block() { LOG(WARNING) << "Left block of a signal source should not be retrieved"; return gr::block_sptr(); } -gr::basic_block_sptr UDPSignalSource::get_right_block() +gr::basic_block_sptr CustomUDPSignalSource::get_right_block() { return udp_gnss_rx_source_; } -gr::basic_block_sptr UDPSignalSource::get_right_block(int RF_channel) +gr::basic_block_sptr CustomUDPSignalSource::get_right_block(__attribute__((unused)) int RF_channel) { return udp_gnss_rx_source_; } diff --git a/src/algorithms/signal_source/adapters/udp_signal_source.h b/src/algorithms/signal_source/adapters/custom_udp_signal_source.h similarity index 89% rename from src/algorithms/signal_source/adapters/udp_signal_source.h rename to src/algorithms/signal_source/adapters/custom_udp_signal_source.h index 3fc91b023..9bed9ae32 100644 --- a/src/algorithms/signal_source/adapters/udp_signal_source.h +++ b/src/algorithms/signal_source/adapters/custom_udp_signal_source.h @@ -30,8 +30,8 @@ */ -#ifndef GNSS_SDR_UDP_SIGNAL_SOURCE_H -#define GNSS_SDR_UDP_SIGNAL_SOURCE_H +#ifndef GNSS_SDR_CUSTOM_UDP_SIGNAL_SOURCE_H +#define GNSS_SDR_CUSTOM_UDP_SIGNAL_SOURCE_H #include "gnss_block_interface.h" #include "gr_complex_ip_packet_source.h" @@ -50,14 +50,14 @@ class ConfigurationInterface; * \brief This class reads from UDP packets, which streams interleaved * I/Q samples over a network. */ -class UDPSignalSource : public GNSSBlockInterface +class CustomUDPSignalSource : public GNSSBlockInterface { public: - UDPSignalSource(ConfigurationInterface* configuration, + CustomUDPSignalSource(ConfigurationInterface* configuration, std::string role, unsigned int in_stream, unsigned int out_stream, boost::shared_ptr queue); - virtual ~UDPSignalSource(); + virtual ~CustomUDPSignalSource(); inline std::string role() override { @@ -69,7 +69,7 @@ public: */ inline std::string implementation() override { - return "UDP_Signal_Source"; + return "Custom_UDP_Signal_Source"; } inline size_t item_size() override @@ -102,4 +102,4 @@ private: boost::shared_ptr queue_; }; -#endif /*GNSS_SDR_UDP_SIGNAL_SOURCE_H */ +#endif /*GNSS_SDR_CUSTOM_UDP_SIGNAL_SOURCE_H */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt index dd2101462..b35caa37d 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt @@ -17,6 +17,38 @@ # +if(ENABLE_RAW_UDP) + # - Try to find libpcap include dirs and libraries + # + # Usage of this module as follows: + # + # find_package(PCAP) + # + # Variables used by this module, they can change the default behaviour and need + # to be set before calling find_package: + # + # PCAP_ROOT_DIR Set this variable to the root installation of + # libpcap if the module has problems finding the + # proper installation path. + # + # Variables defined by this module: + # + # PCAP_FOUND System has libpcap, include and library dirs found + # PCAP_INCLUDE_DIR The libpcap include directories. + # PCAP_LIBRARY The libpcap library (possibly includes a thread + # library e.g. required by pf_ring's libpcap) + # HAVE_PF_RING If a found version of libpcap supports PF_RING + find_package(PCAP) + if(NOT PCAP_FOUND) + message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (ENABLE_RAW_UDP)") + endif() + get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) + set(OPT_LIBRARIES ${OPT_LIBRARIES} ${PCAP_LIBRARIES}) + set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${PCAP_INCLUDE_DIRS}) + set(OPT_DRIVER_SOURCES ${OPT_DRIVER_SOURCES} gr_complex_ip_packet_source.cc) + +endif(ENABLE_RAW_UDP) + set(SIGNAL_SOURCE_GR_BLOCKS_SOURCES unpack_byte_2bit_samples.cc unpack_byte_2bit_cpx_samples.cc @@ -26,8 +58,7 @@ set(SIGNAL_SOURCE_GR_BLOCKS_SOURCES unpack_2bit_samples.cc unpack_spir_gss6450_samples.cc labsat23_source.cc - raw_ip_packet_source.cc - gr_complex_ip_packet_source.cc + ${OPT_DRIVER_SOURCES} ) include_directories( @@ -37,6 +68,7 @@ include_directories( ${GFlags_INCLUDE_DIRS} ${GNURADIO_RUNTIME_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} + ${OPT_DRIVER_INCLUDE_DIRS} ) file(GLOB SIGNAL_SOURCE_GR_BLOCKS_HEADERS "*.h") @@ -47,6 +79,6 @@ target_link_libraries(signal_source_gr_blocks signal_source_lib ${GNURADIO_RUNTIME_LIBRARIES} ${Boost_LIBRARIES} - ${PCAP_LIBRARIES} + ${OPT_LIBRARIES} ) add_dependencies(signal_source_gr_blocks glog-${glog_RELEASE}) diff --git a/src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc b/src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc deleted file mode 100644 index 5ec4c4a2c..000000000 --- a/src/algorithms/signal_source/gnuradio_blocks/raw_ip_packet_source.cc +++ /dev/null @@ -1,289 +0,0 @@ -/*! - * \file raw_ip_packet_source.cc - * - * \brief Receives ip frames containing samples in UDP frame encapsulation - * using a high performance packet capture library (libpcap) - * \author Javier Arribas jarribas (at) cttc.es - * ------------------------------------------------------------------------- - * - * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) - * - * GNSS-SDR is a software defined Global Navigation - * Satellite Systems receiver - * - * This file is part of GNSS-SDR. - * - * GNSS-SDR is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GNSS-SDR is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . - * - * ------------------------------------------------------------------------- - */ - - -#include -#include "raw_ip_packet_source.h" - -#include -#include - - -#define FIFO_SIZE 1000000 - - -/* 4 bytes IP address */ -typedef struct gr_ip_address{ - u_char byte1; - u_char byte2; - u_char byte3; - u_char byte4; -}gr_ip_address; - -/* IPv4 header */ -typedef struct gr_ip_header{ - u_char ver_ihl; // Version (4 bits) + Internet header length (4 bits) - u_char tos; // Type of service - u_short tlen; // Total length - u_short identification; // Identification - u_short flags_fo; // Flags (3 bits) + Fragment offset (13 bits) - u_char ttl; // Time to live - u_char proto; // Protocol - u_short crc; // Header checksum - gr_ip_address saddr; // Source address - gr_ip_address daddr; // Destination address - u_int op_pad; // Option + Padding -}gr_ip_header; - -/* UDP header*/ -typedef struct gr_udp_header{ - u_short sport; // Source port - u_short dport; // Destination port - u_short len; // Datagram length - u_short crc; // Checksum -}gr_udp_header; - -raw_ip_packet_source::sptr -raw_ip_packet_source::make(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size) -{ - return gnuradio::get_initial_sptr - (new raw_ip_packet_source(src_device, origin_address, udp_port, udp_packet_size)); -} - -/* - * The private constructor - */ -raw_ip_packet_source::raw_ip_packet_source(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size) -: gr::sync_block("raw_ip_packet_source", - gr::io_signature::make(0, 0, 0), - gr::io_signature::make(1, 1, sizeof(char))) -{ - - // constructor code here - std::cout<<"Start Ethernet packet capture\n"; - - d_src_device=src_device; - d_udp_port=udp_port; - d_udp_payload_size=udp_packet_size; - d_fifo_full=false; - d_last_frame_counter=0; - d_num_rx_errors=0; - - //allocate signal samples buffer - fifo_buff=new char[FIFO_SIZE]; - fifo_read_ptr=0; - fifo_write_ptr=0; - fifo_items=0; - - //open the ethernet device - if (open()==true) - { - // start pcap capture thread - d_pcap_thread=new boost::thread(boost::bind(&raw_ip_packet_source::my_pcap_loop_thread,this,descr)); - }else{ - exit(1); //ethernet error! - } -} - -bool raw_ip_packet_source::open() -{ - char errbuf[PCAP_ERRBUF_SIZE]; - boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function - /* open device for reading */ - descr = pcap_open_live(d_src_device.c_str(),1500,1,1000,errbuf); - if(descr == NULL) - { - std::cout<<"Error openning Ethernet device "<join(); - pcap_close(descr); - } - - delete fifo_buff; - std::cout<<"Stop Ethernet packet capture\n"; - -} - -void raw_ip_packet_source::static_pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, - const u_char* packet) -{ - raw_ip_packet_source *bridge=(raw_ip_packet_source*) args; - bridge->pcap_callback(args, pkthdr, packet); -} - -void raw_ip_packet_source::pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, - const u_char* packet) -{ - boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function - - gr_ip_header *ih; - gr_udp_header *uh; - - // eth frame parameters - // **** UDP RAW PACKET DECODER **** - if ((packet[12]==0x08) & (packet[13]==0x00)) //IP FRAME - { - - /* retireve the position of the ip header */ - ih = (gr_ip_header *) (packet + - 14); //length of ethernet header - - /* retireve the position of the udp header */ - u_int ip_len; - ip_len = (ih->ver_ihl & 0xf) * 4; - uh = (gr_udp_header *) ((u_char*)ih + ip_len); - - /* convert from network byte order to host byte order */ - u_short sport,dport; - dport = ntohs( uh->dport ); - sport = ntohs( uh->sport ); - if (dport==d_udp_port) - { - // print ip addresses and udp ports -// printf("%d.%d.%d.%d.%d -> %d.%d.%d.%d.%d\n", -// ih->saddr.byte1, -// ih->saddr.byte2, -// ih->saddr.byte3, -// ih->saddr.byte4, -// sport, -// ih->daddr.byte1, -// ih->daddr.byte2, -// ih->daddr.byte3, -// ih->daddr.byte4, -// dport); -// std::cout<<"d_udp_port:"<=d_udp_payload_size) - { - //write all in a single memcpy - memcpy(&fifo_buff[fifo_write_ptr],&udp_payload[0],d_udp_payload_size); //size in bytes - fifo_write_ptr+=d_udp_payload_size; - if (fifo_write_ptr==FIFO_SIZE) fifo_write_ptr=0; - fifo_items+=d_udp_payload_size; - }else{ - //two step wrap write - memcpy(&fifo_buff[fifo_write_ptr],&udp_payload[0],aligned_write_items); //size in bytes - fifo_write_ptr=d_udp_payload_size-aligned_write_items; - memcpy(&fifo_buff[0],&udp_payload[aligned_write_items],fifo_write_ptr); //size in bytes - fifo_items+=d_udp_payload_size; - } - }else{ - std::cout<<"Ou"<=num_samples_readed) - { - //read all in a single memcpy - memcpy(&((char*)output_items[0])[0],&fifo_buff[fifo_read_ptr],num_samples_readed); - fifo_read_ptr=fifo_read_ptr+num_samples_readed; //increase the fifo pointer - if (fifo_read_ptr==FIFO_SIZE) fifo_read_ptr=0; - }else{ - //two step wrap read - memcpy(&((char*)output_items[0])[0],&fifo_buff[fifo_read_ptr],aligned_read_items); - fifo_read_ptr=num_samples_readed-aligned_read_items;//increase the fifo pointer considering the rollover - memcpy(&((char*)output_items[0])[aligned_read_items],&fifo_buff[0],fifo_read_ptr); - } - - fifo_items=fifo_items-num_samples_readed; - - // Tell runtime system how many output items we produced. - //std::cout<<"fifo_items:"<. - * - * ------------------------------------------------------------------------- - */ - - -#ifndef INCLUDED_RAW_IP_PACKET_SOURCE_H -#define INCLUDED_RAW_IP_PACKET_SOURCE_H - -#include -#include -#include -#include -#include -#include -#include -#include - -class raw_ip_packet_source : virtual public gr::sync_block -{ -private: - boost::mutex d_mutex; - - pcap_t* descr; //ethernet pcap device descriptor - int fifo_pipe[2]; - - char *fifo_buff; - - int fifo_read_ptr; - int fifo_write_ptr; - int fifo_items; - int d_sock_raw; - int d_udp_port; - struct sockaddr_in si_me; - std::string d_src_device; - std::string d_origin_address; - int d_udp_payload_size; - bool d_fifo_full; - - int d_last_frame_counter; - int d_num_rx_errors; - - - boost::thread *d_pcap_thread; - /*! - * \brief - * Opens the ethernet device using libpcap raw capture mode - * If any of these fail, the fuction retuns the error and exits. - */ - bool open(); - - void my_pcap_loop_thread(pcap_t *pcap_handle); - - void pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* packet); - - static void static_pcap_callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* packet); - - -public: - - typedef boost::shared_ptr sptr; - static sptr make(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size); - raw_ip_packet_source(std::string src_device, std::string origin_address, int udp_port, int udp_packet_size); - ~raw_ip_packet_source(); - - // Where all the action really happens - int work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items); -}; - -#endif /* INCLUDED_RAW_IP_PACKET_SOURCE_H */ - diff --git a/src/core/receiver/CMakeLists.txt b/src/core/receiver/CMakeLists.txt index 09b24de96..7be920a47 100644 --- a/src/core/receiver/CMakeLists.txt +++ b/src/core/receiver/CMakeLists.txt @@ -40,6 +40,9 @@ if(ENABLE_FPGA) add_definitions(-DENABLE_FPGA=1) endif(ENABLE_FPGA) +if(ENABLE_RAW_UDP) + add_definitions(-DRAW_UDP=1) +endif(ENABLE_RAW_UDP) if(Boost_VERSION LESS 105000) add_definitions(-DOLD_BOOST=1) diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 0b7ffb678..237f2df40 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -35,6 +35,7 @@ #include "gnss_block_factory.h" + #include "configuration_interface.h" #include "in_memory_configuration.h" #include "gnss_block_interface.h" @@ -45,7 +46,6 @@ #include "spir_file_signal_source.h" #include "spir_gss6450_file_signal_source.h" #include "rtl_tcp_signal_source.h" -#include "udp_signal_source.h" #include "two_bit_packed_file_signal_source.h" #include "labsat_signal_source.h" #include "channel.h" @@ -104,6 +104,10 @@ #include "hybrid_observables.h" #include "rtklib_pvt.h" +#if RAW_UDP +#include "custom_udp_signal_source.h" +#endif + #if ENABLE_FPGA #include "gps_l1_ca_pcps_acquisition_fpga.h" #include "gps_l1_ca_dll_pll_tracking_fpga.h" @@ -159,11 +163,7 @@ using google::LogMessage; GNSSBlockFactory::GNSSBlockFactory() {} - - GNSSBlockFactory::~GNSSBlockFactory() {} - - std::unique_ptr GNSSBlockFactory::GetSignalSource( std::shared_ptr configuration, gr::msg_queue::sptr queue, int ID) { @@ -1053,11 +1053,12 @@ std::unique_ptr GNSSBlockFactory::GetBlock( exit(1); } } - else if (implementation.compare("UDP_Signal_Source") == 0) +#if RAW_UDP + else if (implementation.compare("Custom_UDP_Signal_Source") == 0) { try { - std::unique_ptr block_(new UDPSignalSource(configuration.get(), role, in_streams, + std::unique_ptr block_(new CustomUDPSignalSource(configuration.get(), role, in_streams, out_streams, queue)); block = std::move(block_); } @@ -1068,6 +1069,7 @@ std::unique_ptr GNSSBlockFactory::GetBlock( exit(1); } } +#endif else if (implementation.compare("Nsr_File_Signal_Source") == 0) { try From 5956b710b92bb5f7ac7d85f2e03fc78a8519554e Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Wed, 16 May 2018 15:38:35 +0200 Subject: [PATCH 073/108] Updating configuration example for Custom UDP packet signal source --- conf/gnss-sdr_GPS_L1_2ch_udp.conf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/conf/gnss-sdr_GPS_L1_2ch_udp.conf b/conf/gnss-sdr_GPS_L1_2ch_udp.conf index d63eac95d..6dd703fa6 100644 --- a/conf/gnss-sdr_GPS_L1_2ch_udp.conf +++ b/conf/gnss-sdr_GPS_L1_2ch_udp.conf @@ -12,9 +12,7 @@ GNSS-SDR.internal_fs_sps=13250000 ;//66.25/5 ;GNSS-SDR.internal_fs_sps=2650000 ;//66.25/25 ;######### SIGNAL_SOURCE CONFIG ############ -SignalSource.implementation=UDP_Signal_Source -;SignalSource.implementation=File_Signal_Source -;SignalSource.filename=/home/javier/gnss/gnss-simulator/build/signal_out.bin ; <- PUT YOUR FILE HERE +SignalSource.implementation=Custom_UDP_Signal_Source SignalSource.item_type=gr_complex SignalSource.origin_address=0.0.0.0 SignalSource.capture_device=eth0 From 1195234df15525c770f2bdb4d595e8edc8df1e72 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 18:32:27 +0200 Subject: [PATCH 074/108] Fix warnings raised by GCC 8.1.1 --- src/algorithms/PVT/libs/rtklib_solver.cc | 4 +- src/algorithms/libs/rtklib/rtklib_pntpos.cc | 10 +-- src/algorithms/libs/rtklib/rtklib_rtkcmn.cc | 28 ++++++-- src/algorithms/libs/rtklib/rtklib_stream.cc | 71 +++++++++++++++++---- 4 files changed, 86 insertions(+), 27 deletions(-) diff --git a/src/algorithms/PVT/libs/rtklib_solver.cc b/src/algorithms/PVT/libs/rtklib_solver.cc index 8d74aea20..a0650d768 100644 --- a/src/algorithms/PVT/libs/rtklib_solver.cc +++ b/src/algorithms/PVT/libs/rtklib_solver.cc @@ -463,14 +463,14 @@ bool rtklib_solver::get_PVT(const std::map& gnss_observables_ unsigned int used_sats = 0; for (unsigned int i = 0; i < MAXSAT; i++) { - if (int vsat = rtk_.ssat[i].vsat[0] == 1) used_sats++; + if (rtk_.ssat[i].vsat[0] == 1) used_sats++; } double azel[used_sats * 2]; unsigned int index_aux = 0; for (unsigned int i = 0; i < MAXSAT; i++) { - if (int vsat = rtk_.ssat[i].vsat[0] == 1) + if (rtk_.ssat[i].vsat[0] == 1) { azel[2 * index_aux] = rtk_.ssat[i].azel[0]; azel[2 * index_aux + 1] = rtk_.ssat[i].azel[1]; diff --git a/src/algorithms/libs/rtklib/rtklib_pntpos.cc b/src/algorithms/libs/rtklib/rtklib_pntpos.cc index 31b60c8e6..d4a10fe65 100644 --- a/src/algorithms/libs/rtklib/rtklib_pntpos.cc +++ b/src/algorithms/libs/rtklib/rtklib_pntpos.cc @@ -130,11 +130,11 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel, double P1_P2 = 0.0; double P1_C1 = 0.0; double P2_C2 = 0.0; - //Intersignal corrections (m). See GPS IS-200 CNAV message - double ISCl1 = 0.0; + // Intersignal corrections (m). See GPS IS-200 CNAV message + //double ISCl1 = 0.0; double ISCl2 = 0.0; double ISCl5i = 0.0; - double ISCl5q = 0.0; + //double ISCl5q = 0.0; double gamma_ = 0.0; int i = 0; int j = 1; @@ -209,10 +209,10 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel, if (sys == SYS_GPS) { - ISCl1 = getiscl1(obs->sat, nav); + // ISCl1 = getiscl1(obs->sat, nav); ISCl2 = getiscl2(obs->sat, nav); ISCl5i = getiscl5i(obs->sat, nav); - ISCl5q = getiscl5q(obs->sat, nav); + // ISCl5q = getiscl5q(obs->sat, nav); } //CHECK IF IT IS STILL NEEDED diff --git a/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc b/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc index 20f939dd4..88cc2ca38 100644 --- a/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc +++ b/src/algorithms/libs/rtklib/rtklib_rtkcmn.cc @@ -54,6 +54,8 @@ //#include #include #include +#include +#include #include #include #include @@ -253,11 +255,12 @@ const unsigned int tbl_CRC24Q[] = { 0x42FA2F, 0xC4B6D4, 0xC82F22, 0x4E63D9, 0xD11CCE, 0x575035, 0x5BC9C3, 0xDD8538}; -extern "C" { -void dgemm_(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *); -extern void dgetrf_(int *, int *, double *, int *, int *, int *); -extern void dgetri_(int *, double *, int *, int *, double *, int *, int *); -extern void dgetrs_(char *, int *, int *, double *, int *, int *, double *, int *, int *); +extern "C" +{ + void dgemm_(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *); + extern void dgetrf_(int *, int *, double *, int *, int *, int *); + extern void dgetri_(int *, double *, int *, int *, double *, int *, int *); + extern void dgetrs_(char *, int *, int *, double *, int *, int *, double *, int *, int *); } @@ -2562,7 +2565,8 @@ void readpos(const char *file, const char *rcv, double *pos) if (buff[0] == '%' || buff[0] == '#') continue; if (sscanf(buff, "%lf %lf %lf %s", &poss[np][0], &poss[np][1], &poss[np][2], str) < 4) continue; - strncpy(stas[np], str, 15); + // strncpy(stas[np], str, 15); This line triggers a warning. Replaced by: + memcpy(stas[np], str, 15 * sizeof(stas[np][0])); stas[np++][15] = '\0'; } fclose(fp); @@ -4264,7 +4268,17 @@ int rtk_uncompress(const char *file, char *uncfile) dir = fname; fname = p + 1; } - sprintf(cmd, "tar -C \"%s\" -xf \"%s\"", dir, tmpfile); + // sprintf(cmd, "tar -C \"%s\" -xf \"%s\"", dir, tmpfile); + // NOTE: This sprintf triggers a format overflow warning. Replaced by: + std::ostringstream temp; + std::string s_aux1(dir); + std::string s_aux2(tmpfile); + temp << "tar -C " << s_aux1 << " -xf " << s_aux2; + std::string s_aux = temp.str(); + int n = s_aux.length(); + if (n < 2048) + for (int i = 0; i < n; i++) cmd[i] = s_aux[i]; + if (execcmd(cmd)) { if (stat) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index 6dafde2ac..3de693e65 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -64,6 +64,7 @@ #include #include #include +#include /* global options ------------------------------------------------------------*/ @@ -115,7 +116,12 @@ serial_t *openserial(const char *path, int mode, char *msg) } parity = (char)toupper((int)parity); - sprintf(dev, "/dev/%s", port); + // sprintf(dev, "/dev/%s", port); This line triggers a warning. Replaced by: + std::string s_aux = "/dev/" + std::string(port); + s_aux.resize(128, '\0'); + int n = s_aux.length(); + if (n < 128) + for (int i = 0; i < n; i++) dev[i] = s_aux[i]; if ((mode & STR_MODE_R) && (mode & STR_MODE_W)) rw = O_RDWR; @@ -1224,7 +1230,11 @@ int rspntrip_s(ntrip_t *ntrip, char *msg) else if ((p = strstr((char *)ntrip->buff, NTRIP_RSP_ERROR))) { /* error */ nb = ntrip->nb < MAXSTATMSG ? ntrip->nb : MAXSTATMSG; - strncpy(msg, (char *)ntrip->buff, nb); + // strncpy(msg, (char *)ntrip->buff, nb); This line triggers a warning. Replaced by; + std::string s_aux((char *)ntrip->buff); + s_aux.resize(nb, '\0'); + for (int i = 0; i < nb; i++) msg[i] = s_aux[i]; + msg[nb] = 0; tracet(1, "rspntrip_s: %s nb=%d\n", msg, ntrip->nb); ntrip->nb = 0; @@ -1380,7 +1390,11 @@ ntrip_t *openntrip(const char *path, int type, char *msg) /* ntrip access via proxy server */ if (*proxyaddr) { - sprintf(ntrip->url, "http://%s", tpath); + // sprintf(ntrip->url, "http://%s", tpath); This line triggers a warning. Replaced by: + std::string s_aux = "http://" + std::string(tpath); + int n = s_aux.length(); + if (n < 256) + for (int k = 0; k < n; k++) ntrip->url[k] = s_aux[k]; strcpy(tpath, proxyaddr); } /* open tcp client stream */ @@ -1545,8 +1559,17 @@ void *ftpthread(void *arg) p++; else p = remote; - sprintf(local, "%s%c%s", localdir, FILEPATHSEP, p); - sprintf(errfile, "%s.err", local); + // sprintf(local, "%s%c%s", localdir, FILEPATHSEP, p); This line triggers a warning. Replaced by: + std::string s_aux = std::string(localdir) + std::to_string(FILEPATHSEP) + std::string(p); + int n = s_aux.length(); + if (n < 1024) + for (int i = 0; i < n; i++) local[i] = s_aux[i]; + + // sprintf(errfile, "%s.err", local); This line triggers a warning. Replaced by: + std::string s_aux2 = std::string(local) + ".err"; + n = s_aux2.length(); + if (n < 1024) + for (int i = 0; i < n; i++) errfile[i] = s_aux2[i]; /* if local file exist, skip download */ strcpy(tmpfile, local); @@ -1574,16 +1597,35 @@ void *ftpthread(void *arg) /* download command (ref [2]) */ if (ftp->proto == 0) { /* ftp */ - sprintf(opt, "--ftp-user=%s --ftp-password=%s --glob=off --passive-ftp %s-t 1 -T %d -O \"%s\"", - ftp->user, ftp->passwd, proxyopt, FTP_TIMEOUT, local); - sprintf(cmd, "%s%s %s \"ftp://%s/%s\" 2> \"%s\"\n", env, FTP_CMD, opt, ftp->addr, - remote, errfile); + // sprintf(opt, "--ftp-user=%s --ftp-password=%s --glob=off --passive-ftp %s-t 1 -T %d -O \"%s\"", + // ftp->user, ftp->passwd, proxyopt, FTP_TIMEOUT, local); This line triggers a warning. Replaced by: + std::string s_aux = "--ftp-user=" + std::string(ftp->user) + " --ftp-password=" + std::string(ftp->passwd) + + " --glob=off --passive-ftp " + std::string(proxyopt) + "s-t 1 -T " + std::to_string(FTP_TIMEOUT) + + " -O \"" + std::string(local) + "\""; + int k = s_aux.length(); + if (k < 2048) + for (int i = 0; i < k; i++) opt[i] = s_aux[i]; + + // sprintf(cmd, "%s%s %s \"ftp://%s/%s\" 2> \"%s\"\n", env, FTP_CMD, opt, ftp->addr, + // remote, errfile); This line triggers a warning. Replaced by: + std::string s_aux2 = std::string(env) + std::string(FTP_CMD) + " " + std::string(opt) + " " + + "\"ftp://" + std::string(ftp->addr) + "/" + std::string(remote) + "\" 2> \"" + std::string(errfile) + "\"\n"; + k = s_aux2.length(); + for (int i = 0; (i < k) && (i < 1024); i++) cmd[i] = s_aux2[i]; } else { /* http */ - sprintf(opt, "%s-t 1 -T %d -O \"%s\"", proxyopt, FTP_TIMEOUT, local); - sprintf(cmd, "%s%s %s \"http://%s/%s\" 2> \"%s\"\n", env, FTP_CMD, opt, ftp->addr, - remote, errfile); + // sprintf(opt, "%s-t 1 -T %d -O \"%s\"", proxyopt, FTP_TIMEOUT, local); This line triggers a warning. Replaced by: + std::string s_aux = std::string(proxyopt) + " -t 1 -T " + std::to_string(FTP_TIMEOUT) + " -O \"" + std::string(local) + "\""; + int l = s_aux.length(); + for (int i = 0; (i < l) && (i < 1024); i++) opt[i] = s_aux[i]; + + // sprintf(cmd, "%s%s %s \"http://%s/%s\" 2> \"%s\"\n", env, FTP_CMD, opt, ftp->addr, + // remote, errfile); This line triggers a warning. Replaced by: + std::string s_aux2 = std::string(env) + std::string(FTP_CMD) + " " + std::string(opt) + " " + + "\"http://" + std::string(ftp->addr) + "/" + std::string(remote) + "\" 2> \"" + std::string(errfile) + "\"\n"; + l = s_aux2.length(); + for (int i = 0; (i < l) && (i < 1024); i++) cmd[i] = s_aux2[i]; } /* execute download command */ if ((ret = execcmd(cmd))) @@ -2049,7 +2091,10 @@ int strstat(stream_t *stream, char *msg) strlock(stream); if (msg) { - strncpy(msg, stream->msg, MAXSTRMSG - 1); + // strncpy(msg, stream->msg, MAXSTRMSG - 1); This line triggers a warning. Replaced by: + std::string aux_s(stream->msg); + aux_s.resize(MAXSTRMSG - 1, '0'); + for (int i = 0; i < MAXSTRMSG - 1; i++) msg[i] = aux_s[i]; msg[MAXSTRMSG - 1] = '\0'; } if (!stream->port) From 87fb81b9725bbce8bec985ca34447686885d7963 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 20:00:14 +0200 Subject: [PATCH 075/108] Use https instead of http in links when available. Minor fixes --- cmake/Modules/FindPCAP.cmake | 5 +- .../signal_source/adapters/CMakeLists.txt | 50 +++++++++--------- .../adapters/custom_udp_signal_source.cc | 14 +++-- .../adapters/custom_udp_signal_source.h | 2 +- .../gnuradio_blocks/CMakeLists.txt | 51 +++++++++---------- .../gr_complex_ip_packet_source.cc | 7 ++- .../gr_complex_ip_packet_source.h | 10 ++-- .../unpack_byte_4bit_samples.cc | 4 +- .../unpack_byte_4bit_samples.h | 4 +- 9 files changed, 70 insertions(+), 77 deletions(-) diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake index 7e0ea6995..3be89420e 100644 --- a/cmake/Modules/FindPCAP.cmake +++ b/cmake/Modules/FindPCAP.cmake @@ -1,4 +1,3 @@ - ################################################################### # # Copyright (c) 2006 Frederic Heem, @@ -112,11 +111,11 @@ CHECK_FUNCTION_EXISTS("pcap_set_datalink" HAVE_PCAP_SET_DATALINK) #Is pcap found ? IF(PCAP_INCLUDE_DIRS AND PCAP_LIBRARIES) - SET( PCAP_FOUND "YES" ) + SET( PCAP_FOUND true ) ENDIF(PCAP_INCLUDE_DIRS AND PCAP_LIBRARIES) MARK_AS_ADVANCED( PCAP_LIBRARIES PCAP_INCLUDE_DIRS -) \ No newline at end of file +) diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index a591836e2..120fff27b 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -22,31 +22,31 @@ list(SORT SIGNAL_SOURCE_ADAPTER_HEADERS) # Optional drivers if(ENABLE_RAW_UDP) - # - Try to find libpcap include dirs and libraries - # - # Usage of this module as follows: - # - # find_package(PCAP) - # - # Variables used by this module, they can change the default behaviour and need - # to be set before calling find_package: - # - # PCAP_ROOT_DIR Set this variable to the root installation of - # libpcap if the module has problems finding the - # proper installation path. - # - # Variables defined by this module: - # - # PCAP_FOUND System has libpcap, include and library dirs found - # PCAP_INCLUDE_DIR The libpcap include directories. - # PCAP_LIBRARY The libpcap library (possibly includes a thread - # library e.g. required by pf_ring's libpcap) - # HAVE_PF_RING If a found version of libpcap supports PF_RING - find_package(PCAP) - if(NOT PCAP_FOUND) - message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (ENABLE_RAW_UDP)") - endif() - get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) + # - Try to find libpcap include dirs and libraries + # + # Usage of this module as follows: + # + # find_package(PCAP) + # + # Variables used by this module, they can change the default behaviour and need + # to be set before calling find_package: + # + # PCAP_ROOT_DIR Set this variable to the root installation of + # libpcap if the module has problems finding the + # proper installation path. + # + # Variables defined by this module: + # + # PCAP_FOUND System has libpcap, include and library dirs found + # PCAP_INCLUDE_DIR The libpcap include directories. + # PCAP_LIBRARY The libpcap library (possibly includes a thread + # library e.g. required by pf_ring's libpcap) + # HAVE_PF_RING If a found version of libpcap supports PF_RING + find_package(PCAP) + if(NOT PCAP_FOUND) + message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (ENABLE_RAW_UDP)") + endif() + get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${PCAP_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${PCAP_INCLUDE_DIRS}) set(OPT_DRIVER_SOURCES ${OPT_DRIVER_SOURCES} custom_udp_signal_source.cc) diff --git a/src/algorithms/signal_source/adapters/custom_udp_signal_source.cc b/src/algorithms/signal_source/adapters/custom_udp_signal_source.cc index b754b5699..2ed2dd5ae 100644 --- a/src/algorithms/signal_source/adapters/custom_udp_signal_source.cc +++ b/src/algorithms/signal_source/adapters/custom_udp_signal_source.cc @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ @@ -50,8 +50,7 @@ CustomUDPSignalSource::CustomUDPSignalSource(ConfigurationInterface* configurati std::string default_dump_file = "./data/signal_source.dat"; std::string default_item_type = "gr_complex"; dump_ = configuration->property(role + ".dump", false); - dump_filename_ = configuration->property(role + ".dump_filename", - default_dump_file); + dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); // network PARAMETERS std::string default_capture_device = "eth0"; @@ -62,7 +61,6 @@ CustomUDPSignalSource::CustomUDPSignalSource(ConfigurationInterface* configurati int port = configuration->property(role + ".port", default_port); int payload_bytes = configuration->property(role + ".payload_bytes", 1024); - RF_channels_ = configuration->property(role + ".RF_channels", 1); channels_in_udp_ = configuration->property(role + ".channels_in_udp", 1); IQ_swap_ = configuration->property(role + ".IQ_swap", false); @@ -70,7 +68,7 @@ CustomUDPSignalSource::CustomUDPSignalSource(ConfigurationInterface* configurati std::string default_sample_type = "cbyte"; std::string sample_type = configuration->property(role + ".sample_type", default_sample_type); item_type_ = configuration->property(role + ".item_type", default_item_type); - //output item size is always gr_complex + // output item size is always gr_complex item_size_ = sizeof(gr_complex); udp_gnss_rx_source_ = gr_complex_ip_packet_source::make(capture_device, @@ -95,7 +93,6 @@ CustomUDPSignalSource::CustomUDPSignalSource(ConfigurationInterface* configurati exit(0); } - if (dump_) { for (int n = 0; n < channels_in_udp_; n++) @@ -114,7 +111,7 @@ CustomUDPSignalSource::~CustomUDPSignalSource() void CustomUDPSignalSource::connect(gr::top_block_sptr top_block) { - //connect null sinks to unused streams + // connect null sinks to unused streams for (int n = 0; n < channels_in_udp_; n++) { top_block->connect(udp_gnss_rx_source_, n, null_sinks_.at(n), 0); @@ -134,7 +131,7 @@ void CustomUDPSignalSource::connect(gr::top_block_sptr top_block) void CustomUDPSignalSource::disconnect(gr::top_block_sptr top_block) { - //disconnect null sinks to unused streams + // disconnect null sinks to unused streams for (int n = 0; n < channels_in_udp_; n++) { top_block->disconnect(udp_gnss_rx_source_, n, null_sinks_.at(n), 0); @@ -163,6 +160,7 @@ gr::basic_block_sptr CustomUDPSignalSource::get_right_block() return udp_gnss_rx_source_; } + gr::basic_block_sptr CustomUDPSignalSource::get_right_block(__attribute__((unused)) int RF_channel) { return udp_gnss_rx_source_; diff --git a/src/algorithms/signal_source/adapters/custom_udp_signal_source.h b/src/algorithms/signal_source/adapters/custom_udp_signal_source.h index 9bed9ae32..fcd42071d 100644 --- a/src/algorithms/signal_source/adapters/custom_udp_signal_source.h +++ b/src/algorithms/signal_source/adapters/custom_udp_signal_source.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt index b35caa37d..fdeb71c47 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/signal_source/gnuradio_blocks/CMakeLists.txt @@ -18,35 +18,34 @@ if(ENABLE_RAW_UDP) - # - Try to find libpcap include dirs and libraries - # - # Usage of this module as follows: - # - # find_package(PCAP) - # - # Variables used by this module, they can change the default behaviour and need - # to be set before calling find_package: - # - # PCAP_ROOT_DIR Set this variable to the root installation of - # libpcap if the module has problems finding the - # proper installation path. - # - # Variables defined by this module: - # - # PCAP_FOUND System has libpcap, include and library dirs found - # PCAP_INCLUDE_DIR The libpcap include directories. - # PCAP_LIBRARY The libpcap library (possibly includes a thread - # library e.g. required by pf_ring's libpcap) - # HAVE_PF_RING If a found version of libpcap supports PF_RING - find_package(PCAP) - if(NOT PCAP_FOUND) - message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (ENABLE_RAW_UDP)") - endif() - get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) + # - Try to find libpcap include dirs and libraries + # + # Usage of this module as follows: + # + # find_package(PCAP) + # + # Variables used by this module, they can change the default behaviour and need + # to be set before calling find_package: + # + # PCAP_ROOT_DIR Set this variable to the root installation of + # libpcap if the module has problems finding the + # proper installation path. + # + # Variables defined by this module: + # + # PCAP_FOUND System has libpcap, include and library dirs found + # PCAP_INCLUDE_DIR The libpcap include directories. + # PCAP_LIBRARY The libpcap library (possibly includes a thread + # library e.g. required by pf_ring's libpcap) + # HAVE_PF_RING If a found version of libpcap supports PF_RING + find_package(PCAP) + if(NOT PCAP_FOUND) + message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (ENABLE_RAW_UDP)") + endif() + get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${PCAP_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${PCAP_INCLUDE_DIRS}) set(OPT_DRIVER_SOURCES ${OPT_DRIVER_SOURCES} gr_complex_ip_packet_source.cc) - endif(ENABLE_RAW_UDP) set(SIGNAL_SOURCE_GR_BLOCKS_SOURCES diff --git a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc index 038ea6fbe..8da6d4a5d 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc @@ -24,17 +24,16 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ -#include #include "gr_complex_ip_packet_source.h" +#include -#include -#include +//#include #define FIFO_SIZE 1472000 diff --git a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h index 7b8d9f58e..0661e0911 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h +++ b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.h @@ -24,7 +24,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ @@ -40,6 +40,7 @@ #include #include #include +#include #include class gr_complex_ip_packet_source : virtual public gr::sync_block @@ -77,12 +78,9 @@ private: void demux_samples(gr_vector_void_star output_items, int num_samples_readed); void my_pcap_loop_thread(pcap_t *pcap_handle); - void pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet); - static void static_pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet); - public: typedef boost::shared_ptr sptr; static sptr make(std::string src_device, @@ -108,9 +106,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); - //Called by gnuradio to enable drivers, etc for i/o devices. + // Called by gnuradio to enable drivers, etc for i/o devices. bool start(); - //Called by gnuradio to disable drivers, etc for i/o devices. + // Called by gnuradio to disable drivers, etc for i/o devices. bool stop(); }; diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc index ba9f9365e..b3a1d61f7 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.cc @@ -7,7 +7,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ diff --git a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h index ccfe699b5..0a48bcb5f 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h +++ b/src/algorithms/signal_source/gnuradio_blocks/unpack_byte_4bit_samples.h @@ -7,7 +7,7 @@ * \author Javier Arribas jarribas (at) cttc.es * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -25,7 +25,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNSS-SDR. If not, see . + * along with GNSS-SDR. If not, see . * * ------------------------------------------------------------------------- */ From c19bc392e8f3602acf36288c9e9d83b517ad2b07 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 20:48:59 +0200 Subject: [PATCH 076/108] Add optional Custom_UDP_Signal_Source signal source --- docs/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changelog b/docs/changelog index d46e1202f..74f263c33 100644 --- a/docs/changelog +++ b/docs/changelog @@ -43,7 +43,7 @@ Next release will have several improvements in different dimensions, addition of - Added the GLONASS L2 SP receiver chain. - Improvements in the Galileo E5a and GPS L2C receiver chains. - Updated list of available GNSS satellites. -- Added four more signal sources: "Fmcomms2_Signal_Source", "Plutosdr_Signal Source", "Spir_GSS6450_File_Signal_Source" and "Labsat_Signal_Source". Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/ +- Added five more signal sources: "Fmcomms2_Signal_Source" (requires gr-iio), "Plutosdr_Signal Source" (requires gr-iio), "Spir_GSS6450_File_Signal_Source", "Labsat_Signal_Source" and "Custom_UDP_Signal_Source" (requires libpcap). Documented in https://gnss-sdr.org/docs/sp-blocks/signal-source/ - Improved support for BladeRF, HackRF and RTL-SDR front-ends. - Added tools for the interaction with front-ends based on the AD9361 chipset. - Intermediate results are now saved in .mat binary format, readable from Matlab/Octave and from Python via h5py. From e2011eaa92b50848d7d86f502fc1099e86dbdf8a Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 20:49:58 +0200 Subject: [PATCH 077/108] Add libpcap as a new optional dependency --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 55eb8d21b..d056d3313 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ $ sudo apt-get install build-essential cmake git libboost-dev libboost-date-time libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev \ libboost-serialization-dev liblog4cpp5-dev libuhd-dev gnuradio-dev gr-osmosdr \ libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \ - libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + libgnutls-openssl-dev libpcap-dev python-mako python-six libmatio-dev googletest ~~~~~~ Please note that `googletest` was named `libgtest-dev` in distributions older than Debian 9 "stretch" and Ubuntu 17.04 "zesty". @@ -85,7 +85,7 @@ $ sudo yum install make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono \ boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel \ blas-devel lapack-devel matio-devel armadillo-devel gflags-devel \ - glog-devel openssl-devel python-mako python-six + glog-devel openssl-devel libpcap-devel python-mako python-six ~~~~~~ Once you have installed these packages, you can jump directly to [download the source code and build GNSS-SDR](#download-and-build-linux). @@ -102,7 +102,7 @@ $ sudo yum install make automake gcc gcc-c++ kernel-devel libtool \ hdf5-devel cmake git boost-devel boost-date-time boost-system \ boost-filesystem boost-thread boost-chrono boost-serialization \ log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel \ - armadillo-devel openssl-devel python-mako python-six + armadillo-devel openssl-devel libpcap-devel python-mako python-six ~~~~~~ Once you have installed these packages, you can jump directly to [download the source code and build GNSS-SDR](#download-and-build-linux). @@ -114,7 +114,7 @@ If you are using Arch Linux (with base-devel group installed): ~~~~~~ $ pacman -S cmake git boost boost-libs log4cpp libvolk gnuradio gnuradio-osmosdr \ blas lapack gflags google-glog gnutls openssl python2-mako python2-six \ - libmatio gtest + libmatio libpcap gtest ~~~~~~ Once you have installed these packages, you can jump directly to [download the source code and build GNSS-SDR](#download-and-build-linux). From 835cf3b11e257f7a21ba7b4aa9ed0133620c59a2 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 21:33:52 +0200 Subject: [PATCH 078/108] Rename CMake module for gr-iio to a more consistent name. Minor fixes --- CMakeLists.txt | 2 +- cmake/Modules/{Findiio.cmake => FindGriio.cmake} | 0 src/algorithms/PVT/libs/rtklib_solver.cc | 2 +- src/algorithms/libs/rtklib/rtklib_stream.cc | 2 +- src/algorithms/signal_source/adapters/CMakeLists.txt | 3 +-- src/algorithms/signal_source/libs/CMakeLists.txt | 2 +- 6 files changed, 5 insertions(+), 6 deletions(-) rename cmake/Modules/{Findiio.cmake => FindGriio.cmake} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 954690ffb..ccce85891 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +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) +option(ENABLE_AD9361 "Enable the use of AD9361 directo to FPGA hardware, requires libiio" OFF) option(ENABLE_RAW_UDP "Enable the use of high-optimized custom UDP packet sample source, requires libpcap" OFF) # Performance analysis tools diff --git a/cmake/Modules/Findiio.cmake b/cmake/Modules/FindGriio.cmake similarity index 100% rename from cmake/Modules/Findiio.cmake rename to cmake/Modules/FindGriio.cmake diff --git a/src/algorithms/PVT/libs/rtklib_solver.cc b/src/algorithms/PVT/libs/rtklib_solver.cc index a0650d768..06332cc30 100644 --- a/src/algorithms/PVT/libs/rtklib_solver.cc +++ b/src/algorithms/PVT/libs/rtklib_solver.cc @@ -70,7 +70,7 @@ rtklib_solver::rtklib_solver(int nchannels, std::string dump_filename, bool flag count_valid_position = 0; this->set_averaging_flag(false); rtk_ = rtk; - for (unsigned int i = 0; i > 4; i++) dop_[i] = 0.0; + 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 ################# diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index 3de693e65..6d307a1d1 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -1603,7 +1603,7 @@ void *ftpthread(void *arg) " --glob=off --passive-ftp " + std::string(proxyopt) + "s-t 1 -T " + std::to_string(FTP_TIMEOUT) + " -O \"" + std::string(local) + "\""; int k = s_aux.length(); - if (k < 2048) + if (k < 1024]) for (int i = 0; i < k; i++) opt[i] = s_aux[i]; // sprintf(cmd, "%s%s %s \"ftp://%s/%s\" 2> \"%s\"\n", env, FTP_CMD, opt, ftp->addr, diff --git a/src/algorithms/signal_source/adapters/CMakeLists.txt b/src/algorithms/signal_source/adapters/CMakeLists.txt index 120fff27b..78061f7f5 100644 --- a/src/algorithms/signal_source/adapters/CMakeLists.txt +++ b/src/algorithms/signal_source/adapters/CMakeLists.txt @@ -50,11 +50,10 @@ if(ENABLE_RAW_UDP) set(OPT_LIBRARIES ${OPT_LIBRARIES} ${PCAP_LIBRARIES}) set(OPT_DRIVER_INCLUDE_DIRS ${OPT_DRIVER_INCLUDE_DIRS} ${PCAP_INCLUDE_DIRS}) set(OPT_DRIVER_SOURCES ${OPT_DRIVER_SOURCES} custom_udp_signal_source.cc) - endif(ENABLE_RAW_UDP) if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) - find_package(iio REQUIRED) + find_package(Griio REQUIRED) if(NOT IIO_FOUND) message(STATUS "gnuradio-iio not found, its installation is required.") message(STATUS "Please build and install the following projects:") diff --git a/src/algorithms/signal_source/libs/CMakeLists.txt b/src/algorithms/signal_source/libs/CMakeLists.txt index f37684525..8ace0c109 100644 --- a/src/algorithms/signal_source/libs/CMakeLists.txt +++ b/src/algorithms/signal_source/libs/CMakeLists.txt @@ -17,7 +17,7 @@ # if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) - find_package(iio REQUIRED) + find_package(Griio REQUIRED) if(NOT IIO_FOUND) message(STATUS "gnuradio-iio not found, its installation is required.") message(STATUS "Please build and install the following projects:") From 046a24e0caaa77679f844a43e51db11d0e3e3087 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 21:51:20 +0200 Subject: [PATCH 079/108] Fix typo --- src/algorithms/libs/rtklib/rtklib_stream.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index 6d307a1d1..4e6f0a0a1 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -1603,7 +1603,7 @@ void *ftpthread(void *arg) " --glob=off --passive-ftp " + std::string(proxyopt) + "s-t 1 -T " + std::to_string(FTP_TIMEOUT) + " -O \"" + std::string(local) + "\""; int k = s_aux.length(); - if (k < 1024]) + if (k < 1024) for (int i = 0; i < k; i++) opt[i] = s_aux[i]; // sprintf(cmd, "%s%s %s \"ftp://%s/%s\" 2> \"%s\"\n", env, FTP_CMD, opt, ftp->addr, From eeb2893f9c6a8116a7fd63cba25abf75f2ec0b98 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 16 May 2018 21:54:31 +0200 Subject: [PATCH 080/108] Fix GCC 8.1.1 warnings --- .../gr_complex_ip_packet_source.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc index 8da6d4a5d..d0b9382fc 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc @@ -319,22 +319,22 @@ void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items switch (d_wire_sample_type) { case 1: //interleaved byte samples - for (int i = 0; i < output_items.size(); i++) + for (long unsigned int i = 0; i < output_items.size(); i++) { real = fifo_buff[fifo_read_ptr++]; imag = fifo_buff[fifo_read_ptr++]; if (d_IQ_swap) { - ((gr_complex *)output_items[i])[n] = gr_complex(real, imag); + (static_cast(output_items[i]))[n] = gr_complex(real, imag); } else { - ((gr_complex *)output_items[i])[n] = gr_complex(imag, real); + (static_cast(output_items[i]))[n] = gr_complex(imag, real); } } break; case 2: // 4bits samples - for (int i = 0; i < output_items.size(); i++) + for (long unsigned int i = 0; i < output_items.size(); i++) { tmp_char2 = fifo_buff[fifo_read_ptr] & 0x0F; if (tmp_char2 >= 8) @@ -357,11 +357,11 @@ void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items } if (d_IQ_swap) { - ((gr_complex *)output_items[i])[n] = gr_complex(imag, real); + (static_cast(output_items[i]))[n] = gr_complex(imag, real); } else { - ((gr_complex *)output_items[i])[n] = gr_complex(real, imag); + (static_cast(output_items[i]))[n] = gr_complex(real, imag); } } break; @@ -381,7 +381,7 @@ int gr_complex_ip_packet_source::work(int noutput_items, boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function if (fifo_items == 0) return 0; - if (output_items.size() > d_n_baseband_channels) + if (output_items.size() > static_cast(d_n_baseband_channels)) { std::cout << "Configuration error: more baseband channels connected than the available in the UDP source\n"; exit(0); @@ -430,9 +430,9 @@ int gr_complex_ip_packet_source::work(int noutput_items, //update fifo items fifo_items = fifo_items - bytes_requested; - for (int n = 0; n < output_items.size(); n++) + for (long unsigned int n = 0; n < output_items.size(); n++) { - produce(n, num_samples_readed); + produce(static_cast(n), num_samples_readed); } return this->WORK_CALLED_PRODUCE; } From 0f4306d0d923ce11f7bc215b7b94bff202a69cf9 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 17:08:13 +0200 Subject: [PATCH 081/108] Avoid uninitialized variable --- src/algorithms/libs/rtklib/rtklib_stream.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index 4e6f0a0a1..75b576efc 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -120,8 +120,7 @@ serial_t *openserial(const char *path, int mode, char *msg) std::string s_aux = "/dev/" + std::string(port); s_aux.resize(128, '\0'); int n = s_aux.length(); - if (n < 128) - for (int i = 0; i < n; i++) dev[i] = s_aux[i]; + for (int i = 0; i < n; i++) dev[i] = s_aux[i]; if ((mode & STR_MODE_R) && (mode & STR_MODE_W)) rw = O_RDWR; From 239a4df498e038d903db2dbd9eea0fc247070ae2 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 18:00:40 +0200 Subject: [PATCH 082/108] Improve test initialization --- .../pvt/nmea_printer_test.cc | 126 +++++++++++++++++- 1 file changed, 120 insertions(+), 6 deletions(-) diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc index 445f6a91a..4a56b4018 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc @@ -35,12 +35,129 @@ #include "nmea_printer.h" -TEST(NmeaPrinterTest, PrintLine) +class NmeaPrinterTest : public ::testing::Test { - std::string filename("nmea_test.nmea"); +protected: + NmeaPrinterTest() + { + this->conf(); + } + ~NmeaPrinterTest() + { + } + void conf(); rtk_t rtk; prcopt_t rtklib_configuration_options; +}; + +void NmeaPrinterTest::conf() +{ + snrmask_t snrmask = {{}, {{}, {}}}; + int positioning_mode = 0; // Single + int number_of_frequencies = 1; + double elevation_mask = 5; + int navigation_system = 1; // GPS + int integer_ambiguity_resolution_gps = 0; + int integer_ambiguity_resolution_glo = 0; + int integer_ambiguity_resolution_bds = 0; + int outage_reset_ambiguity = 5; + int min_lock_to_fix_ambiguity = 0; + int iono_model = 0; + int trop_model = 0; + int dynamics_model = 0; + int earth_tide = 0; + int number_filter_iter = 1; + double code_phase_error_ratio_l1 = 100.0; + double code_phase_error_ratio_l2 = 100.0; + double code_phase_error_ratio_l5 = 100.0; + double carrier_phase_error_factor_a = 0.003; + double carrier_phase_error_factor_b = 0.003; + double bias_0 = 30.0; + double iono_0 = 0.03; + double trop_0 = 0.3; + double sigma_bias = 1e-4; + double sigma_iono = 1e-3; + double sigma_trop = 1e-4; + double sigma_acch = 1e-1; + double sigma_accv = 1e-2; + double sigma_pos = 0.0; + double min_ratio_to_fix_ambiguity = 3.0; + double min_elevation_to_fix_ambiguity = 0.0; + double slip_threshold = 0.05; + double threshold_reject_innovation = 30.0; + double threshold_reject_gdop = 30.0; + int sat_PCV = 0; + int rec_PCV = 0; + int phwindup = 0; + int reject_GPS_IIA = 0; + int raim_fde = 0; + + prcopt_t rtklib_configuration_options = { + positioning_mode, /* positioning mode (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h */ + 0, /* solution type (0:forward,1:backward,2:combined) */ + number_of_frequencies, /* number of frequencies (1:L1, 2:L1+L2, 3:L1+L2+L5)*/ + navigation_system, /* navigation system */ + elevation_mask * D2R, /* elevation mask angle (degrees) */ + snrmask, /* snrmask_t snrmask SNR mask */ + 0, /* satellite ephemeris/clock (EPHOPT_XXX) */ + integer_ambiguity_resolution_gps, /* AR mode (0:off,1:continuous,2:instantaneous,3:fix and hold,4:ppp-ar) */ + integer_ambiguity_resolution_glo, /* GLONASS AR mode (0:off,1:on,2:auto cal,3:ext cal) */ + integer_ambiguity_resolution_bds, /* BeiDou AR mode (0:off,1:on) */ + outage_reset_ambiguity, /* obs outage count to reset bias */ + min_lock_to_fix_ambiguity, /* min lock count to fix ambiguity */ + 10, /* min fix count to hold ambiguity */ + 1, /* max iteration to resolve ambiguity */ + iono_model, /* ionosphere option (IONOOPT_XXX) */ + trop_model, /* troposphere option (TROPOPT_XXX) */ + dynamics_model, /* dynamics model (0:none, 1:velocity, 2:accel) */ + earth_tide, /* earth tide correction (0:off,1:solid,2:solid+otl+pole) */ + number_filter_iter, /* number of filter iteration */ + 0, /* code smoothing window size (0:none) */ + 0, /* interpolate reference obs (for post mission) */ + 0, /* sbssat_t sbssat SBAS correction options */ + 0, /* sbsion_t sbsion[MAXBAND+1] SBAS satellite selection (0:all) */ + 0, /* rover position for fixed mode */ + 0, /* base position for relative mode */ + /* 0:pos in prcopt, 1:average of single pos, */ + /* 2:read from file, 3:rinex header, 4:rtcm pos */ + {code_phase_error_ratio_l1, code_phase_error_ratio_l2, code_phase_error_ratio_l5}, /* eratio[NFREQ] code/phase error ratio */ + {100.0, carrier_phase_error_factor_a, carrier_phase_error_factor_b, 0.0, 1.0}, /* err[5]: measurement error factor [0]:reserved, [1-3]:error factor a/b/c of phase (m) , [4]:doppler frequency (hz) */ + {bias_0, iono_0, trop_0}, /* std[3]: initial-state std [0]bias,[1]iono [2]trop*/ + {sigma_bias, sigma_iono, sigma_trop, sigma_acch, sigma_accv, sigma_pos}, /* prn[6] process-noise std */ + 5e-12, /* sclkstab: satellite clock stability (sec/sec) */ + {min_ratio_to_fix_ambiguity, 0.9999, 0.25, 0.1, 0.05, 0.0, 0.0, 0.0}, /* thresar[8]: AR validation threshold */ + min_elevation_to_fix_ambiguity, /* elevation mask of AR for rising satellite (deg) */ + 0.0, /* elevation mask to hold ambiguity (deg) */ + slip_threshold, /* slip threshold of geometry-free phase (m) */ + 30.0, /* max difference of time (sec) */ + threshold_reject_innovation, /* reject threshold of innovation (m) */ + threshold_reject_gdop, /* reject threshold of gdop */ + {}, /* double baseline[2] baseline length constraint {const,sigma} (m) */ + {}, /* double ru[3] rover position for fixed mode {x,y,z} (ecef) (m) */ + {}, /* double rb[3] base position for relative mode {x,y,z} (ecef) (m) */ + {"", ""}, /* char anttype[2][MAXANT] antenna types {rover,base} */ + {{}, {}}, /* double antdel[2][3] antenna delta {{rov_e,rov_n,rov_u},{ref_e,ref_n,ref_u}} */ + {}, /* pcv_t pcvr[2] receiver antenna parameters {rov,base} */ + {}, /* unsigned char exsats[MAXSAT] excluded satellites (1:excluded, 2:included) */ + 0, /* max averaging epoches */ + 0, /* initialize by restart */ + 1, /* output single by dgps/float/fix/ppp outage */ + {"", ""}, /* char rnxopt[2][256] rinex options {rover,base} */ + {sat_PCV, rec_PCV, phwindup, reject_GPS_IIA, raim_fde}, /* posopt[6] positioning options [0]: satellite and receiver antenna PCV model; [1]: interpolate antenna parameters; [2]: apply phase wind-up correction for PPP modes; [3]: exclude measurements of GPS Block IIA satellites satellite [4]: RAIM FDE (fault detection and exclusion) [5]: handle day-boundary clock jump */ + 0, /* solution sync mode (0:off,1:on) */ + {{}, {}}, /* odisp[2][6*11] ocean tide loading parameters {rov,base} */ + {{}, {{}, {}}, {{}, {}}, {}, {}}, /* exterr_t exterr extended receiver error model */ + 0, /* disable L2-AR */ + {} /* char pppopt[256] ppp option "-GAP_RESION=" default gap to reset iono parameters (ep) */ + }; + rtkinit(&rtk, &rtklib_configuration_options); +} + + +TEST_F(NmeaPrinterTest, PrintLine) +{ + std::string filename("nmea_test.nmea"); std::shared_ptr pvt_solution = std::make_shared(12, "filename", false, rtk); boost::posix_time::ptime pt(boost::gregorian::date(1994, boost::date_time::Nov, 19), @@ -76,12 +193,9 @@ TEST(NmeaPrinterTest, PrintLine) } -TEST(NmeaPrinterTest, PrintLineLessthan10min) +TEST_F(NmeaPrinterTest, PrintLineLessthan10min) { std::string filename("nmea_test.nmea"); - rtk_t rtk; - prcopt_t rtklib_configuration_options; - rtkinit(&rtk, &rtklib_configuration_options); std::shared_ptr pvt_solution = std::make_shared(12, "filename", false, rtk); boost::posix_time::ptime pt(boost::gregorian::date(1994, boost::date_time::Nov, 19), From 76d871bc8ddc4bb39d413557e1ae31883afa1327 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 19:07:00 +0200 Subject: [PATCH 083/108] Avoid throwing in the destructor --- .../signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc index c956f4f4c..71c09a8c8 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/rtl_tcp_signal_source_c.cc @@ -154,7 +154,7 @@ rtl_tcp_signal_source_c::rtl_tcp_signal_source_c(const std::string &address, rtl_tcp_signal_source_c::~rtl_tcp_signal_source_c() { - boost::mutex::scoped_lock lock(mutex_); + mutex_.unlock(); io_service_.stop(); not_empty_.notify_one(); not_full_.notify_one(); From 9a020457da35fc305f91b4df5b45e39b2a6a0cee Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 19:30:03 +0200 Subject: [PATCH 084/108] Fix test initialization --- .../signal-processing-blocks/pvt/nmea_printer_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc index 4a56b4018..e450a0275 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc @@ -92,7 +92,7 @@ void NmeaPrinterTest::conf() int reject_GPS_IIA = 0; int raim_fde = 0; - prcopt_t rtklib_configuration_options = { + rtklib_configuration_options = { positioning_mode, /* positioning mode (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h */ 0, /* solution type (0:forward,1:backward,2:combined) */ number_of_frequencies, /* number of frequencies (1:L1, 2:L1+L2, 3:L1+L2+L5)*/ From a05952c9669e1efd260d4f83fe18280100835001 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 20:23:48 +0200 Subject: [PATCH 085/108] Initialize all members in the constructor Replace C-style casts by C++ casts Fixes spelling errors Other minor cleaning for consistency --- .../gr_complex_ip_packet_source.cc | 133 ++++++++++-------- 1 file changed, 71 insertions(+), 62 deletions(-) diff --git a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc index d0b9382fc..034d2b488 100644 --- a/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc +++ b/src/algorithms/signal_source/gnuradio_blocks/gr_complex_ip_packet_source.cc @@ -33,10 +33,8 @@ #include "gr_complex_ip_packet_source.h" #include -//#include - -#define FIFO_SIZE 1472000 +const int FIFO_SIZE = 1472000; /* 4 bytes IP address */ @@ -48,6 +46,7 @@ typedef struct gr_ip_address u_char byte4; } gr_ip_address; + /* IPv4 header */ typedef struct gr_ip_header { @@ -64,6 +63,7 @@ typedef struct gr_ip_header u_int op_pad; // Option + Padding } gr_ip_header; + /* UDP header*/ typedef struct gr_udp_header { @@ -73,6 +73,7 @@ typedef struct gr_udp_header u_short crc; // Checksum } gr_udp_header; + gr_complex_ip_packet_source::sptr gr_complex_ip_packet_source::make(std::string src_device, std::string origin_address, @@ -93,6 +94,7 @@ gr_complex_ip_packet_source::make(std::string src_device, IQ_swap_)); } + /* * The private constructor */ @@ -106,9 +108,8 @@ gr_complex_ip_packet_source::gr_complex_ip_packet_source(std::string src_device, bool IQ_swap_) : gr::sync_block("gr_complex_ip_packet_source", gr::io_signature::make(0, 0, 0), - gr::io_signature::make(1, 4, item_size)) //1 to 4 baseband complex channels + gr::io_signature::make(1, 4, item_size)) // 1 to 4 baseband complex channels { - // constructor code here std::cout << "Start Ethernet packet capture\n"; d_n_baseband_channels = n_baseband_channels; @@ -133,7 +134,7 @@ gr_complex_ip_packet_source::gr_complex_ip_packet_source(std::string src_device, d_udp_payload_size = udp_packet_size; d_fifo_full = false; - //allocate signal samples buffer + // allocate signal samples buffer fifo_buff = new char[FIFO_SIZE]; fifo_read_ptr = 0; fifo_write_ptr = 0; @@ -143,14 +144,16 @@ gr_complex_ip_packet_source::gr_complex_ip_packet_source(std::string src_device, d_sock_raw = 0; d_pcap_thread = NULL; descr = NULL; + + memset(reinterpret_cast(&si_me), 0, sizeof(si_me)); } -//Called by gnuradio to enable drivers, etc for i/o devices. +// Called by gnuradio to enable drivers, etc for i/o devices. bool gr_complex_ip_packet_source::start() { std::cout << "gr_complex_ip_packet_source START\n"; - //open the ethernet device + // open the ethernet device if (open() == true) { // start pcap capture thread @@ -163,7 +166,8 @@ bool gr_complex_ip_packet_source::start() } } -//Called by gnuradio to disable drivers, etc for i/o devices. + +// Called by gnuradio to disable drivers, etc for i/o devices. bool gr_complex_ip_packet_source::stop() { std::cout << "gr_complex_ip_packet_source STOP\n"; @@ -176,42 +180,44 @@ bool gr_complex_ip_packet_source::stop() return true; } + bool gr_complex_ip_packet_source::open() { char errbuf[PCAP_ERRBUF_SIZE]; boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function - /* open device for reading */ + // open device for reading descr = pcap_open_live(d_src_device.c_str(), 1500, 1, 1000, errbuf); if (descr == NULL) { - std::cout << "Error openning Ethernet device " << d_src_device << std::endl; - printf("Fatal Error in pcap_open_live(): %s\n", errbuf); + std::cout << "Error opening Ethernet device " << d_src_device << std::endl; + std::cout << "Fatal Error in pcap_open_live(): " << std::string(errbuf) << std::endl; return false; } - //bind UDP port to avoid automatic reply with ICMP port ureacheable packets from kernel + // bind UDP port to avoid automatic reply with ICMP port unreachable packets from kernel d_sock_raw = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (d_sock_raw == -1) { - std::cout << "Error openning UDP socket" << std::endl; + std::cout << "Error opening UDP socket" << std::endl; return false; } // zero out the structure - memset((char *)&si_me, 0, sizeof(si_me)); + memset(reinterpret_cast(&si_me), 0, sizeof(si_me)); si_me.sin_family = AF_INET; si_me.sin_port = htons(d_udp_port); si_me.sin_addr.s_addr = htonl(INADDR_ANY); - //bind socket to port - if (bind(d_sock_raw, (struct sockaddr *)&si_me, sizeof(si_me)) == -1) + // bind socket to port + if (bind(d_sock_raw, reinterpret_cast(&si_me), sizeof(si_me)) == -1) { - std::cout << "Error openning UDP socket" << std::endl; + std::cout << "Error opening UDP socket" << std::endl; return false; } return true; } + gr_complex_ip_packet_source::~gr_complex_ip_packet_source() { if (d_pcap_thread != NULL) @@ -222,35 +228,36 @@ gr_complex_ip_packet_source::~gr_complex_ip_packet_source() std::cout << "Stop Ethernet packet capture\n"; } + void gr_complex_ip_packet_source::static_pcap_callback(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *packet) { - gr_complex_ip_packet_source *bridge = (gr_complex_ip_packet_source *)args; + gr_complex_ip_packet_source *bridge = reinterpret_cast(args); bridge->pcap_callback(args, pkthdr, packet); } + void gr_complex_ip_packet_source::pcap_callback(__attribute__((unused)) u_char *args, __attribute__((unused)) const struct pcap_pkthdr *pkthdr, const u_char *packet) { boost::mutex::scoped_lock lock(d_mutex); // hold mutex for duration of this function - gr_ip_header *ih; - gr_udp_header *uh; + const gr_ip_header *ih; + const gr_udp_header *uh; // eth frame parameters // **** UDP RAW PACKET DECODER **** - if ((packet[12] == 0x08) & (packet[13] == 0x00)) //IP FRAME + if ((packet[12] == 0x08) & (packet[13] == 0x00)) // IP FRAME { - /* retireve the position of the ip header */ - ih = (gr_ip_header *)(packet + - 14); //length of ethernet header + // retrieve the position of the ip header + ih = reinterpret_cast(packet + 14); // length of ethernet header - /* retireve the position of the udp header */ + // retrieve the position of the udp header u_int ip_len; ip_len = (ih->ver_ihl & 0xf) * 4; - uh = (gr_udp_header *)((u_char *)ih + ip_len); + uh = reinterpret_cast(reinterpret_cast(ih) + ip_len); - /* convert from network byte order to host byte order */ + // convert from network byte order to host byte order //u_short sport; u_short dport; dport = ntohs(uh->dport); @@ -271,44 +278,45 @@ void gr_complex_ip_packet_source::pcap_callback(__attribute__((unused)) u_char * // dport); // std::cout<<"uh->len:"<len)<len) - 8; //total udp packet lenght minus the header lenght - //read the payload bytes and insert them into the shared circular buffer - u_char *udp_payload = ((u_char *)uh + sizeof(gr_udp_header)); - if (fifo_items <= (FIFO_SIZE - payload_lenght_bytes)) + int payload_length_bytes = ntohs(uh->len) - 8; // total udp packet length minus the header length + // read the payload bytes and insert them into the shared circular buffer + const u_char *udp_payload = (reinterpret_cast(uh) + sizeof(gr_udp_header)); + if (fifo_items <= (FIFO_SIZE - payload_length_bytes)) { int aligned_write_items = FIFO_SIZE - fifo_write_ptr; - if (aligned_write_items >= payload_lenght_bytes) + if (aligned_write_items >= payload_length_bytes) { - //write all in a single memcpy - memcpy(&fifo_buff[fifo_write_ptr], &udp_payload[0], payload_lenght_bytes); //size in bytes - fifo_write_ptr += payload_lenght_bytes; + // write all in a single memcpy + memcpy(&fifo_buff[fifo_write_ptr], &udp_payload[0], payload_length_bytes); // size in bytes + fifo_write_ptr += payload_length_bytes; if (fifo_write_ptr == FIFO_SIZE) fifo_write_ptr = 0; - fifo_items += payload_lenght_bytes; + fifo_items += payload_length_bytes; } else { - //two step wrap write - memcpy(&fifo_buff[fifo_write_ptr], &udp_payload[0], aligned_write_items); //size in bytes - fifo_write_ptr = payload_lenght_bytes - aligned_write_items; - memcpy(&fifo_buff[0], &udp_payload[aligned_write_items], fifo_write_ptr); //size in bytes - fifo_items += payload_lenght_bytes; + // two step wrap write + memcpy(&fifo_buff[fifo_write_ptr], &udp_payload[0], aligned_write_items); // size in bytes + fifo_write_ptr = payload_length_bytes - aligned_write_items; + memcpy(&fifo_buff[0], &udp_payload[aligned_write_items], fifo_write_ptr); // size in bytes + fifo_items += payload_length_bytes; } } else { - //notify overflow + // notify overflow std::cout << "O" << std::flush; } } } } -void gr_complex_ip_packet_source::my_pcap_loop_thread(pcap_t *pcap_handle) +void gr_complex_ip_packet_source::my_pcap_loop_thread(pcap_t *pcap_handle) { - pcap_loop(pcap_handle, -1, gr_complex_ip_packet_source::static_pcap_callback, (u_char *)this); + pcap_loop(pcap_handle, -1, gr_complex_ip_packet_source::static_pcap_callback, reinterpret_cast(this)); } + void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items, int num_samples_readed) { int8_t real; @@ -318,22 +326,22 @@ void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items { switch (d_wire_sample_type) { - case 1: //interleaved byte samples + case 1: // interleaved byte samples for (long unsigned int i = 0; i < output_items.size(); i++) { real = fifo_buff[fifo_read_ptr++]; imag = fifo_buff[fifo_read_ptr++]; if (d_IQ_swap) { - (static_cast(output_items[i]))[n] = gr_complex(real, imag); + static_cast(output_items[i])[n] = gr_complex(real, imag); } else { - (static_cast(output_items[i]))[n] = gr_complex(imag, real); + static_cast(output_items[i])[n] = gr_complex(imag, real); } } break; - case 2: // 4bits samples + case 2: // 4-bit samples for (long unsigned int i = 0; i < output_items.size(); i++) { tmp_char2 = fifo_buff[fifo_read_ptr] & 0x0F; @@ -357,11 +365,11 @@ void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items } if (d_IQ_swap) { - (static_cast(output_items[i]))[n] = gr_complex(imag, real); + static_cast(output_items[i])[n] = gr_complex(imag, real); } else { - (static_cast(output_items[i]))[n] = gr_complex(real, imag); + static_cast(output_items[i])[n] = gr_complex(real, imag); } } break; @@ -373,6 +381,7 @@ void gr_complex_ip_packet_source::demux_samples(gr_vector_void_star output_items } } + int gr_complex_ip_packet_source::work(int noutput_items, __attribute__((unused)) gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) @@ -390,44 +399,44 @@ int gr_complex_ip_packet_source::work(int noutput_items, int bytes_requested; switch (d_wire_sample_type) { - case 1: //complex byte samples + case 1: // complex byte samples bytes_requested = noutput_items * d_bytes_per_sample; if (bytes_requested < fifo_items) { - num_samples_readed = noutput_items; //read all + num_samples_readed = noutput_items; // read all } else { - num_samples_readed = fifo_items / d_bytes_per_sample; //read what we have + num_samples_readed = fifo_items / d_bytes_per_sample; // read what we have } break; - case 2: //complex 4 bits samples + case 2: // complex 4 bits samples bytes_requested = noutput_items * d_bytes_per_sample; if (bytes_requested < fifo_items) { - num_samples_readed = noutput_items; //read all + num_samples_readed = noutput_items; // read all } else { - num_samples_readed = fifo_items / d_bytes_per_sample; //read what we have + num_samples_readed = fifo_items / d_bytes_per_sample; // read what we have } break; - default: //complex byte samples + default: // complex byte samples bytes_requested = noutput_items * d_bytes_per_sample; if (bytes_requested < fifo_items) { - num_samples_readed = noutput_items; //read all + num_samples_readed = noutput_items; // read all } else { - num_samples_readed = fifo_items / d_bytes_per_sample; //read what we have + num_samples_readed = fifo_items / d_bytes_per_sample; // read what we have } } bytes_requested = num_samples_readed * d_bytes_per_sample; - //read all in a single loop + // read all in a single loop demux_samples(output_items, num_samples_readed); // it also increases the fifo read pointer - //update fifo items + // update fifo items fifo_items = fifo_items - bytes_requested; for (long unsigned int n = 0; n < output_items.size(); n++) From b4cc22abc20450d557c9132c05ea5cbddbda8aa3 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 20:34:50 +0200 Subject: [PATCH 086/108] Avoid throwing in the destructor --- .../adapters/fmcomms2_signal_source.cc | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc b/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc index fbbb8a972..da3b39148 100644 --- a/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc +++ b/src/algorithms/signal_source/adapters/fmcomms2_signal_source.cc @@ -1,6 +1,6 @@ /*! - * \filei fmcomms2_signal_source.cc - * \brief signal source for sdr hardware from analog devices based on + * \file fmcomms2_signal_source.cc + * \brief Signal source for SDR hardware from Analog Devices based on * fmcomms2 evaluation board. * \author Rodrigo Muñoz, 2017, rmunozl(at)inacap.cl * @@ -36,6 +36,7 @@ #include "GPS_L1_CA.h" #include "GPS_L2C.h" #include +#include #include @@ -70,7 +71,7 @@ Fmcomms2SignalSource::Fmcomms2SignalSource(ConfigurationInterface* configuration dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); - //AD9361 Local Oscillator generation for dual band operation + // AD9361 Local Oscillator generation for dual band operation enable_dds_lo_ = configuration->property(role + ".enable_dds_lo", false); freq_rf_tx_hz_ = configuration->property(role + ".freq_rf_tx_hz", GPS_L1_FREQ_HZ - GPS_L2_FREQ_HZ - 1000); freq_dds_tx_hz_ = configuration->property(role + ".freq_dds_tx_hz", 1000); @@ -104,7 +105,7 @@ Fmcomms2SignalSource::Fmcomms2SignalSource(ConfigurationInterface* configuration rf_port_select_.c_str(), filter_file_.c_str(), filter_auto_); - //configure LO + // configure LO if (enable_dds_lo_ == true) { std::cout << "Enabling Local Oscillator generator in FMCOMMS2\n"; @@ -135,7 +136,7 @@ Fmcomms2SignalSource::Fmcomms2SignalSource(ConfigurationInterface* configuration gain_mode_rx2_.c_str(), rf_gain_rx2_, rf_port_select_.c_str(), filter_file_.c_str(), filter_auto_); - //configure LO + // configure LO if (enable_dds_lo_ == true) { std::cout << "Enabling Local Oscillator generator in FMCOMMS2\n"; @@ -179,7 +180,14 @@ Fmcomms2SignalSource::~Fmcomms2SignalSource() { if (enable_dds_lo_ == true) { - ad9361_disable_lo_remote(uri_); + try + { + ad9361_disable_lo_remote(uri_); + } + catch (const std::exception& e) + { + LOG(WARNING) << "Exception thrown in Fmcomms2SignalSource destructor: " << e.what(); + } } } From 2b7ccc11b9682cafd8804ae28030ae8c2cbb7574 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 20:42:50 +0200 Subject: [PATCH 087/108] Make Coverity Scan happy --- src/algorithms/libs/rtklib/rtklib_stream.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index 75b576efc..feba27b10 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -121,6 +121,7 @@ serial_t *openserial(const char *path, int mode, char *msg) s_aux.resize(128, '\0'); int n = s_aux.length(); for (int i = 0; i < n; i++) dev[i] = s_aux[i]; + if (n == 0) dev[0] = '\0'; if ((mode & STR_MODE_R) && (mode & STR_MODE_W)) rw = O_RDWR; From ba6968bfe00eb2eb0bf19f5afd1e4b9f0eb89225 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 20:50:48 +0200 Subject: [PATCH 088/108] Avoid null dereference --- .../gnuradio_blocks/dll_pll_veml_tracking.cc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index f18c0fc90..69f50dd0d 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -281,7 +281,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_correlator_outs = static_cast(volk_gnsssdr_malloc(d_n_correlator_taps * sizeof(gr_complex), volk_gnsssdr_get_alignment())); d_local_code_shift_chips = static_cast(volk_gnsssdr_malloc(d_n_correlator_taps * sizeof(float), volk_gnsssdr_get_alignment())); - std::fill_n(d_correlator_outs, d_n_correlator_taps, gr_complex(0.0, 0.0)); + clear_tracking_vars(); // map memory pointers of correlator outputs if (d_veml) @@ -328,7 +328,6 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl { // Extra correlator for the data component correlator_data_cpu.init(2 * trk_parameters.vector_length, 1); - d_Prompt_Data = static_cast(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); d_Prompt_Data[0] = gr_complex(0.0, 0.0); d_data_code = static_cast(volk_gnsssdr_malloc(2 * d_code_length_chips * sizeof(float), volk_gnsssdr_get_alignment())); } @@ -338,7 +337,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_data_code = nullptr; } - //--- Initializations ---// + // --- Initializations --- // Initial code frequency basis of NCO d_code_freq_chips = d_code_chip_rate; // Residual code phase (in chips) @@ -360,8 +359,6 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_carrier_lock_fail_counter = 0; d_carrier_lock_threshold = trk_parameters.carrier_lock_th; - clear_tracking_vars(); - d_acquisition_gnss_synchro = nullptr; d_channel = 0; d_acq_code_phase_samples = 0.0; @@ -383,9 +380,8 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl void dll_pll_veml_tracking::start_tracking() { gr::thread::scoped_lock l(d_setlock); - /* - * correct the code phase according to the delay between acq and trk - */ + + // correct the code phase according to the delay between acq and trk d_acq_code_phase_samples = d_acquisition_gnss_synchro->Acq_delay_samples; d_acq_carrier_doppler_hz = d_acquisition_gnss_synchro->Acq_doppler_hz; d_acq_sample_stamp = d_acquisition_gnss_synchro->Acq_samplestamp_samples; @@ -396,7 +392,7 @@ void dll_pll_veml_tracking::start_tracking() DLOG(INFO) << "Number of seconds between Acquisition and Tracking = " << acq_trk_diff_seconds; // Doppler effect Fd = (C / (C + Vr)) * F double radial_velocity = (d_signal_carrier_freq + d_acq_carrier_doppler_hz) / d_signal_carrier_freq; - // new chip and prn sequence periods based on acq Doppler + // new chip and PRN sequence periods based on acq Doppler d_code_freq_chips = radial_velocity * d_code_chip_rate; d_code_phase_step_chips = d_code_freq_chips / trk_parameters.fs_in; double T_chip_mod_seconds = 1.0 / d_code_freq_chips; @@ -566,7 +562,6 @@ dll_pll_veml_tracking::~dll_pll_veml_tracking() volk_gnsssdr_free(d_tracking_code); if (trk_parameters.track_pilot) { - volk_gnsssdr_free(d_Prompt_Data); volk_gnsssdr_free(d_data_code); correlator_data_cpu.free(); } @@ -735,7 +730,7 @@ void dll_pll_veml_tracking::run_dll_pll() void dll_pll_veml_tracking::clear_tracking_vars() { std::fill_n(d_correlator_outs, d_n_correlator_taps, gr_complex(0.0, 0.0)); - if (trk_parameters.track_pilot) *d_Prompt_Data = gr_complex(0.0, 0.0); + if (trk_parameters.track_pilot) d_Prompt_Data[0] = gr_complex(0.0, 0.0); d_carr_error_hz = 0.0; d_carr_error_filt_hz = 0.0; d_code_error_chips = 0.0; From bf23bc1e3e96adcff737fdfbe284570112768f5d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 20:56:27 +0200 Subject: [PATCH 089/108] Make Coverity Scan happy --- src/algorithms/libs/rtklib/rtklib_stream.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index feba27b10..132c68bd1 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -1458,6 +1458,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user, char *passwd, int *topts) { char buff[MAXSTRPATH], *p, *q; + q[0] = '\0'; tracet(4, "decodeftpath: path=%s\n", path); From 96fc3068cc194c663394a1eed7618270c05fc8f7 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 21:35:06 +0200 Subject: [PATCH 090/108] Fix initialization for GCC --- .../signal-processing-blocks/pvt/nmea_printer_test.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc index e450a0275..a08b401c2 100644 --- a/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/pvt/nmea_printer_test.cc @@ -47,7 +47,6 @@ protected: } void conf(); rtk_t rtk; - prcopt_t rtklib_configuration_options; }; void NmeaPrinterTest::conf() @@ -92,7 +91,7 @@ void NmeaPrinterTest::conf() int reject_GPS_IIA = 0; int raim_fde = 0; - rtklib_configuration_options = { + prcopt_t rtklib_configuration_options = { positioning_mode, /* positioning mode (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h */ 0, /* solution type (0:forward,1:backward,2:combined) */ number_of_frequencies, /* number of frequencies (1:L1, 2:L1+L2, 3:L1+L2+L5)*/ From 5076b5a683c3b182bda74ecf475aade5d4a053ae Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 21:36:17 +0200 Subject: [PATCH 091/108] Fix warning of unused variable --- .../signal_source/adapters/ad9361_fpga_signal_source.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index 4c95cf547..5e75e0e03 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -132,12 +132,18 @@ Ad9361FpgaSignalSource::~Ad9361FpgaSignalSource() void Ad9361FpgaSignalSource::connect(gr::top_block_sptr top_block) { + if (top_block) + { /* top_block is not null */ + }; DLOG(INFO) << "AD9361 FPGA source nothing to connect"; } void Ad9361FpgaSignalSource::disconnect(gr::top_block_sptr top_block) { + if (top_block) + { /* top_block is not null */ + }; DLOG(INFO) << "AD9361 FPGA source nothing to disconnect"; } From 7d4fe83fb6e2128b9483b14f48c89c39825fe205 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 22:33:03 +0200 Subject: [PATCH 092/108] Make Coverity Scan happy --- src/algorithms/libs/rtklib/rtklib_stream.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index 132c68bd1..b301cfb1b 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -1458,7 +1458,6 @@ void decodeftppath(const char *path, char *addr, char *file, char *user, char *passwd, int *topts) { char buff[MAXSTRPATH], *p, *q; - q[0] = '\0'; tracet(4, "decodeftpath: path=%s\n", path); @@ -1494,7 +1493,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user, *q = '\0'; if (passwd) strcpy(passwd, q + 1); } - *q = '\0'; + if (*q != 0) *q = '\0'; if (user) strcpy(user, buff); } else From fc18408f116b22a0f24070e0a466f82aa59c41ab Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 22:42:08 +0200 Subject: [PATCH 093/108] Avoid throwing in the destructor --- .../adapters/ad9361_fpga_signal_source.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index 5e75e0e03..1b3b707f9 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -36,6 +36,7 @@ #include "GPS_L1_CA.h" #include "GPS_L2C.h" #include +#include #include // for cout, endl #ifdef __APPLE__ @@ -122,7 +123,14 @@ Ad9361FpgaSignalSource::~Ad9361FpgaSignalSource() if (enable_dds_lo_) { - ad9361_disable_lo_local(); + try + { + ad9361_disable_lo_local(); + } + catch (const std::exception& e) + { + LOW(WARNING) << "Problem closing the Ad9361FpgaSignalSource: " << e.what(); + } } // std::cout<<"* AD9361 Destroying context\n"; From 63dc7663082aaa45e949cf20ff96f0cf8fedb357 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 22:44:21 +0200 Subject: [PATCH 094/108] Initialize all members --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index 69f50dd0d..c295b8c32 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -328,12 +328,10 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl { // Extra correlator for the data component correlator_data_cpu.init(2 * trk_parameters.vector_length, 1); - d_Prompt_Data[0] = gr_complex(0.0, 0.0); d_data_code = static_cast(volk_gnsssdr_malloc(2 * d_code_length_chips * sizeof(float), volk_gnsssdr_get_alignment())); } else { - d_Prompt_Data = nullptr; d_data_code = nullptr; } @@ -358,6 +356,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_CN0_SNV_dB_Hz = 0.0; d_carrier_lock_fail_counter = 0; d_carrier_lock_threshold = trk_parameters.carrier_lock_th; + d_Prompt_Data[0] = gr_complex(0.0, 0.0); d_acquisition_gnss_synchro = nullptr; d_channel = 0; From f44508b53fa84bb2138492bf4777e50dcf9917da Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 23:13:50 +0200 Subject: [PATCH 095/108] Make Coverity Scan happy --- src/algorithms/libs/rtklib/rtklib_rtksvr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/libs/rtklib/rtklib_rtksvr.cc b/src/algorithms/libs/rtklib/rtklib_rtksvr.cc index 6f27b9ca6..e60dbf40a 100644 --- a/src/algorithms/libs/rtklib/rtklib_rtksvr.cc +++ b/src/algorithms/libs/rtklib/rtklib_rtksvr.cc @@ -471,7 +471,7 @@ void *rtksvrthread(void *arg) q = svr->buff[i] + svr->buffsize; /* read receiver raw/rtcm data from input stream */ - if ((n = strread(svr->stream + i, p, q - p)) <= 0) + if ((n = strread(svr->stream + i, p, static_cast(q[0]) - static_cast(p[0]))) <= 0) { continue; } From d61bc907fe04f79f89c46560eee18cd3831a0e29 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 19 May 2018 23:54:36 +0200 Subject: [PATCH 096/108] Fix initialization --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc index c295b8c32..dcdba1f23 100755 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking.cc @@ -356,6 +356,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(dllpllconf_t conf_) : gr::block("dl d_CN0_SNV_dB_Hz = 0.0; d_carrier_lock_fail_counter = 0; d_carrier_lock_threshold = trk_parameters.carrier_lock_th; + d_Prompt_Data = static_cast(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); d_Prompt_Data[0] = gr_complex(0.0, 0.0); d_acquisition_gnss_synchro = nullptr; @@ -559,6 +560,7 @@ dll_pll_veml_tracking::~dll_pll_veml_tracking() volk_gnsssdr_free(d_local_code_shift_chips); volk_gnsssdr_free(d_correlator_outs); volk_gnsssdr_free(d_tracking_code); + volk_gnsssdr_free(d_Prompt_Data); if (trk_parameters.track_pilot) { volk_gnsssdr_free(d_data_code); From d6654301c527b556b6fd6cea7cfa69c029363bcb Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 20 May 2018 00:15:22 +0200 Subject: [PATCH 097/108] Fix typo --- .../signal_source/adapters/ad9361_fpga_signal_source.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc index 1b3b707f9..c857efa3e 100644 --- a/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc +++ b/src/algorithms/signal_source/adapters/ad9361_fpga_signal_source.cc @@ -129,7 +129,7 @@ Ad9361FpgaSignalSource::~Ad9361FpgaSignalSource() } catch (const std::exception& e) { - LOW(WARNING) << "Problem closing the Ad9361FpgaSignalSource: " << e.what(); + LOG(WARNING) << "Problem closing the Ad9361FpgaSignalSource: " << e.what(); } } From 559cc00bd7e31197881d0d4d518f7869b2dde899 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 21 May 2018 04:05:13 +0200 Subject: [PATCH 098/108] Avoid dereference after null check --- src/algorithms/libs/rtklib/rtklib_stream.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/algorithms/libs/rtklib/rtklib_stream.cc b/src/algorithms/libs/rtklib/rtklib_stream.cc index b301cfb1b..2810bc6cc 100644 --- a/src/algorithms/libs/rtklib/rtklib_stream.cc +++ b/src/algorithms/libs/rtklib/rtklib_stream.cc @@ -1493,7 +1493,6 @@ void decodeftppath(const char *path, char *addr, char *file, char *user, *q = '\0'; if (passwd) strcpy(passwd, q + 1); } - if (*q != 0) *q = '\0'; if (user) strcpy(user, buff); } else From 8a7f145d47291dfe24182aecf76b938a7e832c98 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 21 May 2018 04:19:42 +0200 Subject: [PATCH 099/108] Catch missing exception --- .../libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc index 60fb651c0..58db3bac1 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/qa_utils.cc @@ -565,6 +565,11 @@ bool run_volk_gnsssdr_tests(volk_gnsssdr_func_desc_t desc, std::cerr << " - " << name << std::endl; return false; } + catch (std::string s) + { + std::cerr << "Error: " << s << std::endl; + return false; + } //pull the input scalars into their own vector std::vector inputsc; From 5722a3f9aa9556743a5b04dcaa5766fd9960f9fb Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 21 May 2018 21:21:28 +0200 Subject: [PATCH 100/108] Catch uncaught exception detected by Coverity Scan --- src/utils/front-end-cal/main.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/utils/front-end-cal/main.cc b/src/utils/front-end-cal/main.cc index cbdb6d28b..6467dac25 100644 --- a/src/utils/front-end-cal/main.cc +++ b/src/utils/front-end-cal/main.cc @@ -477,7 +477,19 @@ int main(int argc, char** argv) if (global_gps_ephemeris_map.size() > 0) { std::map Eph_map; - Eph_map = global_gps_ephemeris_map.get_map_copy(); + try + { + Eph_map = global_gps_ephemeris_map.get_map_copy(); + } + catch (const boost::exception& e) + { + std::cout << "Exception in getting Global ephemeris map" << std::endl; + delete acquisition; + delete gnss_synchro; + google::ShutDownCommandLineFlags(); + std::cout << "GNSS-SDR Front-end calibration program ended." << std::endl; + return 0; + } current_TOW = Eph_map.begin()->second.d_TOW; time_t t = utc_time(Eph_map.begin()->second.i_GPS_week, (long int)current_TOW); From bbaa660f66bc2750f9954bb9bc0ab6697901af34 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 21 May 2018 21:27:06 +0200 Subject: [PATCH 101/108] Make reading of environment variable safer --- src/tests/common-files/gnuplot_i.h | 71 ++++++++++++++++-------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/src/tests/common-files/gnuplot_i.h b/src/tests/common-files/gnuplot_i.h index 0c9e282a7..6bb6d7d4f 100644 --- a/src/tests/common-files/gnuplot_i.h +++ b/src/tests/common-files/gnuplot_i.h @@ -56,6 +56,7 @@ #include #include #include // for getenv() +#include // for strncpy #include #include // for std::list @@ -1962,44 +1963,48 @@ bool Gnuplot::get_program_path() char *path; // Retrieves a C string containing the value of environment variable PATH path = std::getenv("PATH"); - - if (path == NULL || std::char_traits::length(path) > 4096 * sizeof(char)) + char secured_path[4096]; + size_t len = strlen(path); + if (path && len < 4046 * sizeof(char)) { - throw GnuplotException("Path is not set"); + strncpy(secured_path, path, len); } else { - std::list ls; - std::string path_str(path); - - //split path (one long string) into list ls of strings -#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) - stringtok(ls, path_str, ";"); -#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) - stringtok(ls, path_str, ":"); -#endif - - // scan list for Gnuplot program files - for (std::list::const_iterator i = ls.begin(); - i != ls.end(); ++i) - { - tmp = (*i) + "/" + Gnuplot::m_sGNUPlotFileName; -#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) - if (Gnuplot::file_exists(tmp, 0)) // check existence -#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) - if (Gnuplot::file_exists(tmp, 1)) // check existence and execution permission -#endif - { - Gnuplot::m_sGNUPlotPath = *i; // set m_sGNUPlotPath - return true; - } - } - - tmp = "Can't find gnuplot neither in PATH nor in \"" + - Gnuplot::m_sGNUPlotPath + "\""; - Gnuplot::m_sGNUPlotPath = ""; - throw GnuplotException(tmp); + throw GnuplotException("Path is not set or it is too long"); } + secured_path[len] = '\0'; + std::string path_str(secured_path); + + std::list ls; + + //split path (one long string) into list ls of strings +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + stringtok(ls, path_str, ";"); +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + stringtok(ls, path_str, ":"); +#endif + + // scan list for Gnuplot program files + for (std::list::const_iterator i = ls.begin(); + i != ls.end(); ++i) + { + tmp = (*i) + "/" + Gnuplot::m_sGNUPlotFileName; +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) + if (Gnuplot::file_exists(tmp, 0)) // check existence +#elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + if (Gnuplot::file_exists(tmp, 1)) // check existence and execution permission +#endif + { + Gnuplot::m_sGNUPlotPath = *i; // set m_sGNUPlotPath + return true; + } + } + + tmp = "Can't find gnuplot neither in PATH nor in \"" + + Gnuplot::m_sGNUPlotPath + "\""; + Gnuplot::m_sGNUPlotPath = ""; + throw GnuplotException(tmp); } From 13f62ead1bc734e6c96709b32039c0cc3e462dae Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 21 May 2018 22:18:19 +0200 Subject: [PATCH 102/108] Fix warning in gcc 8.1.0 --- src/tests/common-files/gnuplot_i.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/common-files/gnuplot_i.h b/src/tests/common-files/gnuplot_i.h index 6bb6d7d4f..549230c4a 100644 --- a/src/tests/common-files/gnuplot_i.h +++ b/src/tests/common-files/gnuplot_i.h @@ -1967,7 +1967,7 @@ bool Gnuplot::get_program_path() size_t len = strlen(path); if (path && len < 4046 * sizeof(char)) { - strncpy(secured_path, path, len); + strncpy(secured_path, path, len - 1); } else { From b76a3ad3999920ba07d4d55710ea030d09203271 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 21 May 2018 22:56:56 +0200 Subject: [PATCH 103/108] Fix warning in gcc 8.1.0 --- src/tests/common-files/gnuplot_i.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/common-files/gnuplot_i.h b/src/tests/common-files/gnuplot_i.h index 549230c4a..0fbc352b0 100644 --- a/src/tests/common-files/gnuplot_i.h +++ b/src/tests/common-files/gnuplot_i.h @@ -1967,7 +1967,7 @@ bool Gnuplot::get_program_path() size_t len = strlen(path); if (path && len < 4046 * sizeof(char)) { - strncpy(secured_path, path, len - 1); + strncpy(secured_path, path, sizeof(secured_path)); } else { From 588edaef66b198b8cd8d17d5b4bf5a7585c16428 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 22 May 2018 00:07:06 +0200 Subject: [PATCH 104/108] Update links --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index d056d3313..6c8773727 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Once you have installed these packages, you can jump directly to [download the s ### Alternative 2: Install dependencies using PyBOMBS -This option is adequate if you are interested in development, in working with the most recent versions of software dependencies, want more fine tuning on the installed versions, or simply in building everything from the scratch just for the fun of it. In such cases, we recommend to use [PyBOMBS](http://gnuradio.org/pybombs "Python Build Overlay Managed Bundle System wiki") (Python Build Overlay Managed Bundle System), GNU Radio's meta-package manager tool that installs software from source, or whatever the local package manager is, that automatically does all the work for you. Please take a look at the configuration options and general PyBOMBS usage at https://github.com/gnuradio/pybombs. Here we provide a quick step-by-step tutorial. +This option is adequate if you are interested in development, in working with the most recent versions of software dependencies, want more fine tuning on the installed versions, or simply in building everything from the scratch just for the fun of it. In such cases, we recommend to use [PyBOMBS](https://github.com/gnuradio/pybombs "Python Build Overlay Managed Bundle System") (Python Build Overlay Managed Bundle System), GNU Radio's meta-package manager tool that installs software from source, or whatever the local package manager is, that automatically does all the work for you. Please take a look at the configuration options and general PyBOMBS usage at https://github.com/gnuradio/pybombs. Here we provide a quick step-by-step tutorial. First of all, install some basic packages: @@ -185,7 +185,7 @@ 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.500.0.tar.xz +$ wget https://sourceforge.net/projects/arma/files/armadillo-8.500.0.tar.xz $ tar xvfz armadillo-8.500.0.tar.xz $ cd armadillo-8.500.0 $ cmake . @@ -193,7 +193,7 @@ $ make $ sudo make install ~~~~~~ -The full stop separated from ```cmake``` by a space is important. [CMake](http://www.cmake.org/ "CMake's Homepage") will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS). +The full stop separated from ```cmake``` by a space is important. [CMake](https://cmake.org/ "CMake's Homepage") will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS). @@ -245,7 +245,7 @@ changing `/home/username/googletest-release-1.8.0/googletest` by the actual dire -#### Install the [GnuTLS](http://www.gnutls.org/ "GnuTLS's Homepage") or [OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage") libraries: +#### Install the [GnuTLS](https://www.gnutls.org/ "GnuTLS's Homepage") or [OpenSSL](https://www.openssl.org/ "OpenSSL's Homepage") libraries: ~~~~~~ $ sudo apt-get install libgnutls-openssl-dev # For Debian/Ubuntu/LinuxMint @@ -516,7 +516,7 @@ More details can be found in our tutorial about [GNSS-SDR configuration options ### macOS 10.13 (High Sierra) and 10.12 (Sierra), Mac OS X 10.11 (El Capitan), 10.10 (Yosemite) and 10.9 (Mavericks). -If you still have not installed [Xcode](http://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type: +If you still have not installed [Xcode](https://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type: ~~~~~~ $ xcode-select --install @@ -532,7 +532,7 @@ Software pre-requisites can be installed using either [Macports](#macports) or [ #### Macports -First, [install Macports](http://www.macports.org/install.php). If you are upgrading from a previous installation, please follow the [migration rules](http://trac.macports.org/wiki/Migration). +First, [install Macports](https://www.macports.org/install.php). If you are upgrading from a previous installation, please follow the [migration rules](https://trac.macports.org/wiki/Migration). In a terminal, type: @@ -625,7 +625,7 @@ GNSS-SDR comes with a library which is a module of the Vector-Optimized Library ###### Other package managers -GNU Radio and other dependencies can also be installed using other package managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink") or [Homebrew](http://brew.sh/ "Homebrew"). Since the version of Python that ships with OS X is great for learning but it is not good for development, you could have another Python executable in a non-standard location. If that is the case, you need to inform GNSS-SDR's configuration system by defining the `PYTHON_EXECUTABLE` variable as: +GNU Radio and other dependencies can also be installed using other package managers than Macports, such as [Fink](http://www.finkproject.org/ "Fink") or [Homebrew](https://brew.sh/ "Homebrew"). Since the version of Python that ships with OS X is great for learning but it is not good for development, you could have another Python executable in a non-standard location. If that is the case, you need to inform GNSS-SDR's configuration system by defining the `PYTHON_EXECUTABLE` variable as: ~~~~~~ cmake -DPYTHON_EXECUTABLE=/path/to/bin/python ../ @@ -646,7 +646,7 @@ Other builds --------- * **Docker container**: A technology providing operating-system-level virtualization to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud. Visit [https://github.com/carlesfernandez/docker-gnsssdr](https://github.com/carlesfernandez/docker-gnsssdr) or [https://github.com/carlesfernandez/docker-pybombs-gnsssdr](https://github.com/carlesfernandez/docker-pybombs-gnsssdr) for instructions. -* **Snap packages**: [Snaps](http://snapcraft.io) are universal Linux packages aimed to work on any distribution or device, from IoT devices to servers, desktops to mobile devices. Visit [https://github.com/carlesfernandez/snapcraft-sandbox](https://github.com/carlesfernandez/snapcraft-sandbox) for instructions. +* **Snap packages**: [Snaps](https://snapcraft.io) are universal Linux packages aimed to work on any distribution or device, from IoT devices to servers, desktops to mobile devices. Visit [https://github.com/carlesfernandez/snapcraft-sandbox](https://github.com/carlesfernandez/snapcraft-sandbox) for instructions. * **GNSS-SDR in embedded platforms**: we provide a Software Development Kit (SDK) based on [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page) for cross-compiling GNSS-SDR in your desktop computer and for producing executables that can run in embedded platforms, such as a Zedboard or a Raspberry Pi 3. Visit [Cross-compiling GNSS-SDR](https://gnss-sdr.org/docs/tutorials/cross-compiling/) for instructions. @@ -694,11 +694,11 @@ Getting started 1. After building the code, you will find the ```gnss-sdr``` executable file at gnss-sdr/install. You can make it available everywhere else by ```sudo make install```. Run the profilers ```volk_profile``` and ```volk_gnsssdr_profile``` for testing all available VOLK kernels for each architecture supported by your processor. This only has to be done once. 2. In post-processing mode, you have to provide a captured GNSS signal file. 1. The signal file can be easily recorded using the GNU Radio file sink in ```gr_complex``` mode. - 2. You will need a GPS active antenna, a [USRP](http://www.ettus.com/product) and a suitable USRP daughter board to receive GPS L1 C/A signals. GNSS-SDR require to have at least 2 MHz of bandwidth in 1.57542 GHz. (remember to enable the DC bias with the daughter board jumper). + 2. You will need a GPS active antenna, a [USRP](https://www.ettus.com/product) and a suitable USRP daughter board to receive GPS L1 C/A signals. GNSS-SDR require to have at least 2 MHz of bandwidth in 1.57542 GHz. (remember to enable the DC bias with the daughter board jumper). We use a [DBSRX2](https://www.ettus.com/product/details/DBSRX2) to do the task, but you can try the newer Ettus' daughter boards as well. 3. The easiest way to capture a signal file is to use the GNU Radio Companion GUI. Only two blocks are needed: a USRP signal source connected to complex float file sink. You need to tune the USRP central frequency and decimation factor using USRP signal source properties box. We suggest using a decimation factor of 20 if you use the USRP2. This will give you 100/20 = 5 MSPS which will be enough to receive GPS L1 C/A signals. The front-end gain should also be configured. In our test with the DBSRX2 we obtained good results with ```G=50```. 4. Capture at least 80 seconds of signal in open sky conditions. During the process, be aware of USRP driver buffer underruns messages. If your hard disk is not fast enough to write data at this speed you can capture to a virtual RAM drive. 80 seconds of signal at 5 MSPS occupies less than 3 Gbytes using ```gr_complex```. - 5. If you have no access to an RF front-end, you can download a sample raw data file (that contains GPS and Galileo signals) from [here](http://sourceforge.net/projects/gnss-sdr/files/data/). + 5. If you have no access to an RF front-end, you can download a sample raw data file (that contains GPS and Galileo signals) from [here](https://sourceforge.net/projects/gnss-sdr/files/data/). 3. You are ready to configure the receiver to use your captured file among other parameters: 1. The default configuration file resides at [/usr/local/share/gnss-sdr/conf/default.conf](./conf/gnss-sdr.conf). 2. You need to review/modify at least the following settings: @@ -764,7 +764,7 @@ The name of these parameters can be anything but one reserved word: implementati SignalConditioner.implementation=Pass_Through ~~~~~~ -Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in the [INI format](http://en.wikipedia.org/wiki/INI_file)). +Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in the [INI format](https://en.wikipedia.org/wiki/INI_file)). @@ -875,7 +875,7 @@ SignalSource.big_endian_bytes=false ***Example: UHD Signal Source*** -The user may prefer to use a [UHD](http://code.ettus.com/redmine/ettus/projects/uhd/wiki)-compatible RF front-end and try real-time processing. For instance, for a USRP1 + DBSRX daughterboard, use: +The user may prefer to use a [UHD](https://files.ettus.com/manual/)-compatible RF front-end and try real-time processing. For instance, for a USRP1 + DBSRX daughterboard, use: ~~~~~~ ;######### SIGNAL_SOURCE CONFIG ############ @@ -1031,7 +1031,7 @@ More documentation at the [Data Type Adapter Blocks page](https://gnss-sdr.org/d #### Input filter -This block filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](http://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired response on those bands, and the weight given to the error in those bands. +This block filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](https://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired response on those bands, and the weight given to the error in those bands. The block can be configured like this: @@ -1301,7 +1301,7 @@ More documentation at the [Observables Blocks page](https://gnss-sdr.org/docs/sp #### Computation of Position, Velocity and Time -Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute simple least square solutions (stored in GIS-friendly formats such as [GeoJSON](http://geojson.org/geojson-spec.html) and [KML](http://www.opengeospatial.org/standards/kml), or transmitted via serial port as [NMEA 0183](https://en.wikipedia.org/wiki/NMEA_0183) messages), and leaves room for more sophisticated positioning methods by storing observables and navigation data in [RINEX](https://en.wikipedia.org/wiki/RINEX) files (v2.11 or v3.02), and generating [RTCM](http://www.rtcm.org "Radio Technical Commission for Maritime Services") 3.2 messages that can be disseminated through the Internet in real time. +Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute simple least square solutions (stored in GIS-friendly formats such as [GeoJSON](https://tools.ietf.org/html/rfc7946) and [KML](http://www.opengeospatial.org/standards/kml), or transmitted via serial port as [NMEA 0183](https://en.wikipedia.org/wiki/NMEA_0183) messages), and leaves room for more sophisticated positioning methods by storing observables and navigation data in [RINEX](https://en.wikipedia.org/wiki/RINEX) files (v2.11 or v3.02), and generating [RTCM](http://www.rtcm.org "Radio Technical Commission for Maritime Services") 3.2 messages that can be disseminated through the Internet in real time. The common interface is [PvtInterface](./src/core/interfaces/pvt_interface.h). @@ -1332,18 +1332,18 @@ PVT.rtcm_MT1077_rate_ms=1000 **Notes on the output formats:** - * **GeoJSON** is a geospatial data interchange format based on JavaScript Object Notation (JSON) supported by numerous mapping and GIS software packages, including [OpenLayers](http://openlayers.org), [Leaflet](http://leafletjs.com), [MapServer](http://www.mapserver.org), [GeoServer](http://geoserver.org), [GeoDjango](https://www.djangoproject.com), [GDAL](http://www.gdal.org), and [CartoDB](https://cartodb.com). It is also possible to use GeoJSON with [PostGIS](http://postgis.net) and [Mapnik](http://mapnik.org), both of which handle the format via the GDAL OGR conversion library. The [Google Maps Javascript API](https://developers.google.com/maps/documentation/javascript/) v3 directly supports the [integration of GeoJSON data layers](https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple), and [GitHub also supports GeoJSON rendering](https://github.com/blog/1528-there-s-a-map-for-that). + * **GeoJSON** is a geospatial data interchange format based on JavaScript Object Notation (JSON) supported by numerous mapping and GIS software packages, including [OpenLayers](https://openlayers.org), [Leaflet](https://leafletjs.com), [MapServer](http://www.mapserver.org), [GeoServer](http://geoserver.org), [GeoDjango](https://www.djangoproject.com), [GDAL](http://www.gdal.org), and [CartoDB](https://cartodb.com). It is also possible to use GeoJSON with [PostGIS](https://postgis.net/) and [Mapnik](http://mapnik.org), both of which handle the format via the GDAL OGR conversion library. The [Google Maps Javascript API](https://developers.google.com/maps/documentation/javascript/) v3 directly supports the [integration of GeoJSON data layers](https://developers.google.com/maps/documentation/javascript/examples/layer-data-simple), and [GitHub also supports GeoJSON rendering](https://github.com/blog/1528-there-s-a-map-for-that). - * **KML** (Keyhole Markup Language) is an XML grammar used to encode and transport representations of geographic data for display in an earth browser. KML is an open standard officially named the OpenGIS KML Encoding Standard (OGC KML), and it is maintained by the Open Geospatial Consortium, Inc. (OGC). KML files can be displayed in geobrowsers such as [Google Earth](https://www.google.com/earth/), [Marble](https://marble.kde.org), [osgEarth](http://osgearth.org), or used with the [NASA World Wind SDK for Java](http://worldwind.arc.nasa.gov/java/). + * **KML** (Keyhole Markup Language) is an XML grammar used to encode and transport representations of geographic data for display in an earth browser. KML is an open standard officially named the OpenGIS KML Encoding Standard (OGC KML), and it is maintained by the Open Geospatial Consortium, Inc. (OGC). KML files can be displayed in geobrowsers such as [Google Earth](https://www.google.com/earth/), [Marble](https://marble.kde.org), [osgEarth](http://osgearth.org), or used with the [NASA World Wind SDK for Java](https://worldwind.arc.nasa.gov/java/). - * **NMEA 0183** is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the U.S. [National Marine Electronics Association](http://www.nmea.org/). The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data are transmitted in a *sentence* from one *talker* to multiple *listeners* at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port. At the application layer, the standard also defines the contents of each sentence (message) type, so that all listeners can parse messages accurately. Those messages can be sent through the serial port (that could be for instance a Bluetooth link) and be used/displayed by a number of software applications such as [gpsd](http://www.catb.org/gpsd/ "The UNIX GPS daemon"), [JOSM](https://josm.openstreetmap.de/ "The Java OpenStreetMap Editor"), [OpenCPN](http://opencpn.org/ocpn/ "Open Chart Plotter Navigator"), and many others (and maybe running on other devices). + * **NMEA 0183** is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the U.S. [National Marine Electronics Association](http://www.nmea.org/). The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data are transmitted in a *sentence* from one *talker* to multiple *listeners* at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port. At the application layer, the standard also defines the contents of each sentence (message) type, so that all listeners can parse messages accurately. Those messages can be sent through the serial port (that could be for instance a Bluetooth link) and be used/displayed by a number of software applications such as [gpsd](http://www.catb.org/gpsd/ "The UNIX GPS daemon"), [JOSM](https://josm.openstreetmap.de/ "The Java OpenStreetMap Editor"), [OpenCPN](https://opencpn.org/ "Open Chart Plotter Navigator"), and many others (and maybe running on other devices). * **RINEX** (Receiver Independent Exchange Format) is an interchange format for raw satellite navigation system data, covering observables and the information contained in the navigation message broadcast by GNSS satellites. This allows the user to post-process the received data to produce a more accurate result (usually with other data unknown to the original receiver, such as better models of the atmospheric conditions at time of measurement). RINEX files can be used by software packages such as [GPSTk](http://www.gpstk.org), [RTKLIB](http://www.rtklib.com/) and [gLAB](http://gage14.upc.es/gLAB/). GNSS-SDR by default generates RINEX version [3.02](https://igscb.jpl.nasa.gov/igscb/data/format/rinex302.pdf). If [2.11](https://igscb.jpl.nasa.gov/igscb/data/format/rinex211.txt) is needed, it can be requested through the `rinex_version` parameter in the configuration file: ~~~~~~ PVT.rinex_version=2 ~~~~~~ -* **RTCM SC-104** provides standards that define the data structure for differential GNSS correction information for a variety of differential correction applications. Developed by the Radio Technical Commission for Maritime Services ([RTCM](http://www.rtcm.org/overview.php#Standards "Radio Technical Commission for Maritime Services")), they have become an industry standard for communication of correction information. GNSS-SDR implements RTCM version 3.2, defined in the document *RTCM 10403.2, Differential GNSS (Global Navigation Satellite Systems) Services - Version 3* (February 1, 2013), which can be [purchased online](https://ssl29.pair.com/dmarkle/puborder.php?show=3 "RTCM Online Publication Order Form"). By default, the generated RTCM binary messages are dumped into a text file in hexadecimal format. However, GNSS-SDR is equipped with a TCP/IP server, acting as an NTRIP source that can feed an NTRIP server. NTRIP (Networked Transport of RTCM via Internet Protocol) is an open standard protocol that can be freely downloaded from [BKG](http://igs.bkg.bund.de/root_ftp/NTRIP/documentation/NtripDocumentation.pdf "Networked Transport of RTCM via Internet Protocol (Ntrip) Version 1.0"), and it is designed for disseminating differential correction data (*e.g.* in the RTCM-104 format) or other kinds of GNSS streaming data to stationary or mobile users over the Internet. The TCP/IP server can be enabled by setting ```PVT.flag_rtcm_server=true``` in the configuration file, and will be active during the execution of the software receiver. By default, the server will operate on port 2101 (which is the recommended port for RTCM services according to the Internet Assigned Numbers Authority, [IANA](http://www.iana.org/assignments/service-names-port-numbers "Service Name and Transport Protocol Port Number Registry")), and will identify the Reference Station with ID=1234. This behaviour can be changed in the configuration file: +* **RTCM SC-104** provides standards that define the data structure for differential GNSS correction information for a variety of differential correction applications. Developed by the Radio Technical Commission for Maritime Services ([RTCM](http://www.rtcm.org/differential-global-navigation-satellite--dgnss--standards.html "Radio Technical Commission for Maritime Services")), they have become an industry standard for communication of correction information. GNSS-SDR implements RTCM version 3.2, defined in the document *RTCM 10403.2, Differential GNSS (Global Navigation Satellite Systems) Services - Version 3* (February 1, 2013), which can be [purchased online](https://ssl29.pair.com/dmarkle/puborder.php?show=3 "RTCM Online Publication Order Form"). By default, the generated RTCM binary messages are dumped into a text file in hexadecimal format. However, GNSS-SDR is equipped with a TCP/IP server, acting as an NTRIP source that can feed an NTRIP server. NTRIP (Networked Transport of RTCM via Internet Protocol) is an open standard protocol that can be freely downloaded from [BKG](https://igs.bkg.bund.de/root_ftp/NTRIP/documentation/NtripDocumentation.pdf "Networked Transport of RTCM via Internet Protocol (Ntrip) Version 1.0"), and it is designed for disseminating differential correction data (*e.g.* in the RTCM-104 format) or other kinds of GNSS streaming data to stationary or mobile users over the Internet. The TCP/IP server can be enabled by setting ```PVT.flag_rtcm_server=true``` in the configuration file, and will be active during the execution of the software receiver. By default, the server will operate on port 2101 (which is the recommended port for RTCM services according to the Internet Assigned Numbers Authority, [IANA](https://www.iana.org/assignments/service-names-port-numbers/ "Service Name and Transport Protocol Port Number Registry")), and will identify the Reference Station with ID=1234. This behaviour can be changed in the configuration file: ~~~~~~ PVT.flag_rtcm_server=true PVT.rtcm_tcp_port=2102 @@ -1402,9 +1402,9 @@ Ok, now what? In order to start using GNSS-SDR, you may want to populate ```gnss-sdr/data``` folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output of a Radio Frequency front-end's Analog-to-Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intermediate frequency (on the order of MHz). Prepare your configuration file, and then you are ready for running ```gnss-sdr --config_file=your_configuration.conf```, and seeing how the file is processed. -Another interesting option is working in real-time with an RF front-end. We provide drivers for UHD-compatible hardware such as the [USRP family](http://www.ettus.com/product), for OsmoSDR and other front-ends (HackRF, bladeRF, LimeSDR), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time. +Another interesting option is working in real-time with an RF front-end. We provide drivers for UHD-compatible hardware such as the [USRP family](https://www.ettus.com/product), for OsmoSDR and other front-ends (HackRF, bladeRF, LimeSDR), for the GN3S v2 USB dongle and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time. -You can find more information at the [GNSS-SDR Documentation page](https://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers). +You can find more information at the [GNSS-SDR Documentation page](https://gnss-sdr.org/docs/) or directly asking to the [GNSS-SDR Developers mailing list](https://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers). You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](https://gnss-sdr.org/contribute/). If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. Please do not hesitate to [contact them](https://gnss-sdr.org/team/). From bdce3c20d1f804a7bb25020ab6e25ac11c90abbb Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 22 May 2018 00:29:33 +0200 Subject: [PATCH 105/108] Catch exception --- src/utils/front-end-cal/main.cc | 37 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/utils/front-end-cal/main.cc b/src/utils/front-end-cal/main.cc index 6467dac25..db8e8baae 100644 --- a/src/utils/front-end-cal/main.cc +++ b/src/utils/front-end-cal/main.cc @@ -471,38 +471,37 @@ int main(int argc, char** argv) << elapsed_seconds.count() << " [seconds]" << std::endl; - //6. find TOW from SUPL assistance - + // 6. find TOW from SUPL assistance double current_TOW = 0; - if (global_gps_ephemeris_map.size() > 0) + try { - std::map Eph_map; - try + if (global_gps_ephemeris_map.size() > 0) { + std::map Eph_map; Eph_map = global_gps_ephemeris_map.get_map_copy(); + current_TOW = Eph_map.begin()->second.d_TOW; + + time_t t = utc_time(Eph_map.begin()->second.i_GPS_week, (long int)current_TOW); + + fprintf(stdout, "Reference Time:\n"); + fprintf(stdout, " GPS Week: %d\n", Eph_map.begin()->second.i_GPS_week); + fprintf(stdout, " GPS TOW: %ld %lf\n", (long int)current_TOW, (long int)current_TOW * 0.08); + fprintf(stdout, " ~ UTC: %s", ctime(&t)); + std::cout << "Current TOW obtained from SUPL assistance = " << current_TOW << std::endl; } - catch (const boost::exception& e) + else { - std::cout << "Exception in getting Global ephemeris map" << std::endl; + std::cout << "Unable to get Ephemeris SUPL assistance. TOW is unknown!" << std::endl; delete acquisition; delete gnss_synchro; google::ShutDownCommandLineFlags(); std::cout << "GNSS-SDR Front-end calibration program ended." << std::endl; return 0; } - current_TOW = Eph_map.begin()->second.d_TOW; - - time_t t = utc_time(Eph_map.begin()->second.i_GPS_week, (long int)current_TOW); - - fprintf(stdout, "Reference Time:\n"); - fprintf(stdout, " GPS Week: %d\n", Eph_map.begin()->second.i_GPS_week); - fprintf(stdout, " GPS TOW: %ld %lf\n", (long int)current_TOW, (long int)current_TOW * 0.08); - fprintf(stdout, " ~ UTC: %s", ctime(&t)); - std::cout << "Current TOW obtained from SUPL assistance = " << current_TOW << std::endl; } - else + catch (const boost::exception& e) { - std::cout << "Unable to get Ephemeris SUPL assistance. TOW is unknown!" << std::endl; + std::cout << "Exception in getting Global ephemeris map" << std::endl; delete acquisition; delete gnss_synchro; google::ShutDownCommandLineFlags(); @@ -510,7 +509,7 @@ int main(int argc, char** argv) return 0; } - //Get user position from config file (or from SUPL using GSM Cell ID) + // Get user position from config file (or from SUPL using GSM Cell ID) double lat_deg = configuration->property("GNSS-SDR.init_latitude_deg", 41.0); double lon_deg = configuration->property("GNSS-SDR.init_longitude_deg", 2.0); double altitude_m = configuration->property("GNSS-SDR.init_altitude_m", 100); From bc86d7d665c35d072ef3f8b5d97f1f4ab548ff10 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 22 May 2018 00:32:00 +0200 Subject: [PATCH 106/108] Avoid dereference before null check --- src/tests/common-files/gnuplot_i.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/common-files/gnuplot_i.h b/src/tests/common-files/gnuplot_i.h index 0fbc352b0..950018217 100644 --- a/src/tests/common-files/gnuplot_i.h +++ b/src/tests/common-files/gnuplot_i.h @@ -1965,7 +1965,7 @@ bool Gnuplot::get_program_path() path = std::getenv("PATH"); char secured_path[4096]; size_t len = strlen(path); - if (path && len < 4046 * sizeof(char)) + if (len > 0 && len < 4046 * sizeof(char)) { strncpy(secured_path, path, sizeof(secured_path)); } From 9b5907b62d2ee9a7de8d9378c54a3f4154792b0b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 22 May 2018 20:55:03 +0200 Subject: [PATCH 107/108] Finally get rid of Coverity Scan tainted data issue --- src/tests/common-files/gnuplot_i.h | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/tests/common-files/gnuplot_i.h b/src/tests/common-files/gnuplot_i.h index 950018217..2df3a9c92 100644 --- a/src/tests/common-files/gnuplot_i.h +++ b/src/tests/common-files/gnuplot_i.h @@ -59,6 +59,7 @@ #include // for strncpy #include #include // for std::list +#include #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) @@ -1960,21 +1961,16 @@ bool Gnuplot::get_program_path() // // second look in PATH for Gnuplot // - char *path; + const char *path; // Retrieves a C string containing the value of environment variable PATH path = std::getenv("PATH"); - char secured_path[4096]; - size_t len = strlen(path); - if (len > 0 && len < 4046 * sizeof(char)) + std::stringstream s; + s << path; + if (s.fail()) { - strncpy(secured_path, path, sizeof(secured_path)); + throw GnuplotException("Path is not set"); } - else - { - throw GnuplotException("Path is not set or it is too long"); - } - secured_path[len] = '\0'; - std::string path_str(secured_path); + std::string path_str = s.str(); std::list ls; @@ -2106,17 +2102,24 @@ std::string Gnuplot::create_tmpfile(std::ofstream &tmp) // // open temporary files for output // + #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) if (_mktemp(name) == NULL) #elif defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + mode_t mask = umask(S_IXUSR | S_IRWXG | S_IRWXO); if (mkstemp(name) == -1) #endif { std::ostringstream except; except << "Cannot create temporary file \"" << name << "\""; +#if defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + umask(mask); +#endif throw GnuplotException(except.str()); } - +#if defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) + umask(mask); +#endif tmp.open(name); if (tmp.bad()) { From f2ff936fd014c2dee621fac1fbf2173026ecddc0 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 22 May 2018 21:21:18 +0200 Subject: [PATCH 108/108] Improve handling of tainted data --- .../volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc index 4b4ec2a2f..113308e71 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/testqa.cc @@ -25,6 +25,7 @@ #include // for operator<<, basic_ostream, endl, char... #include // IWYU pragma: keep #include // for map, map<>::iterator, _Rb_tree_iterator +#include // for stringstream #include // for string, operator<< #include // for pair #include // for vector @@ -48,15 +49,16 @@ int main(int argc, char* argv[]) std::vector results; if (argc > 1) { - const size_t len = std::char_traits::length(argv[1]); - if (len == 0 || len > 2046) + std::stringstream ss; + ss << argv[1]; + if (ss.fail()) { - std::cerr << "Test name is too long." << std::endl; + std::cerr << "Test name not correctly set." << std::endl; return 0; } for (unsigned int ii = 0; ii < test_cases.size(); ++ii) { - if (std::string(argv[1]) == test_cases[ii].name()) + if (ss.str() == test_cases[ii].name()) { volk_gnsssdr_test_case_t test_case = test_cases[ii]; if (run_volk_gnsssdr_tests(test_case.desc(), test_case.kernel_ptr(),