From 3f014b4a64ee45a8ff18f2c18d6b961294ce0526 Mon Sep 17 00:00:00 2001 From: Marc Majoral Date: Thu, 4 Apr 2024 19:13:55 +0200 Subject: [PATCH 1/2] Fixed a deadlock issue in the FPGA-based tracking loops --- .../tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 070f0d46f..0d450d469 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 @@ -1530,11 +1530,12 @@ int dll_pll_veml_tracking_fpga::general_work(int noutput_items __attribute__((un { boost::mutex::scoped_lock lock(d_mutex); d_worker_is_done = false; + l.unlock(); while (!d_worker_is_done) { d_m_condition.wait(lock); } - + l.lock(); // Signal alignment (skip samples until the incoming signal is aligned with local replica) int64_t acq_trk_diff_samples; double acq_trk_diff_seconds; From 7e7994552927ed3a89e3f81d8de64de11191974d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 5 Apr 2024 13:37:45 +0200 Subject: [PATCH 2/2] Update Flexiband_Signal_Source to admit modern GNU Radio versions --- cmake/Modules/FindTELEORBIT.cmake | 1 + .../signal_source/adapters/flexiband_signal_source.cc | 2 +- .../signal_source/adapters/flexiband_signal_source.h | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cmake/Modules/FindTELEORBIT.cmake b/cmake/Modules/FindTELEORBIT.cmake index b0d5e6c20..db888984a 100644 --- a/cmake/Modules/FindTELEORBIT.cmake +++ b/cmake/Modules/FindTELEORBIT.cmake @@ -38,6 +38,7 @@ set(TELEORBIT_ROOT_USER_DEFINED find_path(TELEORBIT_INCLUDE_DIRS NAMES teleorbit/api.h HINTS ${PC_TELEORBIT_INCLUDEDIR} + PATH_SUFFIXES gnuradio PATHS ${TELEORBIT_ROOT_USER_DEFINED}/include /usr/include /usr/local/include diff --git a/src/algorithms/signal_source/adapters/flexiband_signal_source.cc b/src/algorithms/signal_source/adapters/flexiband_signal_source.cc index 03065374e..66683bf7f 100644 --- a/src/algorithms/signal_source/adapters/flexiband_signal_source.cc +++ b/src/algorithms/signal_source/adapters/flexiband_signal_source.cc @@ -34,7 +34,7 @@ FlexibandSignalSource::FlexibandSignalSource(const ConfigurationInterface* confi Concurrent_Queue* queue __attribute__((unused))) : SignalSourceBase(configuration, role, "Flexiband_Signal_Source"s), in_stream_(in_stream), out_stream_(out_stream) { - const std::string default_item_type("byte"); + const std::string default_item_type("gr_complex"); item_type_ = configuration->property(role + ".item_type", default_item_type); const std::string default_firmware_file("flexiband_I-1b.bit"); diff --git a/src/algorithms/signal_source/adapters/flexiband_signal_source.h b/src/algorithms/signal_source/adapters/flexiband_signal_source.h index 7366d7ce9..47160a32a 100644 --- a/src/algorithms/signal_source/adapters/flexiband_signal_source.h +++ b/src/algorithms/signal_source/adapters/flexiband_signal_source.h @@ -66,10 +66,10 @@ public: gr::basic_block_sptr get_right_block(int RF_channel) override; private: - boost::shared_ptr flexiband_source_; + gnss_shared_ptr flexiband_source_; - std::vector> char_to_float; - std::vector> float_to_complex_; + std::vector> char_to_float; + std::vector> float_to_complex_; std::vector null_sinks_; std::string item_type_;