1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-10-01 00:10:50 +00:00

Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into rx_clock_correction

This commit is contained in:
Javier Arribas 2019-04-28 19:42:42 +02:00
commit 3e36301ab5
16 changed files with 54 additions and 72 deletions

View File

@ -695,7 +695,7 @@ endif()
################################################################################ ################################################################################
# GNU Radio - https://gnuradio.org # GNU Radio - https://gnuradio.org
################################################################################ ################################################################################
set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS FFT FILTER PMT) set(GR_REQUIRED_COMPONENTS RUNTIME PMT BLOCKS FFT FILTER ANALOG)
find_package(UHD) find_package(UHD)
set_package_properties(UHD PROPERTIES set_package_properties(UHD PROPERTIES
@ -715,14 +715,14 @@ endif()
find_package(GNURADIO) find_package(GNURADIO)
set_package_properties(GNURADIO PROPERTIES set_package_properties(GNURADIO PROPERTIES
URL "https://www.gnuradio.org/" URL "https://www.gnuradio.org/"
DESCRIPTION "The free and open software radio ecosystem" DESCRIPTION "The free and open software radio ecosystem (found: v${GNURADIO_VERSION})"
PURPOSE "Implements flowgraph scheduler, provides some processing blocks and classes to create new ones." PURPOSE "Implements flowgraph scheduler, provides some processing blocks and classes to create new ones."
TYPE REQUIRED TYPE REQUIRED
) )
if(PC_GNURADIO_RUNTIME_VERSION) if(GNURADIO_VERSION)
if(PC_GNURADIO_RUNTIME_VERSION VERSION_LESS ${GNSSSDR_GNURADIO_MIN_VERSION}) if(GNURADIO_VERSION VERSION_LESS ${GNSSSDR_GNURADIO_MIN_VERSION})
unset(GNURADIO_RUNTIME_FOUND) unset(GNURADIO_RUNTIME_FOUND)
message(STATUS "The GNU Radio version installed in your system is too old.") message(STATUS "The GNU Radio version installed in your system (v${GNURADIO_VERSION}) is too old.")
endif() endif()
endif() endif()
if(NOT GNURADIO_RUNTIME_FOUND) if(NOT GNURADIO_RUNTIME_FOUND)
@ -730,15 +730,14 @@ if(NOT GNURADIO_RUNTIME_FOUND)
if(OS_IS_LINUX) if(OS_IS_LINUX)
message("Go to https://github.com/gnuradio/pybombs") message("Go to https://github.com/gnuradio/pybombs")
message("and follow the instructions to install GNU Radio in your system.") message("and follow the instructions to install GNU Radio in your system.")
message(FATAL_ERROR "GNU Radio ${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
endif() endif()
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
message("You can install it easily via Macports:") message("You can install it easily via Macports:")
message(" sudo port install gnuradio ") message(" sudo port install gnuradio ")
message("Alternatively, you can use homebrew:") message("Alternatively, you can use homebrew:")
message(" brew install gnuradio") message(" brew install gnuradio")
message(FATAL_ERROR "GNU Radio ${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
endif() endif()
message(FATAL_ERROR "GNU Radio v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr.")
else() else()
if(NOT TARGET Gnuradio::runtime) if(NOT TARGET Gnuradio::runtime)
add_library(Gnuradio::runtime SHARED IMPORTED) add_library(Gnuradio::runtime SHARED IMPORTED)
@ -1818,7 +1817,7 @@ endif()
find_package(Protobuf) find_package(Protobuf)
set_package_properties(Protobuf PROPERTIES set_package_properties(Protobuf PROPERTIES
URL "https://developers.google.com/protocol-buffers/" URL "https://developers.google.com/protocol-buffers/"
DESCRIPTION "A language-neutral, platform-neutral extensible mechanism for serializing structured data" DESCRIPTION "Structured data serialization mechanism"
PURPOSE "Used to serialize output data in a way that can be read by other applications." PURPOSE "Used to serialize output data in a way that can be read by other applications."
TYPE REQUIRED TYPE REQUIRED
) )

View File

@ -24,7 +24,7 @@ include(FindPackageHandleStandardArgs)
# if GR_REQUIRED_COMPONENTS is not defined, it will be set to the following list # if GR_REQUIRED_COMPONENTS is not defined, it will be set to the following list
if(NOT GR_REQUIRED_COMPONENTS) if(NOT GR_REQUIRED_COMPONENTS)
set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS DIGITAL FFT FILTER PMT FEC TRELLIS UHD) set(GR_REQUIRED_COMPONENTS RUNTIME PMT BLOCKS FFT FILTER ANALOG)
endif() endif()
# Allows us to use all .cmake files in this directory # Allows us to use all .cmake files in this directory
@ -43,9 +43,6 @@ macro(LIST_CONTAINS var value)
endforeach() endforeach()
endmacro() endmacro()
# Trick for feature_summary
set(GNURADIO_FOUND TRUE)
function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE) function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
list_contains(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_COMPONENTS}) list_contains(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_COMPONENTS})
if(NOT REQUIRED_MODULE) if(NOT REQUIRED_MODULE)
@ -150,24 +147,21 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
endfunction() endfunction()
gr_module(RUNTIME gnuradio-runtime gnuradio/top_block.h gnuradio-runtime) gr_module(RUNTIME gnuradio-runtime gnuradio/top_block.h gnuradio-runtime)
gr_module(ANALOG gnuradio-analog gnuradio/analog/api.h gnuradio-analog) gr_module(PMT gnuradio-runtime pmt/pmt.h gnuradio-pmt)
gr_module(AUDIO gnuradio-audio gnuradio/audio/api.h gnuradio-audio)
gr_module(BLOCKS gnuradio-blocks gnuradio/blocks/api.h gnuradio-blocks) gr_module(BLOCKS gnuradio-blocks gnuradio/blocks/api.h gnuradio-blocks)
gr_module(CHANNELS gnuradio-channels gnuradio/channels/api.h gnuradio-channels)
gr_module(DIGITAL gnuradio-digital gnuradio/digital/api.h gnuradio-digital)
gr_module(FCD gnuradio-fcd gnuradio/fcd_api.h gnuradio-fcd)
gr_module(FEC gnuradio-fec gnuradio/fec/api.h gnuradio-fec) gr_module(FEC gnuradio-fec gnuradio/fec/api.h gnuradio-fec)
gr_module(FFT gnuradio-fft gnuradio/fft/api.h gnuradio-fft) gr_module(FFT gnuradio-fft gnuradio/fft/api.h gnuradio-fft)
gr_module(FILTER gnuradio-filter gnuradio/filter/api.h gnuradio-filter) gr_module(FILTER gnuradio-filter gnuradio/filter/api.h gnuradio-filter)
gr_module(NOAA gnuradio-noaa gnuradio/noaa/api.h gnuradio-noaa) gr_module(ANALOG gnuradio-analog gnuradio/analog/api.h gnuradio-analog)
gr_module(PAGER gnuradio-pager gnuradio/pager/api.h gnuradio-pager) gr_module(DIGITAL gnuradio-digital gnuradio/digital/api.h gnuradio-digital)
gr_module(AUDIO gnuradio-audio gnuradio/audio/api.h gnuradio-audio)
gr_module(CHANNELS gnuradio-channels gnuradio/channels/api.h gnuradio-channels)
gr_module(QTGUI gnuradio-qtgui gnuradio/qtgui/api.h gnuradio-qtgui) gr_module(QTGUI gnuradio-qtgui gnuradio/qtgui/api.h gnuradio-qtgui)
gr_module(TRELLIS gnuradio-trellis gnuradio/trellis/api.h gnuradio-trellis) gr_module(TRELLIS gnuradio-trellis gnuradio/trellis/api.h gnuradio-trellis)
gr_module(UHD gnuradio-uhd gnuradio/uhd/api.h gnuradio-uhd) gr_module(UHD gnuradio-uhd gnuradio/uhd/api.h gnuradio-uhd)
gr_module(VOCODER gnuradio-vocoder gnuradio/vocoder/api.h gnuradio-vocoder) gr_module(VOCODER gnuradio-vocoder gnuradio/vocoder/api.h gnuradio-vocoder)
gr_module(WAVELET gnuradio-wavelet gnuradio/wavelet/api.h gnuradio-wavelet) gr_module(WAVELET gnuradio-wavelet gnuradio/wavelet/api.h gnuradio-wavelet)
gr_module(WXGUI gnuradio-wxgui gnuradio/wxgui/api.h gnuradio-wxgui)
gr_module(PMT gnuradio-runtime pmt/pmt.h gnuradio-pmt)
list(REMOVE_DUPLICATES GNURADIO_ALL_INCLUDE_DIRS) list(REMOVE_DUPLICATES GNURADIO_ALL_INCLUDE_DIRS)
list(REMOVE_DUPLICATES GNURADIO_ALL_LIBRARIES) list(REMOVE_DUPLICATES GNURADIO_ALL_LIBRARIES)
@ -206,4 +200,7 @@ if(NOT PC_GNURADIO_RUNTIME_VERSION)
endif() endif()
# Trick for feature_summary # Trick for feature_summary
set(GNURADIO_FOUND TRUE) if(NOT DEFINED GNURADIO_FOUND)
set(GNURADIO_FOUND TRUE)
endif()
set(GNURADIO_VERSION ${PC_GNURADIO_RUNTIME_VERSION})

View File

@ -148,7 +148,6 @@ bool Rtklib_Solver::save_matfile()
sizeof(uint8_t) * number_of_uint8_vars + sizeof(uint8_t) * number_of_uint8_vars +
sizeof(float) * number_of_float_vars; sizeof(float) * number_of_float_vars;
std::ifstream dump_file; std::ifstream dump_file;
std::cout << "Generating .mat file for " << dump_filename << std::endl;
dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit); dump_file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
try try
{ {
@ -163,6 +162,7 @@ bool Rtklib_Solver::save_matfile()
int64_t num_epoch = 0LL; int64_t num_epoch = 0LL;
if (dump_file.is_open()) if (dump_file.is_open())
{ {
std::cout << "Generating .mat file for " << dump_filename << std::endl;
size = dump_file.tellg(); size = dump_file.tellg();
num_epoch = static_cast<int64_t>(size) / static_cast<int64_t>(epoch_size_bytes); num_epoch = static_cast<int64_t>(size) / static_cast<int64_t>(epoch_size_bytes);
dump_file.seekg(0, std::ios::beg); dump_file.seekg(0, std::ios::beg);

View File

@ -38,10 +38,9 @@
#include "tracking_interface.h" #include "tracking_interface.h"
#include <glog/logging.h> #include <glog/logging.h>
#include <cstring> // for memcpy #include <cstring> // for memcpy
#include <utility> #include <utility> // for std::move
// Constructor
Channel::Channel(ConfigurationInterface* configuration, uint32_t channel, std::shared_ptr<AcquisitionInterface> acq, Channel::Channel(ConfigurationInterface* configuration, uint32_t channel, std::shared_ptr<AcquisitionInterface> acq,
std::shared_ptr<TrackingInterface> trk, std::shared_ptr<TelemetryDecoderInterface> nav, std::shared_ptr<TrackingInterface> trk, std::shared_ptr<TelemetryDecoderInterface> nav,
std::string role, std::string implementation, gr::msg_queue::sptr queue) std::string role, std::string implementation, gr::msg_queue::sptr queue)
@ -120,7 +119,6 @@ Channel::Channel(ConfigurationInterface* configuration, uint32_t channel, std::s
} }
// Destructor
Channel::~Channel() = default; Channel::~Channel() = default;
@ -133,8 +131,9 @@ void Channel::connect(gr::top_block_sptr top_block)
trk_->connect(top_block); trk_->connect(top_block);
nav_->connect(top_block); nav_->connect(top_block);
//Synchronous ports // Synchronous ports
top_block->connect(trk_->get_right_block(), 0, nav_->get_left_block(), 0); top_block->connect(trk_->get_right_block(), 0, nav_->get_left_block(), 0);
// Message ports // Message ports
top_block->msg_connect(nav_->get_left_block(), pmt::mp("telemetry_to_trk"), trk_->get_right_block(), pmt::mp("telemetry_to_trk")); top_block->msg_connect(nav_->get_left_block(), pmt::mp("telemetry_to_trk"), trk_->get_right_block(), pmt::mp("telemetry_to_trk"));
DLOG(INFO) << "tracking -> telemetry_decoder"; DLOG(INFO) << "tracking -> telemetry_decoder";

View File

@ -34,6 +34,7 @@
#ifndef GNSS_SDR_CHANNEL_H_ #ifndef GNSS_SDR_CHANNEL_H_
#define GNSS_SDR_CHANNEL_H_ #define GNSS_SDR_CHANNEL_H_
#include "channel_fsm.h" #include "channel_fsm.h"
#include "channel_interface.h" #include "channel_interface.h"
#include "channel_msg_receiver_cc.h" #include "channel_msg_receiver_cc.h"
@ -51,7 +52,7 @@ class ConfigurationInterface;
class AcquisitionInterface; class AcquisitionInterface;
class TrackingInterface; class TrackingInterface;
class TelemetryDecoderInterface; class TelemetryDecoderInterface;
//class ChannelFsm;
/*! /*!
* \brief This class represents a GNSS channel. It wraps an AcquisitionInterface, * \brief This class represents a GNSS channel. It wraps an AcquisitionInterface,
@ -66,8 +67,8 @@ public:
Channel(ConfigurationInterface* configuration, uint32_t channel, std::shared_ptr<AcquisitionInterface> acq, Channel(ConfigurationInterface* configuration, uint32_t channel, std::shared_ptr<AcquisitionInterface> acq,
std::shared_ptr<TrackingInterface> trk, std::shared_ptr<TelemetryDecoderInterface> nav, std::shared_ptr<TrackingInterface> trk, std::shared_ptr<TelemetryDecoderInterface> nav,
std::string role, std::string implementation, gr::msg_queue::sptr queue); std::string role, std::string implementation, gr::msg_queue::sptr queue);
//! Virtual destructor
virtual ~Channel(); virtual ~Channel(); //!< Virtual destructor
void connect(gr::top_block_sptr top_block) override; //!< connects the tracking block to the top_block and to the telemetry void connect(gr::top_block_sptr top_block) override; //!< connects the tracking block to the top_block and to the telemetry
void disconnect(gr::top_block_sptr top_block) override; void disconnect(gr::top_block_sptr top_block) override;
@ -108,4 +109,4 @@ private:
std::mutex mx; std::mutex mx;
}; };
#endif /*GNSS_SDR_CHANNEL_H_*/ #endif // GNSS_SDR_CHANNEL_H_

View File

@ -62,7 +62,7 @@ target_include_directories(input_filter_adapters
${CMAKE_SOURCE_DIR}/src/core/interfaces ${CMAKE_SOURCE_DIR}/src/core/interfaces
) )
if(${PC_GNURADIO_RUNTIME_VERSION} VERSION_GREATER "3.7.20") if(NOT (GNURADIO_VERSION VERSION_LESS "3.8"))
target_compile_definitions(input_filter_adapters PUBLIC -DGR_GREATER_38=1) target_compile_definitions(input_filter_adapters PUBLIC -DGR_GREATER_38=1)
endif() endif()

View File

@ -52,7 +52,7 @@ target_include_directories(resampler_adapters
${CMAKE_SOURCE_DIR}/src/core/interfaces ${CMAKE_SOURCE_DIR}/src/core/interfaces
) )
if(${PC_GNURADIO_RUNTIME_VERSION} VERSION_GREATER "3.7.20") if(NOT (GNURADIO_VERSION VERSION_LESS "3.8"))
target_compile_definitions(resampler_adapters PUBLIC -DGR_GREATER_38=1) target_compile_definitions(resampler_adapters PUBLIC -DGR_GREATER_38=1)
endif() endif()

View File

@ -135,6 +135,8 @@ set(SIGNAL_SOURCE_ADAPTER_SOURCES
spir_gss6450_file_signal_source.cc spir_gss6450_file_signal_source.cc
rtl_tcp_signal_source.cc rtl_tcp_signal_source.cc
labsat_signal_source.cc labsat_signal_source.cc
two_bit_cpx_file_signal_source.cc
two_bit_packed_file_signal_source.cc
${OPT_DRIVER_SOURCES} ${OPT_DRIVER_SOURCES}
) )
@ -146,20 +148,11 @@ set(SIGNAL_SOURCE_ADAPTER_HEADERS
spir_gss6450_file_signal_source.h spir_gss6450_file_signal_source.h
rtl_tcp_signal_source.h rtl_tcp_signal_source.h
labsat_signal_source.h labsat_signal_source.h
two_bit_cpx_file_signal_source.h
two_bit_packed_file_signal_source.h
${OPT_DRIVER_HEADERS} ${OPT_DRIVER_HEADERS}
) )
if(PC_GNURADIO_RUNTIME_VERSION VERSION_GREATER 3.7.3)
set(SIGNAL_SOURCE_ADAPTER_SOURCES ${SIGNAL_SOURCE_ADAPTER_SOURCES}
two_bit_cpx_file_signal_source.cc
two_bit_packed_file_signal_source.cc
)
set(SIGNAL_SOURCE_ADAPTER_HEADERS ${SIGNAL_SOURCE_ADAPTER_HEADERS}
two_bit_cpx_file_signal_source.h
two_bit_packed_file_signal_source.h
)
endif()
list(SORT SIGNAL_SOURCE_ADAPTER_HEADERS) list(SORT SIGNAL_SOURCE_ADAPTER_HEADERS)
list(SORT SIGNAL_SOURCE_ADAPTER_SOURCES) list(SORT SIGNAL_SOURCE_ADAPTER_SOURCES)

View File

@ -35,11 +35,12 @@
#include <exception> #include <exception>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <utility>
labsat23_source_sptr labsat23_make_source_sptr(const char *signal_file_basename, int channel_selector, gr::msg_queue::sptr queue) labsat23_source_sptr labsat23_make_source_sptr(const char *signal_file_basename, int channel_selector, gr::msg_queue::sptr queue)
{ {
return labsat23_source_sptr(new labsat23_source(signal_file_basename, channel_selector, queue)); return labsat23_source_sptr(new labsat23_source(signal_file_basename, channel_selector, std::move(queue)));
} }
@ -48,7 +49,7 @@ labsat23_source::labsat23_source(const char *signal_file_basename,
gr::msg_queue::sptr queue) : gr::block("labsat23_source", gr::msg_queue::sptr queue) : gr::block("labsat23_source",
gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0),
gr::io_signature::make(1, 1, sizeof(gr_complex))), gr::io_signature::make(1, 1, sizeof(gr_complex))),
d_queue(queue) d_queue(std::move(queue))
{ {
if (channel_selector < 1 or channel_selector > 2) if (channel_selector < 1 or channel_selector > 2)
{ {

View File

@ -83,8 +83,7 @@ gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs(
// preamble bits to sampled symbols // preamble bits to sampled symbols
d_preamble_samples = static_cast<int32_t *>(volk_gnsssdr_malloc(d_samples_per_preamble * sizeof(int32_t), volk_gnsssdr_get_alignment())); d_preamble_samples = static_cast<int32_t *>(volk_gnsssdr_malloc(d_samples_per_preamble * sizeof(int32_t), volk_gnsssdr_get_alignment()));
d_frame_length_symbols = GPS_SUBFRAME_BITS * GPS_CA_TELEMETRY_SYMBOLS_PER_BIT; d_frame_length_symbols = GPS_SUBFRAME_BITS * GPS_CA_TELEMETRY_SYMBOLS_PER_BIT;
d_max_symbols_without_valid_frame = d_required_symbols * 10; //rise alarm 1 minute without valid tlm d_max_symbols_without_valid_frame = d_required_symbols * 10; // rise alarm 1 minute without valid tlm
d_page_part_symbols = static_cast<double *>(volk_gnsssdr_malloc(d_frame_length_symbols * sizeof(double), volk_gnsssdr_get_alignment()));
int32_t n = 0; int32_t n = 0;
for (int32_t i = 0; i < d_bits_per_preamble; i++) for (int32_t i = 0; i < d_bits_per_preamble; i++)
{ {
@ -127,7 +126,6 @@ gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs(
gps_l1_ca_telemetry_decoder_gs::~gps_l1_ca_telemetry_decoder_gs() gps_l1_ca_telemetry_decoder_gs::~gps_l1_ca_telemetry_decoder_gs()
{ {
volk_gnsssdr_free(d_preamble_samples); volk_gnsssdr_free(d_preamble_samples);
volk_gnsssdr_free(d_page_part_symbols);
if (d_dump_file.is_open() == true) if (d_dump_file.is_open() == true)
{ {
try try
@ -285,7 +283,7 @@ bool gps_l1_ca_telemetry_decoder_gs::decode_subframe()
// NEW GPS SUBFRAME HAS ARRIVED! // NEW GPS SUBFRAME HAS ARRIVED!
if (subframe_synchro_confirmation) if (subframe_synchro_confirmation)
{ {
int32_t subframe_ID = d_nav.subframe_decoder(subframe); //decode the subframe int32_t subframe_ID = d_nav.subframe_decoder(subframe); // decode the subframe
if (subframe_ID > 0 and subframe_ID < 6) if (subframe_ID > 0 and subframe_ID < 6)
{ {
std::cout << "New GPS NAV message received in channel " << this->d_channel << ": " std::cout << "New GPS NAV message received in channel " << this->d_channel << ": "
@ -377,7 +375,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
{ {
case 0: // no preamble information case 0: // no preamble information
{ {
//correlate with preamble // correlate with preamble
int32_t corr_value = 0; int32_t corr_value = 0;
if (d_symbol_history.size() >= GPS_CA_PREAMBLE_LENGTH_SYMBOLS) if (d_symbol_history.size() >= GPS_CA_PREAMBLE_LENGTH_SYMBOLS)
{ {
@ -405,7 +403,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__
} }
case 1: // possible preamble lock case 1: // possible preamble lock
{ {
//correlate with preamble // correlate with preamble
int32_t corr_value = 0; int32_t corr_value = 0;
int32_t preamble_diff = 0; int32_t preamble_diff = 0;
if (d_symbol_history.size() >= GPS_CA_PREAMBLE_LENGTH_SYMBOLS) if (d_symbol_history.size() >= GPS_CA_PREAMBLE_LENGTH_SYMBOLS)

View File

@ -62,6 +62,7 @@ public:
void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN
void set_channel(int channel); //!< Set receiver's channel void set_channel(int channel); //!< Set receiver's channel
void reset(); void reset();
/*! /*!
* \brief This is where all signal processing takes place * \brief This is where all signal processing takes place
*/ */
@ -76,15 +77,14 @@ private:
bool gps_word_parityCheck(uint32_t gpsword); bool gps_word_parityCheck(uint32_t gpsword);
bool decode_subframe(); bool decode_subframe();
// new
int32_t d_bits_per_preamble; int32_t d_bits_per_preamble;
int32_t d_samples_per_preamble; int32_t d_samples_per_preamble;
int32_t d_preamble_period_symbols; int32_t d_preamble_period_symbols;
int32_t *d_preamble_samples; int32_t *d_preamble_samples;
uint32_t d_required_symbols; uint32_t d_required_symbols;
uint32_t d_frame_length_symbols; uint32_t d_frame_length_symbols;
double *d_page_part_symbols;
bool flag_PLL_180_deg_phase_locked; bool flag_PLL_180_deg_phase_locked;
// navigation message vars // navigation message vars
Gps_Navigation_Message d_nav; Gps_Navigation_Message d_nav;
uint32_t d_prev_GPS_frame_4bytes; uint32_t d_prev_GPS_frame_4bytes;
@ -103,7 +103,6 @@ private:
bool d_flag_preamble; bool d_flag_preamble;
int32_t d_CRC_error_counter; int32_t d_CRC_error_counter;
Gnss_Satellite d_satellite; Gnss_Satellite d_satellite;
int32_t d_channel; int32_t d_channel;

View File

@ -100,8 +100,8 @@ void Exponential_Smoother::set_min_value(float value)
double Exponential_Smoother::smooth(double raw) double Exponential_Smoother::smooth(double raw)
{ {
float raw_f = static_cast<float>(raw); auto raw_f = static_cast<float>(raw);
double smooth_d = static_cast<double>((this)->smooth(raw_f)); auto smooth_d = static_cast<double>((this)->smooth(raw_f));
return smooth_d; return smooth_d;
} }
@ -116,7 +116,7 @@ float Exponential_Smoother::smooth(float raw)
init_buffer_.push_back(smoothed_value); init_buffer_.push_back(smoothed_value);
if (init_counter_ == samples_for_initialization_) if (init_counter_ == samples_for_initialization_)
{ {
old_value_ = std::accumulate(std::begin(init_buffer_), std::end(init_buffer_), 0.0f) / static_cast<float>(init_buffer_.size()); old_value_ = std::accumulate(std::begin(init_buffer_), std::end(init_buffer_), 0.0F) / static_cast<float>(init_buffer_.size());
if (old_value_ < (min_value_ + offset_)) if (old_value_ < (min_value_ + offset_))
{ {
// flush buffer and start again // flush buffer and start again

View File

@ -80,11 +80,7 @@ if(ENABLE_RAW_UDP)
target_compile_definitions(core_receiver PRIVATE -DRAW_UDP=1) target_compile_definitions(core_receiver PRIVATE -DRAW_UDP=1)
endif() endif()
if(PC_GNURADIO_RUNTIME_VERSION VERSION_GREATER 3.7.3) if(NOT (GNURADIO_VERSION VERSION_LESS "3.8"))
target_compile_definitions(core_receiver PRIVATE -DMODERN_GNURADIO=1)
endif()
if(${PC_GNURADIO_RUNTIME_VERSION} VERSION_GREATER "3.7.20")
target_compile_definitions(core_receiver PRIVATE -DGR_GREATER_38=1) target_compile_definitions(core_receiver PRIVATE -DGR_GREATER_38=1)
endif() endif()

View File

@ -1299,7 +1299,6 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetBlock(
exit(1); exit(1);
} }
} }
#if MODERN_GNURADIO
else if (implementation == "Two_Bit_Cpx_File_Signal_Source") else if (implementation == "Two_Bit_Cpx_File_Signal_Source")
{ {
try try
@ -1328,7 +1327,6 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetBlock(
exit(1); exit(1);
} }
} }
#endif
else if (implementation == "Spir_File_Signal_Source") else if (implementation == "Spir_File_Signal_Source")
{ {
try try

View File

@ -57,19 +57,20 @@ class GNSSBlockFactory
public: public:
GNSSBlockFactory(); GNSSBlockFactory();
virtual ~GNSSBlockFactory(); virtual ~GNSSBlockFactory();
std::unique_ptr<GNSSBlockInterface> GetSignalSource(const std::shared_ptr<ConfigurationInterface>& configuration, std::unique_ptr<GNSSBlockInterface> GetSignalSource(const std::shared_ptr<ConfigurationInterface>& configuration,
const gr::msg_queue::sptr queue, int ID = -1); // NOLINT(performance-unnecessary-value-param) const gr::msg_queue::sptr queue, int ID = -1); // NOLINT(performance-unnecessary-value-param)
std::unique_ptr<GNSSBlockInterface> GetSignalConditioner(const std::shared_ptr<ConfigurationInterface>& configuration, int ID = -1); std::unique_ptr<GNSSBlockInterface> GetSignalConditioner(const std::shared_ptr<ConfigurationInterface>& configuration, int ID = -1);
std::unique_ptr<GNSSBlockInterface> GetPVT(const std::shared_ptr<ConfigurationInterface>& configuration);
std::unique_ptr<GNSSBlockInterface> GetObservables(const std::shared_ptr<ConfigurationInterface>& configuration);
std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GetChannels(const std::shared_ptr<ConfigurationInterface>& configuration, std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GetChannels(const std::shared_ptr<ConfigurationInterface>& configuration,
const gr::msg_queue::sptr queue); // NOLINT(performance-unnecessary-value-param) const gr::msg_queue::sptr queue); // NOLINT(performance-unnecessary-value-param)
/* std::unique_ptr<GNSSBlockInterface> GetObservables(const std::shared_ptr<ConfigurationInterface>& configuration);
std::unique_ptr<GNSSBlockInterface> GetPVT(const std::shared_ptr<ConfigurationInterface>& configuration);
/*!
* \brief Returns the block with the required configuration and implementation * \brief Returns the block with the required configuration and implementation
*/ */
std::unique_ptr<GNSSBlockInterface> GetBlock(const std::shared_ptr<ConfigurationInterface>& configuration, std::unique_ptr<GNSSBlockInterface> GetBlock(const std::shared_ptr<ConfigurationInterface>& configuration,
@ -133,4 +134,4 @@ private:
unsigned int out_streams); unsigned int out_streams);
}; };
#endif /*GNSS_SDR_BLOCK_FACTORY_H_*/ #endif // GNSS_SDR_BLOCK_FACTORY_H_

View File

@ -141,7 +141,7 @@ endif()
# Definitions # Definitions
################################################################################ ################################################################################
if(${PC_GNURADIO_RUNTIME_VERSION} VERSION_GREATER "3.7.20") if(NOT (GNURADIO_VERSION VERSION_LESS "3.8"))
add_definitions(-DGR_GREATER_38=1) add_definitions(-DGR_GREATER_38=1)
endif() endif()