18 #ifndef GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H 19 #define GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H 45 const std::string &role,
unsigned int in_stream,
50 void start()
override;
52 inline std::string role()
override 62 return "Ad9361_Fpga_Signal_Source";
65 inline size_t item_size()
override 70 void connect(gr::top_block_sptr top_block)
override;
71 void disconnect(gr::top_block_sptr top_block)
override;
72 gr::basic_block_sptr get_left_block()
override;
73 gr::basic_block_sptr get_right_block()
override;
76 const std::string switch_device_name =
"AXIS_Switch_v1_0_0";
77 const std::string dyn_bit_sel_device_name =
"dynamic_bits_selector";
80 static const uint32_t Gain_control_period_ms = 500;
82 void run_DMA_process(
const std::string &FreqBand,
83 const std::string &Filename1,
84 const std::string &Filename2);
86 void run_dynamic_bit_selection_process();
88 std::thread thread_file_to_dma;
89 std::thread thread_dynamic_bit_selection;
91 std::shared_ptr<Fpga_Switch> switch_fpga;
92 std::shared_ptr<Fpga_dynamic_bit_selection> dynamic_bit_selection_fpga;
97 std::string gain_mode_rx1_;
98 std::string gain_mode_rx2_;
99 std::string rf_port_select_;
100 std::string filter_file_;
101 std::string filter_source_;
102 std::string filter_filename_;
103 std::string filename_rx1;
104 std::string filename_rx2;
105 std::string freq_band;
107 std::mutex dma_mutex;
108 std::mutex dynamic_bit_selection_mutex;
113 uint64_t sample_rate_;
119 double scale_dds_dbfs_;
120 double phase_dds_deg_;
121 double tx_attenuation_db_;
122 uint64_t freq_rf_tx_hz_;
123 uint64_t freq_dds_tx_hz_;
124 uint64_t tx_bandwidth_;
127 uint32_t out_stream_;
128 int32_t switch_position;
138 bool enable_dynamic_bit_selection_;
145 #endif // GNSS_SDR_AD9361_FPGA_SIGNAL_SOURCE_H
Interface of a thread-safe std::queue.
void start() override
Start the flow of samples if needed.
This interface represents a GNSS block.
This abstract class represents an interface to configuration parameters.
Switch that connects the HW accelerator queues to the analog front end or the DMA.
This abstract class represents an interface to GNSS blocks.
Dynamic bit selection in the received signal.
std::string implementation() override
Returns "Ad9361_Fpga_Signal_Source".