19 #ifndef GNSS_SDR_DMA_SIGNAL_SOURCE_FPGA_H 20 #define GNSS_SDR_DMA_SIGNAL_SOURCE_FPGA_H 48 const std::string &role,
unsigned int in_stream,
53 void start()
override;
55 inline size_t item_size()
override 60 void connect(gr::top_block_sptr top_block)
override;
61 void disconnect(gr::top_block_sptr top_block)
override;
62 gr::basic_block_sptr get_left_block()
override;
63 gr::basic_block_sptr get_right_block()
override;
66 const std::string dyn_bit_sel_device_name = std::string(
"dynamic_bits_selector");
67 const std::string empty_string;
68 const uint64_t default_bandwidth = 12500000;
70 const uint32_t Gain_control_period_ms = 500;
72 const int sample_block_size = 16384;
73 const int32_t switch_to_DMA = 0;
75 void run_DMA_process(
const std::string &filename0,
76 const std::string &filename1,
77 uint64_t &samples_to_skip,
81 uint32_t &dma_buff_offset_pos,
84 void run_dynamic_bit_selection_process();
86 std::thread thread_file_to_dma;
87 std::thread thread_dynamic_bit_selection;
89 std::shared_ptr<Fpga_Switch> switch_fpga;
90 std::shared_ptr<Fpga_dynamic_bit_selection> dynamic_bit_selection_fpga;
91 std::shared_ptr<Fpga_DMA> dma_fpga;
94 std::mutex dynamic_bit_selection_mutex;
98 std::string filename0_;
99 std::string filename1_;
101 uint64_t sample_rate_;
102 uint64_t samples_to_skip_;
104 uint32_t num_input_files_;
105 uint32_t dma_buff_offset_pos_;
107 uint32_t out_stream_;
111 bool enable_dynamic_bit_selection_;
118 #endif // GNSS_SDR_DMA_SIGNAL_SOURCE_FPGA_H Interface of a thread-safe std::queue.
Header file of the base class to signal_source GNSS blocks.
This interface represents a GNSS block.
This abstract class represents an interface to configuration parameters.
FPGA DMA control. This code is based in the Xilinx DMA proxy test application: https://github.com/Xilinx-Wiki-Projects/software-prototypes/tree/master/linux-user-space-dma/Software.
Switch that connects the HW accelerator queues to the analog front end or the DMA.
Dynamic bit selection in the received signal.
void start() override
Start the flow of samples if needed.